Class: Hdo::StortingImporter::ApiDataSource

Inherits:
DataSource
  • Object
show all
Defined in:
lib/hdo/storting_importer/api_data_source.rb

Constant Summary collapse

USER_AGENT =
"holderdeord-storting-importer v#{Hdo::StortingImporter::VERSION}"

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(connection_or_url) ⇒ ApiDataSource

Returns a new instance of ApiDataSource.



10
11
12
13
14
15
16
17
18
19
20
21
# File 'lib/hdo/storting_importer/api_data_source.rb', line 10

def initialize(connection_or_url)
  @connection = case connection_or_url
              when Faraday::Connection
                connection_or_url
              when String, URI
                Faraday.new(:url => connection_or_url.to_s) do |faraday|
                  faraday.adapter :net_http_persistent
                end
              else
                raise ArgumentError, "invalid argument #{url_or_resource.inspect}"
              end
end

Class Method Details

.defaultObject



6
7
8
# File 'lib/hdo/storting_importer/api_data_source.rb', line 6

def self.default
  new "http://data.stortinget.no"
end

Instance Method Details

#categoriesObject



94
95
96
# File 'lib/hdo/storting_importer/api_data_source.rb', line 94

def categories
  fetch "eksport/emner"
end

#committees(session_id) ⇒ Object



78
79
80
# File 'lib/hdo/storting_importer/api_data_source.rb', line 78

def committees(session_id)
  fetch "eksport/komiteer/?SesjonId=#{session_id}"
end

#districtsObject



82
83
84
# File 'lib/hdo/storting_importer/api_data_source.rb', line 82

def districts
  fetch "eksport/fylker"
end

#parliament_issue_details(parliament_issue_id) ⇒ Object



102
103
104
# File 'lib/hdo/storting_importer/api_data_source.rb', line 102

def parliament_issue_details(parliament_issue_id)
  fetch "eksport/sak?sakid=#{parliament_issue_id}"
end

#parliament_issues(session_id) ⇒ Object



98
99
100
# File 'lib/hdo/storting_importer/api_data_source.rb', line 98

def parliament_issues(session_id)
  fetch "eksport/saker?sesjonid=#{session_id}"
end

#parliament_periodsObject



86
87
88
# File 'lib/hdo/storting_importer/api_data_source.rb', line 86

def parliament_periods
  fetch "eksport/stortingsperioder"
end

#parliament_sessionsObject



90
91
92
# File 'lib/hdo/storting_importer/api_data_source.rb', line 90

def parliament_sessions
  fetch "eksport/sesjoner"
end

#parties(session_id) ⇒ Object

fetch parties for the given session

Examples:

data_source.representatives('2011-2012')

Parameters:

  • session (String)


74
75
76
# File 'lib/hdo/storting_importer/api_data_source.rb', line 74

def parties(session_id)
  fetch "eksport/partier/?sesjonid=#{session_id}"
end

#person(person_id) ⇒ Object



40
41
42
# File 'lib/hdo/storting_importer/api_data_source.rb', line 40

def person(person_id)
  fetch "eksport/person?personid=#{person_id}"
end

#person_photo(person_id, size = :medium) ⇒ Object

Fetch JPEG photo data for the specified person

Parameters:

  • person_id (String)
  • size (:small, :medium, :large) (defaults to: :medium)


51
52
53
54
55
56
57
58
59
# File 'lib/hdo/storting_importer/api_data_source.rb', line 51

def person_photo(person_id, size = :medium)
  size_param = {
    :small  => 'lite',
    :medium => 'middels',
    :large  => 'stort'
  }.fetch(size)

  fetch_raw "eksport/personbilde?personid=#{person_id}&storrelse=#{size_param}"
end

#propositions_for(vote_id) ⇒ Object



110
111
112
# File 'lib/hdo/storting_importer/api_data_source.rb', line 110

def propositions_for(vote_id)
  fetch "eksport/voteringsforslag/?voteringid=#{vote_id}"
end

#representatives(period) ⇒ Object

fetch representatives for the given period

Examples:

data_source.representatives('2009-2013')

Parameters:

  • period (String)


32
33
34
# File 'lib/hdo/storting_importer/api_data_source.rb', line 32

def representatives(period)
  fetch "eksport/representanter/?StortingsPeriodeId=#{period}"
end

#representatives_todayObject



36
37
38
# File 'lib/hdo/storting_importer/api_data_source.rb', line 36

def representatives_today
  fetch 'eksport/dagensrepresentanter/'
end

#speaker_listObject



61
62
63
# File 'lib/hdo/storting_importer/api_data_source.rb', line 61

def speaker_list
  fetch 'eksport/talerliste'
end

#vote_results_for(vote_id) ⇒ Object



114
115
116
# File 'lib/hdo/storting_importer/api_data_source.rb', line 114

def vote_results_for(vote_id)
  fetch "eksport/voteringsresultat/?voteringid=#{vote_id}"
end

#votes_for(issue_id) ⇒ Object



106
107
108
# File 'lib/hdo/storting_importer/api_data_source.rb', line 106

def votes_for(issue_id)
  fetch "eksport/voteringer?sakid=#{issue_id}"
end