Class: Hdo::StortingImporter::ApiDataSource
- Inherits:
-
DataSource
- Object
- DataSource
- Hdo::StortingImporter::ApiDataSource
- 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
- #categories ⇒ Object
- #committees(session_id) ⇒ Object
- #districts ⇒ Object
-
#initialize(connection_or_url) ⇒ ApiDataSource
constructor
A new instance of ApiDataSource.
- #parliament_issue_details(parliament_issue_id) ⇒ Object
- #parliament_issues(session_id) ⇒ Object
- #parliament_periods ⇒ Object
- #parliament_sessions ⇒ Object
-
#parties(session_id) ⇒ Object
fetch parties for the given session.
- #person(person_id) ⇒ Object
-
#person_photo(person_id, size = :medium) ⇒ Object
Fetch JPEG photo data for the specified person.
- #propositions_for(vote_id) ⇒ Object
-
#representatives(period) ⇒ Object
fetch representatives for the given period.
- #representatives_today ⇒ Object
- #speaker_list ⇒ Object
- #vote_results_for(vote_id) ⇒ Object
- #votes_for(issue_id) ⇒ Object
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
.default ⇒ Object
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
#categories ⇒ Object
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 |
#districts ⇒ Object
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_periods ⇒ Object
86 87 88 |
# File 'lib/hdo/storting_importer/api_data_source.rb', line 86 def parliament_periods fetch "eksport/stortingsperioder" end |
#parliament_sessions ⇒ Object
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
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
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
32 33 34 |
# File 'lib/hdo/storting_importer/api_data_source.rb', line 32 def representatives(period) fetch "eksport/representanter/?StortingsPeriodeId=#{period}" end |
#representatives_today ⇒ Object
36 37 38 |
# File 'lib/hdo/storting_importer/api_data_source.rb', line 36 def representatives_today fetch 'eksport/dagensrepresentanter/' end |
#speaker_list ⇒ Object
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 |