lib/mangopay/kyc_document.rb in mangopay-3.0.25.pre.alpha.pre.20 vs lib/mangopay/kyc_document.rb in mangopay-3.0.25
- old
+ new
@@ -1,70 +1,70 @@
-require 'base64'
-
-module MangoPay
-
- # See http://docs.mangopay.com/api-references/kyc/documents/
- class KycDocument < Resource
- class << self
- def create(user_id, params, idempotency_key = nil)
- MangoPay.request(:post, url(user_id), params, {}, idempotency_key)
- end
-
- def update(user_id, document_id, params = {})
- MangoPay.request(:put, url(user_id, document_id), params)
- end
-
- # Fetches the KYC document belonging to the given +user_id+, with the given +document_id+.
- def fetch(user_id, document_id)
- url = (user_id) ? url(user_id, document_id) : "#{MangoPay.api_path}/KYC/documents/#{CGI.escape(document_id.to_s)}"
- MangoPay.request(:get, url)
- end
-
- # Fetches list of KYC documents:
- # - for the particular user if +user_id+ is provided (not nil)
- # - or for all users otherwise.
- #
- # Optional +filters+ is a hash accepting following keys:
- # - +page+, +per_page+, +sort+: pagination and sorting params (see MangoPay::HTTPCalls::Fetch::ClassMethods#fetch)
- # - filters such as +Type+ (e.g. 'IDENTITY_PROOF') and +Status+ (e.g. 'VALIDATED')
- # - +BeforeDate+ (timestamp): filters documents with CreationDate _before_ this date
- # - +AfterDate+ (timestamp): filters documents with CreationDate _after_ this date
- #
- def fetch_all(user_id = nil, filters = {})
- url = (user_id) ? url(user_id) : "#{MangoPay.api_path}/KYC/documents"
- MangoPay.request(:get, url, {}, filters)
- 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_content_base64 param may be:
- # - Base64 encoded file content
- # - or nil: in this case pass the file path in the next param
- #
- def create_page(user_id, document_id, file_content_base64, file_path = nil, idempotency_key = nil)
- if file_content_base64.nil? && !file_path.nil?
- bts = File.open(file_path, 'rb') { |f| f.read }
- file_content_base64 = Base64.encode64(bts)
- end
- # normally it returns 204 HTTP code on success
- begin
- MangoPay.request(:post, url(user_id, document_id) + '/pages', {'File' => file_content_base64}, {}, idempotency_key)
- rescue ResponseError => ex
- raise ex unless ex.code == '204'
- end
- end
-
- def url(user_id, document_id = nil)
- if document_id
- "#{MangoPay.api_path}/users/#{CGI.escape(user_id.to_s)}/KYC/documents/#{CGI.escape(document_id.to_s)}"
- else
- "#{MangoPay.api_path}/users/#{CGI.escape(user_id.to_s)}/KYC/documents"
- end
- end
- end
- end
-end
+require 'base64'
+
+module MangoPay
+
+ # See http://docs.mangopay.com/api-references/kyc/documents/
+ class KycDocument < Resource
+ class << self
+ def create(user_id, params, idempotency_key = nil)
+ MangoPay.request(:post, url(user_id), params, {}, idempotency_key)
+ end
+
+ def update(user_id, document_id, params = {})
+ MangoPay.request(:put, url(user_id, document_id), params)
+ end
+
+ # Fetches the KYC document belonging to the given +user_id+, with the given +document_id+.
+ def fetch(user_id, document_id)
+ url = (user_id) ? url(user_id, document_id) : "#{MangoPay.api_path}/KYC/documents/#{CGI.escape(document_id.to_s)}"
+ MangoPay.request(:get, url)
+ end
+
+ # Fetches list of KYC documents:
+ # - for the particular user if +user_id+ is provided (not nil)
+ # - or for all users otherwise.
+ #
+ # Optional +filters+ is a hash accepting following keys:
+ # - +page+, +per_page+, +sort+: pagination and sorting params (see MangoPay::HTTPCalls::Fetch::ClassMethods#fetch)
+ # - filters such as +Type+ (e.g. 'IDENTITY_PROOF') and +Status+ (e.g. 'VALIDATED')
+ # - +BeforeDate+ (timestamp): filters documents with CreationDate _before_ this date
+ # - +AfterDate+ (timestamp): filters documents with CreationDate _after_ this date
+ #
+ def fetch_all(user_id = nil, filters = {})
+ url = (user_id) ? url(user_id) : "#{MangoPay.api_path}/KYC/documents"
+ MangoPay.request(:get, url, {}, filters)
+ 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_content_base64 param may be:
+ # - Base64 encoded file content
+ # - or nil: in this case pass the file path in the next param
+ #
+ def create_page(user_id, document_id, file_content_base64, file_path = nil, idempotency_key = nil)
+ if file_content_base64.nil? && !file_path.nil?
+ bts = File.open(file_path, 'rb') { |f| f.read }
+ file_content_base64 = Base64.encode64(bts)
+ end
+ # normally it returns 204 HTTP code on success
+ begin
+ MangoPay.request(:post, url(user_id, document_id) + '/pages', {'File' => file_content_base64}, {}, idempotency_key)
+ rescue ResponseError => ex
+ raise ex unless ex.code == '204'
+ end
+ end
+
+ def url(user_id, document_id = nil)
+ if document_id
+ "#{MangoPay.api_path}/users/#{CGI.escape(user_id.to_s)}/KYC/documents/#{CGI.escape(document_id.to_s)}"
+ else
+ "#{MangoPay.api_path}/users/#{CGI.escape(user_id.to_s)}/KYC/documents"
+ end
+ end
+ end
+ end
+end