Class: Seibii::Http::Clients::Json

Inherits:
Object
  • Object
show all
Defined in:
lib/seibii/http/clients/json.rb

Instance Method Summary collapse

Constructor Details

#initialize(logger: nil) ⇒ Json

Returns a new instance of Json.



7
8
9
# File 'lib/seibii/http/clients/json.rb', line 7

def initialize(logger: nil)
  @base = Base.new(logger: logger)
end

Instance Method Details

#request(method:, uri:, params: nil, headers: {}, need_verify_cert: false, read_timeout: 60, write_timeout: 60) ⇒ Object

rubocop:disable Metrics/ParameterLists, Layout/LineLength



11
12
13
14
15
16
17
18
19
20
21
22
# File 'lib/seibii/http/clients/json.rb', line 11

def request(method:, uri:, params: nil, headers: {}, need_verify_cert: false, read_timeout: 60, write_timeout: 60) # rubocop:disable Metrics/ParameterLists, Layout/LineLength
  response_body = @base.request(
    method: method,
    uri: uri,
    request_body: params&.yield_self { |p| Oj.dump(p, mode: :compat) },
    headers: headers.merge(Accept: 'application/json', 'Content-Type': 'application/json'),
    need_verify_cert: need_verify_cert,
    read_timeout: read_timeout,
    write_timeout: write_timeout
  )
  Oj.load(response_body, mode: :compat, symbol_keys: true)
end