Sha256: 27b3b351d5e8f92a08f22c89a1f6c8e38d8190a60280d6b0cac81c2c2d567700

Contents?: true

Size: 1.62 KB

Versions: 5

Compression:

Stored size: 1.62 KB

Contents

require 'base64'

module MangoPay
  class KycDocument < Resource

    def self.create(user_id, params)
      MangoPay.request(:post, url(user_id), params)
    end

    def self.update(user_id, document_id, params = {})
      MangoPay.request(:put, url(user_id, document_id), params)
    end

    def self.fetch(user_id, document_id)
      MangoPay.request(:get, url(user_id, document_id))
    end

    # Adds the file page (attachment) to the given document.
    # 
    # See http://docs.mangopay.com/api-references/kyc/pages/ :
    # - Document have to be in 'CREATED' Status
    # - You can create as many pages as needed
    # - Change Status to 'VALIDATION_ASKED' to submit KYC documents
    # 
    # The file_or_base64 param may be:
    # - either a File instance
    # - or a string: in this case it has to be Base64 encoded!
    #
    def self.create_page(user_id, document_id, file_or_base64)
      base64 = (file_or_base64.is_a? File) ? Base64.encode64(file_or_base64.read) : file_or_base64;
      # normally it returns 204 HTTP code on success
      begin
        MangoPay.request(:post, url(user_id, document_id) + '/pages', {'File' => base64})
      rescue MangoPay::ResponseError => ex
        raise ex unless ex.code == '204'
      end
    end

    private

    def self.url(user_id, document_id = nil)
      if document_id
        "/v2/#{MangoPay.configuration.client_id}/users/#{CGI.escape(user_id.to_s)}/KYC/documents/#{CGI.escape(document_id.to_s)}"
      else
        "/v2/#{MangoPay.configuration.client_id}/users/#{CGI.escape(user_id.to_s)}/KYC/documents"
      end
    end
  end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
mangopay-3.0.9 lib/mangopay/kyc_document.rb
mangopay-3.0.8 lib/mangopay/kyc_document.rb
mangopay-3.0.7 lib/mangopay/kyc_document.rb
mangopay-3.0.6 lib/mangopay/kyc_document.rb
mangopay-3.0.5 lib/mangopay/kyc_document.rb