Sha256: 9be2271625bcb64c9ebc569478309e0ff7f26121d4651b96070e654b180be95f
Contents?: true
Size: 1.41 KB
Versions: 1
Compression:
Stored size: 1.41 KB
Contents
require "http" require "json" require_relative "error_handling" require_relative "logger" module SkinbaronApiClient # HTTP client for making requests to the Skinbaron API class HttpClient include ErrorHandling attr_reader :base_url, :headers, :debug def initialize(base_url:, headers: {}, debug: false) @base_url = base_url @headers = headers @debug = debug end with_error_handling def post(endpoint:, body: {}) url = "#{base_url}/#{endpoint}" debug_log "Making POST request to: #{url}" debug_log "Request body: #{body.to_json}" Logger.instance.log({ type: "REQUEST", url: url, method: "POST", headers: headers, body: body }) http_response = HTTP.headers(headers).post(url, json: body) Logger.instance.log({ type: "RESPONSE", url: url, status: http_response.status.to_s, body: http_response.body.to_s }) { status: http_response.status, headers: http_response.headers.to_h, body: http_response.body.to_s, url: url } end private def debug_log(message) puts message if debug end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
skinbaron_api_client-0.1.0 | lib/skinbaron_api_client/http_client.rb |