Sha256: cefbba5f7ac6d571bc9bf472f60e38e3458f49ae07e88da1f8b1bca4332dadc0

Contents?: true

Size: 1.74 KB

Versions: 8

Compression:

Stored size: 1.74 KB

Contents

module Xhash
  class General < ApiClient
    def self.store_data(*user_body)
      url = 'store-data'
      body = Hash[*user_body]
      response = api_post(url: url, body: body)

      unless response[:id]
        raise Xhash::MissingRequiredFieldError.new(
                {
                  message:
                    Xhash::Formatters.invalid_field_message_to_s(response),
                  response: response
                }
              )
      end

      Xhash::Customer.new(*response.values_at(*Xhash::Customer.members))
    end

    def self.get_customer(customer_id:)
      url = "get-customer/#{customer_id}"
      response = api_get(url: url)
      payload = response[:payload]

      if payload.nil?
        raise Xhash::MissingRequiredFieldError.new(
                {
                  message:
                    Xhash::Formatters.invalid_field_message_to_s(response),
                  response: response
                }
              )
      end

      Xhash::Customer.new(*payload.values_at(*Xhash::Customer.members))
    end

    def self.store_file(customer_id:, document_type:, document:)
      url = 'store-file'
      headers = { 'boundary' => '---011000010111000001101001' }
      body = {
        'customer_id' => customer_id,
        'document_type' => document_type,
        'document' => document
      }

      response = api_post_multipart(url: url, body: body, headers: headers)

      unless response == 'Image stored'
        error = JSON.parse(response, symbolize_names: true)
        raise Xhash::MissingRequiredFieldError.new(
                {
                  message: Xhash::Formatters.invalid_field_message_to_s(error),
                  response: error
                }
              )
      end

      response
    end
  end
end

Version data entries

8 entries across 8 versions & 1 rubygems

Version Path
xhash_client-0.3.8 lib/xhash/general.rb
xhash_client-0.3.7 lib/xhash/general.rb
xhash_client-0.3.6 lib/xhash/general.rb
xhash_client-0.3.5 lib/xhash/general.rb
xhash_client-0.3.4 lib/xhash/general.rb
xhash_client-0.3.3 lib/xhash/general.rb
xhash_client-0.3.2 lib/xhash/general.rb
xhash_client-0.3.1 lib/xhash/general.rb