class SVBClient::Onboarding

Public Class Methods

new(client) click to toggle source
# File lib/svbclient.rb, line 289
def initialize(client)
  raise 'provide an API client' if client.nil?
  @client = client
end

Public Instance Methods

address(id: nil, street_line1: nil, street_line2: nil, street_line3: nil, city: nil, state: nil, postal_code: nil, country: nil) click to toggle source
# File lib/svbclient.rb, line 294
def address(id: nil, street_line1: nil, street_line2: nil, street_line3: nil, city: nil, state: nil, postal_code: nil, country: nil)
  if id.nil?
    # generate this address
    add = @client.post('/v1/addresses', {
      street_line1: street_line1,
      street_line2: street_line2,
      street_line3: street_line3,
      city: city,
      state: state,
      postal_code: postal_code,
      country: country
    })
    body = JSON.parse(add.body)
    SVBClient::Onboarding::Address.new(@client, body["data"]["id"])
  else
    # verify that the address exists
    @client.get("/v1/addresses/#{id}")
    SVBClient::Onboarding::Address.new(@client, id)
  end
end
company(id: nil, description: nil, document_ids: [], email_address: nil, incorporation_address_id: -1, mailing_address_id: -1, metadata: nil, mcc: -1, name: nil, options: nil, parent_company_id: -1, person_ids: [], phone_number: nil, physical_address_id: -1, product_description: nil, products: [], referral_source: nil, risk_commentary: nil, source_of_funds: nil, state: nil, website_url: nil, documents: nil, incorporation_address: nil, mailing_address: nil, parent_company: nil, persons: nil, physical_address: nil) click to toggle source
# File lib/svbclient.rb, line 315
def company(id: nil, description: nil, document_ids: [], email_address: nil, incorporation_address_id: -1,
  mailing_address_id: -1, metadata: nil, mcc: -1, name: nil, options: nil, parent_company_id: -1, person_ids: [],
  phone_number: nil, physical_address_id: -1, product_description: nil, products: [], referral_source: nil,
  risk_commentary: nil, source_of_funds: nil, state: nil, website_url: nil,
  documents: nil, incorporation_address: nil, mailing_address: nil, parent_company: nil,
  persons: nil, physical_address: nil)

  if id.nil?
    # generate this address

    unless documents.nil?
      document_ids = documents.map do |document|
        document.id
      end
    end
    unless persons.nil?
      person_ids = persons.map do |person|
        person.id
      end
    end
    incorporation_address_id = incorporation_address.id unless incorporation_address.nil?
    mailing_address_id = mailing_address.id unless mailing_address.nil?
    physical_address_id = physical_address.id unless physical_address.nil?
    parent_company_id = parent_company.id unless parent_company.nil?

    resource = @client.post('/v1/companies', {
      description: description,
      document_ids: document_ids,
      email_address: email_address,
      incorporation_address_id: incorporation_address_id,
      mailing_address_id: mailing_address_id,
      metadata: metadata,
      mcc: mcc,
      name: name,
      options: options,
      parent_company_id: parent_company_id,
      person_ids: person_ids,
      phone_number: phone_number,
      physical_address_id: physical_address_id,
      product_description: product_description,
      products: products,
      referral_source: referral_source,
      risk_commentary: risk_commentary,
      source_of_funds: source_of_funds,
      state: state,
      website_url: website_url
    })
    body = JSON.parse(resource.body)
    SVBClient::Onboarding::Company.new(@client, body["data"]["id"])
  else
    # verify that the resource exists
    @client.get("/v1/companies/#{id}")
    SVBClient::Onboarding::Company.new(@client, id)
  end
end
document(id: nil, document_type: nil, file_id: -1, metadata: nil, number: nil, file: nil) click to toggle source
# File lib/svbclient.rb, line 371
def document(id: nil, document_type: nil, file_id: -1, metadata: nil, number: nil, file: nil)

  if id.nil?
    # generate this address
    file_id = file.id unless file.nil?

    resource = @client.post('/v1/documents', {
      document_type: document_type,
      file_id: file_id,
      metadata: metadata,
      number: number
    })
    body = JSON.parse(resource.body)
    SVBClient::Onboarding::Document.new(@client, body["data"]["id"])
  else
    # verify that the resource exists
    @client.get("/v1/documents/#{id}")
    SVBClient::Onboarding::Document.new(@client, id)
  end
end
file(id: nil, file: nil, mimetype: nil) click to toggle source
# File lib/svbclient.rb, line 392
def file(id: nil, file: nil, mimetype: nil)
  if id.nil?
    # upload this file
    resource = @client.upload("/v1/files", file, mimetype)
    body = JSON.parse(resource.body)
    SVBClient::Onboarding::File.new(@client, id)
  else
    # verify that the resource exists
    @client.get("/v1/files/#{id}")
    SVBClient::Onboarding::File.new(@client, id)
  end
end
gov_ident(id: nil, country: nil, document_type: nil, expires_on: nil, file_id: -1, first_name: nil, last_name: nil, middle_name: nil, number: nil, file: nil) click to toggle source
# File lib/svbclient.rb, line 405
def gov_ident(id: nil, country: nil, document_type: nil, expires_on: nil, file_id: -1,
  first_name: nil, last_name: nil, middle_name: nil, number: nil, file: nil)

  if id.nil?
    # generate this address
    file_id = file.id unless file.nil?

    resource = @client.post('/v1/gov_idents', {
      country: country,
      document_type: document_type,
      expires_on: expires_on,
      file_id: file_id,
      first_name: first_name,
      last_name: last_name,
      middle_name: middle_name,
      number: number
    })
    body = JSON.parse(resource.body)
    SVBClient::Onboarding::GovIdent.new(@client, body["data"]["id"])
  else
    # verify that the resource exists
    @client.get("/v1/gov_idents/#{id}")
    SVBClient::Onboarding::GovIdent.new(@client, id)
  end
end
login(id: nil, login_name: nil, reservation_expires: nil) click to toggle source
# File lib/svbclient.rb, line 431
def login(id: nil, login_name: nil, reservation_expires: nil)
  if id.nil?
    # generate this address
    resource = @client.post('/v1/logins', {
      login_name: login_name,
      reservation_expires: reservation_expires
    })
    body = JSON.parse(resource.body)
    SVBClient::Onboarding::Login.new(@client, body["data"]["id"])
  else
    # verify that the resource exists
    @client.get("/v1/logins/#{id}")
    SVBClient::Onboarding::Login.new(@client, id)
  end
end
parent_company(id: nil, address_id: -1, address: nil, country: nil, description: nil, name: nil, metadata: nil, percent_ownership: -1, source_of_funds: nil) click to toggle source
# File lib/svbclient.rb, line 447
def parent_company(id: nil, address_id: -1, address: nil, country: nil, description: nil,
  name: nil, metadata: nil, percent_ownership: -1, source_of_funds: nil)

  if id.nil?
    # generate this address
    address_id = address.id unless address.nil?

    resource = @client.post('/v1/parent_companies', {
      address_id: address_id,
      country: country,
      description: description,
      name: name,
      metadata: metadata,
      percent_ownership: percent_ownership,
      source_of_funds: source_of_funds
    })
    body = JSON.parse(resource.body)
    SVBClient::Onboarding::ParentCompany.new(@client, body["data"]["id"])
  else
    # verify that the resource exists
    @client.get("/v1/parent_companies/#{id}")
    SVBClient::Onboarding::ParentCompany.new(@client, id)
  end
end
person(id: nil, address_id: -1, address: nil, date_of_birth: nil, email_address: nil, first_name: nil, gov_idents: [], gov_ident_ids: [], last_name: nil, login_id: -1, login: nil, metadata: nil, middle_name: nil, percent_ownership: -1, phone_number: nil, risk_commentary: nil, roles: [], title: nil) click to toggle source
# File lib/svbclient.rb, line 472
def person(id: nil, address_id: -1, address: nil, date_of_birth: nil, email_address: nil,
  first_name: nil, gov_idents: [], gov_ident_ids: [], last_name: nil, login_id: -1, login: nil,
  metadata: nil, middle_name: nil, percent_ownership: -1, phone_number: nil, risk_commentary: nil,
  roles: [], title: nil)

  if id.nil?
    # generate this address
    unless gov_idents.nil?
      gov_ident_ids = gov_idents.map do |gov_ident|
        gov_ident.id
      end
    end
    address_id = address.id unless address.nil?
    login_id = login.id unless login.nil?

    resource = @client.post('/v1/persons', {
      address_id: address_id,
      date_of_birth: date_of_birth,
      email_address: email_address,
      first_name: first_name,
      gov_ident_ids: gov_ident_ids,
      last_name: last_name,
      login_id: login_id,
      metadata: metadata,
      middle_name: middle_name,
      percent_ownership: percent_ownership,
      phone_number: phone_number,
      risk_commentary: risk_commentary,
      roles: roles,
      title: title
    })
    body = JSON.parse(resource.body)
    SVBClient::Onboarding::Person.new(@client, body["data"]["id"])
  else
    # verify that the resource exists
    @client.get("/v1/persons/#{id}")
    SVBClient::Onboarding::Person.new(@client, id)
  end
end