Class: DoorkeeperJp::Client
- Inherits:
-
Object
- Object
- DoorkeeperJp::Client
- Defined in:
- lib/doorkeeper_jp/client.rb,
sig/doorkeeper_jp/client.rbs
Instance Method Summary collapse
- #connection ⇒ Faraday::Connection
-
#event(id, is_expand_group: false, locale: nil) ⇒ DoorkeeperJp::Response
Show a specific event.
- #event_params(page:, locale:, sort:, since_date:, until_date:, keyword:, prefecture:, is_expand_group:) ⇒ Hash
-
#events(page: nil, locale: nil, sort: nil, since_date: nil, until_date: nil, keyword: nil, prefecture: nil, is_expand_group: false) ⇒ Array<DoorkeeperJp::Response>
List all featured events.
- #get_events(path:, page:, locale:, sort:, since_date:, until_date:, keyword:, prefecture:, is_expand_group:) ⇒ Array<DoorkeeperJp::Response>
-
#group(group, locale: nil) ⇒ DoorkeeperJp::Response
Show a specific group.
-
#group_events(group, page: nil, locale: nil, sort: nil, since_date: nil, until_date: nil, keyword: nil, prefecture: nil, is_expand_group: false) ⇒ Array<DoorkeeperJp::Response>
List a community's events.
-
#initialize(access_token = nil) ⇒ Client
constructor
A new instance of Client.
- #request_headers ⇒ Hash
- #to_ymd(date) ⇒ String
Constructor Details
#initialize(access_token = nil) ⇒ Client
Returns a new instance of Client.
6 7 8 |
# File 'lib/doorkeeper_jp/client.rb', line 6 def initialize(access_token = nil) @access_token = access_token end |
Instance Method Details
#connection ⇒ Faraday::Connection
116 117 118 119 120 121 122 123 124 |
# File 'lib/doorkeeper_jp/client.rb', line 116 def connection Faraday.new(url: "https://api.doorkeeper.jp/", headers: request_headers) do |conn| conn.response :mashify, mash_class: DoorkeeperJp::Response conn.response :json conn.response :raise_error conn.adapter Faraday.default_adapter end end |
#event(id, is_expand_group: false, locale: nil) ⇒ DoorkeeperJp::Response
Show a specific event
81 82 83 84 85 86 87 88 89 90 |
# File 'lib/doorkeeper_jp/client.rb', line 81 def event(id, is_expand_group: false, locale: nil) params = { locale: locale, }.compact #: Hash[Symbol|String, untyped] params["expand[]"] = "group" if res = connection.get("events/#{id}", params).body res["event"] end |
#event_params(page:, locale:, sort:, since_date:, until_date:, keyword:, prefecture:, is_expand_group:) ⇒ Hash
149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 |
# File 'lib/doorkeeper_jp/client.rb', line 149 def event_params(page:, locale:, sort:, since_date:, until_date:, keyword:, prefecture:, is_expand_group:) params = { page: page, locale: locale, sort: sort, since: to_ymd(since_date), until: to_ymd(until_date), q: keyword, prefecture: prefecture }.compact #: Hash[Symbol|String, untyped] params["expand[]"] = "group" if params end |
#events(page: nil, locale: nil, sort: nil, since_date: nil, until_date: nil, keyword: nil, prefecture: nil, is_expand_group: false) ⇒ Array<DoorkeeperJp::Response>
List all featured events
24 25 26 27 28 29 30 |
# File 'lib/doorkeeper_jp/client.rb', line 24 def events(page: nil, locale: nil, sort: nil, since_date: nil, until_date: nil, keyword: nil, prefecture: nil, is_expand_group: false) get_events( path: "events", page: page, locale: locale, sort: sort, since_date: since_date, until_date: until_date, keyword: keyword, prefecture: prefecture, is_expand_group: , ) end |
#get_events(path:, page:, locale:, sort:, since_date:, until_date:, keyword:, prefecture:, is_expand_group:) ⇒ Array<DoorkeeperJp::Response>
105 106 107 108 109 110 111 112 113 |
# File 'lib/doorkeeper_jp/client.rb', line 105 def get_events(path:, page:, locale:, sort:, since_date:, until_date:, keyword:, prefecture:, is_expand_group:) params = event_params( page: page, locale: locale, sort: sort, since_date: since_date, until_date: until_date, keyword: keyword, prefecture: prefecture, is_expand_group: , ) res = connection.get(path, params).body res.map(&:event) # steep:ignore end |
#group(group, locale: nil) ⇒ DoorkeeperJp::Response
Show a specific group
63 64 65 66 67 68 69 70 |
# File 'lib/doorkeeper_jp/client.rb', line 63 def group(group, locale: nil) params = { locale: locale, }.compact res = connection.get("groups/#{group}", params).body res["group"] end |
#group_events(group, page: nil, locale: nil, sort: nil, since_date: nil, until_date: nil, keyword: nil, prefecture: nil, is_expand_group: false) ⇒ Array<DoorkeeperJp::Response>
List a community's events
47 48 49 50 51 52 53 |
# File 'lib/doorkeeper_jp/client.rb', line 47 def group_events(group, page: nil, locale: nil, sort: nil, since_date: nil, until_date: nil, keyword: nil, prefecture: nil, is_expand_group: false) get_events( path: "groups/#{group}/events", page: page, locale: locale, sort: sort, since_date: since_date, until_date: until_date, keyword: keyword, prefecture: prefecture, is_expand_group: , ) end |
#request_headers ⇒ Hash
127 128 129 130 131 132 133 134 135 136 137 |
# File 'lib/doorkeeper_jp/client.rb', line 127 def request_headers headers = { "User-Agent" => "DoorkeeperJp v#{DoorkeeperJp::VERSION} (https://github.com/sue445/doorkeeper_jp)", "Content-Type" => "application/json", } headers["Authorization"] = "Bearer #{@access_token}" if @access_token headers end |
#to_ymd(date) ⇒ String
168 169 170 |
# File 'lib/doorkeeper_jp/client.rb', line 168 def to_ymd(date) date&.strftime("%Y-%m-%d") end |