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

api_root_url() click to toggle source
# File lib/prevent_go.rb, line 28
def api_root_url
  configuration.api_root_url
end
api_uri(path='') click to toggle source
# File lib/prevent_go.rb, line 32
def api_uri(path='')
  URI(api_root_url + path)
end
concat_params(files, params={}) click to toggle source
# 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
configuration() click to toggle source
# File lib/prevent_go.rb, line 20
def configuration
  @configuration ||= PreventGo::Configuration.new
end
configure() { |configuration| ... } click to toggle source
# File lib/prevent_go.rb, line 24
def configure
  yield(configuration)
end
detect_mime_type_for(file) click to toggle source
# 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
request(url, params={}) click to toggle source
# 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