Sha256: a418e2e2d002f393aaa8675618e61cf72009302a246a70040cdfb2141418fc8e

Contents?: true

Size: 1.29 KB

Versions: 1

Compression:

Stored size: 1.29 KB

Contents

# frozen_string_literal: true
require 'payment/manager/client/version'
require 'payment/manager/request'
require 'payment/manager/config'
require 'payment/manager/plan_parser'
require 'payment/manager/plan'
require 'json'

module Payment
  module Manager
    module Client
      class << self
        attr_accessor :config

        def configure
          self.config = Payment::Manager::Config
          yield(config)
        end

        def payment_url(plan_id, resource_id)
          params = {
            client_id: config.client_id,
            client_secret: config.client_secret,
            plan_id: plan_id,
            resource_id: resource_id
          }
          response = Payment::Manager::Request.get_from_api('/api/checkout', params)
          JSON.parse(response.body)['url']
        end

        def plans
          params = {
            client_id: config.client_id,
            client_secret: config.client_secret
          }

          response = Payment::Manager::Request.get_from_api('/api/plans', params)
          PlanParser.new(response.body).plans
        end

        def valid_token?(token)
          response = Payment::Manager::Request.get_from_api("/api/tokens/validate/#{config.client_id}/#{token}", {})
          JSON.parse(response.body)['valid']
        end
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
payment-manager-client-0.3.0 lib/payment/manager/client.rb