upmysport/onesignal

View on GitHub
lib/onesignal/http_client.rb

Summary

Maintainability
A
0 mins
Test Coverage
require 'faraday'
require 'faraday_middleware'

module Onesignal
  class HTTPClient
    URL = 'https://onesignal.com'.freeze

    attr_reader :app_id, :connection
    protected :app_id, :connection

    def initialize(log = Onesignal.log, app_id = Onesignal.app_id)
      @app_id = app_id
      @connection = Faraday.new(url: URL) do |connection|
        connection.request :json
        connection.request :retry
        connection.response :json, content_type: /\bjson$/
        connection.adapter Faraday.default_adapter
        connection.response :logger, log, bodies: true
      end
    end

    def post(endpoint, params)
      connection.post(endpoint, params.merge(app_id: app_id))
    end
  end
end