Class: CWB::CWBApi

Inherits:
Object
  • Object
show all
Defined in:
lib/weatai/cwb_api.rb

Overview

Service for all weather API calls

Constant Summary collapse

URL_cwb =
'http://opendata.cwb.gov.tw/opendataapi'
URL_psi =
'http://opendata.epa.gov.tw/webapi/api/rest/datastore/355000000I-000001/'

Class Method Summary collapse

Class Method Details

.configObject



15
16
17
18
19
20
21
22
# File 'lib/weatai/cwb_api.rb', line 15

def self.config
  return @config if @config
  @config = { dataid1: ENV['DATA_ID1'],
              dataid2: ENV['DATA_ID2'],
              key:    ENV['AUTH_KEY'], 
              format: ENV['FORMAT'],
              token:  ENV['TOKEN']}
end

.config=(credentials) ⇒ Object



11
12
13
# File 'lib/weatai/cwb_api.rb', line 11

def self.config=(credentials)
  @config ? @config.update(credentials) : @config = credentials
end

.raw_info1(dataid) ⇒ Object



24
25
26
27
28
29
30
# File 'lib/weatai/cwb_api.rb', line 24

def self.raw_info1(dataid)
  info_response =
    HTTP.get(URL_cwb,
             params: { dataid:           config[:dataid1],
                       authorizationkey: config[:key]})
  Hash.from_xml(info_response)
end

.raw_info2(dataid) ⇒ Object



32
33
34
35
36
37
38
# File 'lib/weatai/cwb_api.rb', line 32

def self.raw_info2(dataid)
  info_response =
    HTTP.get(URL_cwb,
             params: { dataid:           config[:dataid2],
                       authorizationkey: config[:key]})
  Hash.from_xml(info_response)
end

.raw_info3(dataid) ⇒ Object



40
41
42
43
44
45
46
# File 'lib/weatai/cwb_api.rb', line 40

def self.raw_info3(dataid)
  info_response =
    HTTP.get(URL_psi,
             params: { format: config[:format],
                       token:  config[:token]})
  Hash.from_xml(info_response)
end