module PreventGo
Params to pass to bank accounts: holder: { “firstName”:“Scarlette”, “birthName”:“Johansson”, “lastName”:“Bauer”} or {“legalEntityName”:“NETHEOS”} => (optional) bank_account: { “iban”:“FR7600000000000000000000000”, “bicCode”:“AGRIFRPP” } => (optional) file_1: file => required file_2: file => optional
Params to pass to bank accounts: holder: { “firstName”:“Quentin”, “birthName”:“Doe”, “lastName”:“Simpson”, “birthDate”:“1987-12-25”, “gender”:“M” } => (optional) file_1: file => required file_2: file => optional
Params to pass to bank accounts: holder: { “firstName”:“James”,“lastName”:“Bond”,“birthName”: “Martinet”,“address”: {“address1”:“29 rue du Cheval blanc”, “postalCode”:“34000”, “city”:“Montpellier”}} file_1: file => required file_2: file => optional
Params to pass to provider invoice: holder: { “firstName”:“James”,“lastName”:“Bond”,“birthName”: “Martinet”,“address”: {“address1”:“29 rue du Cheval blanc”, “postalCode”:“34000”, “city”:“Montpellier”}} => (optional) file_1: file => required file_2: file => optional
Params to pass to bank accounts: holder_1: { “firstName”:“James”,“lastName”:“Bond” } => (optional) holder_2: { “firstName”:“James”,“lastName”:“Bond” } => (optional) taxHouseHold: {
"familyStatusCode":"SINGLE", "partsCount":1.5, "dependentPersonsCount":2, "globalGrossIncome":23456, "referenceIncome":12345, "taxableIncome":1234, "taxAmount":123, "address": {"address1":"29 rue du Cheval blanc","postalCode":"34000","city":"Montpellier"}
} => optional file_1: file => required
Constants
- VERSION
Public Class Methods
# File lib/prevent_go.rb, line 28 def api_root_url configuration.api_root_url end
# File lib/prevent_go.rb, line 32 def api_uri(path='') URI(api_root_url + path) end
# File lib/prevent_go.rb, line 65 def concat_params(files, params={}) params = params.each { |k, v| params[k] = JSON.dump(v) } files.compact.each.with_index(1) do |file, index| params["file_#{index}"] = UploadIO.new(file, detect_mime_type_for(file)) end params end
# File lib/prevent_go.rb, line 20 def configuration @configuration ||= PreventGo::Configuration.new end
# File lib/prevent_go.rb, line 24 def configure yield(configuration) end
# File lib/prevent_go.rb, line 53 def detect_mime_type_for(file) if file.respond_to?(:content_type) file.content_type elsif file.respond_to?(:path) MIME::Types.type_for(File.basename(file.path))[0] elsif file.is_a?(String) MIME::Types.type_for(File.basename(file))[0] else '' end end
# File lib/prevent_go.rb, line 36 def request(url, params={}) uri = api_uri(url) res = Net::HTTP.start(uri.host, uri.port, use_ssl: true, read_timeout: 1000) do |http| req = Net::HTTP::Post::Multipart.new(uri.request_uri, params) req.basic_auth(ENV['PREVENT_GO_ID'], ENV['PREVENT_GO_SECRET']) http.request(req) end # decode json data data = res.body.to_s.empty? ? {} : JSON.parse(res.body.to_s) raise PreventGo::ResponseError.new(uri, res.code, data) unless res.is_a?(Net::HTTPOK) data end