svbclient 1.0.2 → 2.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
 - data/lib/svbclient.rb +325 -4
 - metadata +1 -1
 
    
        checksums.yaml
    CHANGED
    
    | 
         @@ -1,7 +1,7 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            ---
         
     | 
| 
       2 
2 
     | 
    
         
             
            SHA1:
         
     | 
| 
       3 
     | 
    
         
            -
              metadata.gz:  
     | 
| 
       4 
     | 
    
         
            -
              data.tar.gz:  
     | 
| 
      
 3 
     | 
    
         
            +
              metadata.gz: 28bcbda2d8863c0d081c969715c8019f20ab2c0e
         
     | 
| 
      
 4 
     | 
    
         
            +
              data.tar.gz: a2a0f99f9e42c2d3e6121b897dcde768b28dfbc8
         
     | 
| 
       5 
5 
     | 
    
         
             
            SHA512:
         
     | 
| 
       6 
     | 
    
         
            -
              metadata.gz:  
     | 
| 
       7 
     | 
    
         
            -
              data.tar.gz:  
     | 
| 
      
 6 
     | 
    
         
            +
              metadata.gz: a065ff86fbc9e0b877a489b93d160a6f4ed76519c82808d3e623bffe71589cdd1a7e196331616e7e4dd2b310dad37fceca336a4a02d9f966be41d110500e8fa5
         
     | 
| 
      
 7 
     | 
    
         
            +
              data.tar.gz: 7b7218fe93eb95147699d0a00be8b411878f57223f0c041a757b2cf22002ef4a283106b1384c9d6b565cc9bd770d86c0c712baf115878cb036b5396bbd114b4a
         
     | 
    
        data/lib/svbclient.rb
    CHANGED
    
    | 
         @@ -63,13 +63,15 @@ class SVBClient 
     | 
|
| 
       63 
63 
     | 
    
         
             
              end
         
     | 
| 
       64 
64 
     | 
    
         | 
| 
       65 
65 
     | 
    
         
             
              def patch(path, jsonbody)
         
     | 
| 
       66 
     | 
    
         
            -
                 
     | 
| 
       67 
     | 
    
         
            -
                 
     | 
| 
      
 66 
     | 
    
         
            +
                jsonbody = { data: jsonbody } unless jsonbody.key? 'data'
         
     | 
| 
      
 67 
     | 
    
         
            +
                hs = headers('PATCH', path, '', jsonbody.to_json)
         
     | 
| 
      
 68 
     | 
    
         
            +
                RestClient.patch(@BASE_URL + path, jsonbody.to_json, headers=hs)
         
     | 
| 
       68 
69 
     | 
    
         
             
              end
         
     | 
| 
       69 
70 
     | 
    
         | 
| 
       70 
71 
     | 
    
         
             
              def post(path, jsonbody)
         
     | 
| 
       71 
     | 
    
         
            -
                 
     | 
| 
       72 
     | 
    
         
            -
                 
     | 
| 
      
 72 
     | 
    
         
            +
                jsonbody = { data: jsonbody } unless jsonbody.key? 'data'
         
     | 
| 
      
 73 
     | 
    
         
            +
                hs = headers('POST', path, '', jsonbody.to_json)
         
     | 
| 
      
 74 
     | 
    
         
            +
                RestClient.post(@BASE_URL + path, jsonbody.to_json, headers=hs)
         
     | 
| 
       73 
75 
     | 
    
         
             
              end
         
     | 
| 
       74 
76 
     | 
    
         | 
| 
       75 
77 
     | 
    
         
             
              def upload(path, filesrc, mimetype)
         
     | 
| 
         @@ -82,3 +84,322 @@ class SVBClient 
     | 
|
| 
       82 
84 
     | 
    
         
             
                RestClient.post(@BASE_URL + path, { :file => filesrc, :multipart => true, 'Content-Type': mimetype }, headers=hs)
         
     | 
| 
       83 
85 
     | 
    
         
             
              end
         
     | 
| 
       84 
86 
     | 
    
         
             
            end
         
     | 
| 
      
 87 
     | 
    
         
            +
             
     | 
| 
      
 88 
     | 
    
         
            +
            class SVBClient::Onboarding
         
     | 
| 
      
 89 
     | 
    
         
            +
              def initialize(client)
         
     | 
| 
      
 90 
     | 
    
         
            +
                raise 'provide an API client' if client.nil?
         
     | 
| 
      
 91 
     | 
    
         
            +
                @client = client
         
     | 
| 
      
 92 
     | 
    
         
            +
              end
         
     | 
| 
      
 93 
     | 
    
         
            +
             
     | 
| 
      
 94 
     | 
    
         
            +
              def address(id: nil, street_line1: nil, street_line2: nil, street_line3: nil, city: nil, state: nil, postal_code: nil, country: nil)
         
     | 
| 
      
 95 
     | 
    
         
            +
                if id.nil?
         
     | 
| 
      
 96 
     | 
    
         
            +
                  # generate this address
         
     | 
| 
      
 97 
     | 
    
         
            +
                  add = @client.post('/v1/addresses', {
         
     | 
| 
      
 98 
     | 
    
         
            +
                    street_line1: street_line1,
         
     | 
| 
      
 99 
     | 
    
         
            +
                    street_line2: street_line2,
         
     | 
| 
      
 100 
     | 
    
         
            +
                    street_line3: street_line3,
         
     | 
| 
      
 101 
     | 
    
         
            +
                    city: city,
         
     | 
| 
      
 102 
     | 
    
         
            +
                    state: state,
         
     | 
| 
      
 103 
     | 
    
         
            +
                    postal_code: postal_code,
         
     | 
| 
      
 104 
     | 
    
         
            +
                    country: country
         
     | 
| 
      
 105 
     | 
    
         
            +
                  })
         
     | 
| 
      
 106 
     | 
    
         
            +
                  body = JSON.parse(add.body)
         
     | 
| 
      
 107 
     | 
    
         
            +
                  SVBClient::Onboarding::Address.new(@client, body["data"]["id"])
         
     | 
| 
      
 108 
     | 
    
         
            +
                else
         
     | 
| 
      
 109 
     | 
    
         
            +
                  # verify that the address exists
         
     | 
| 
      
 110 
     | 
    
         
            +
                  @client.get("/v1/addresses/#{id}")
         
     | 
| 
      
 111 
     | 
    
         
            +
                  SVBClient::Onboarding::Address.new(@client, id)
         
     | 
| 
      
 112 
     | 
    
         
            +
                end
         
     | 
| 
      
 113 
     | 
    
         
            +
              end
         
     | 
| 
      
 114 
     | 
    
         
            +
             
     | 
| 
      
 115 
     | 
    
         
            +
              def company(id: nil, description: nil, document_ids: [], email_address: nil, incorporation_address_id: -1,
         
     | 
| 
      
 116 
     | 
    
         
            +
                mailing_address_id: -1, metadata: nil, mcc: -1, name: nil, options: nil, parent_company_id: -1, person_ids: [],
         
     | 
| 
      
 117 
     | 
    
         
            +
                phone_number: nil, physical_address_id: -1, product_description: nil, products: [], referral_source: nil,
         
     | 
| 
      
 118 
     | 
    
         
            +
                risk_commentary: nil, source_of_funds: nil, state: nil, website_url: nil,
         
     | 
| 
      
 119 
     | 
    
         
            +
                documents: nil, incorporation_address: nil, mailing_address: nil, parent_company: nil,
         
     | 
| 
      
 120 
     | 
    
         
            +
                persons: nil, physical_address: nil)
         
     | 
| 
      
 121 
     | 
    
         
            +
             
     | 
| 
      
 122 
     | 
    
         
            +
                if id.nil?
         
     | 
| 
      
 123 
     | 
    
         
            +
                  # generate this address
         
     | 
| 
      
 124 
     | 
    
         
            +
             
     | 
| 
      
 125 
     | 
    
         
            +
                  unless documents.nil?
         
     | 
| 
      
 126 
     | 
    
         
            +
                    document_ids = documents.map do |document|
         
     | 
| 
      
 127 
     | 
    
         
            +
                      document.id
         
     | 
| 
      
 128 
     | 
    
         
            +
                    end
         
     | 
| 
      
 129 
     | 
    
         
            +
                  end
         
     | 
| 
      
 130 
     | 
    
         
            +
                  unless persons.nil?
         
     | 
| 
      
 131 
     | 
    
         
            +
                    person_ids = persons.map do |person|
         
     | 
| 
      
 132 
     | 
    
         
            +
                      person.id
         
     | 
| 
      
 133 
     | 
    
         
            +
                    end
         
     | 
| 
      
 134 
     | 
    
         
            +
                  end
         
     | 
| 
      
 135 
     | 
    
         
            +
                  incorporation_address_id = incorporation_address.id unless incorporation_address.nil?
         
     | 
| 
      
 136 
     | 
    
         
            +
                  mailing_address_id = mailing_address.id unless mailing_address.nil?
         
     | 
| 
      
 137 
     | 
    
         
            +
                  physical_address_id = physical_address.id unless physical_address.nil?
         
     | 
| 
      
 138 
     | 
    
         
            +
                  parent_company_id = parent_company.id unless parent_company.nil?
         
     | 
| 
      
 139 
     | 
    
         
            +
             
     | 
| 
      
 140 
     | 
    
         
            +
                  resource = @client.post('/v1/companies', {
         
     | 
| 
      
 141 
     | 
    
         
            +
                    description: description,
         
     | 
| 
      
 142 
     | 
    
         
            +
                    document_ids: document_ids,
         
     | 
| 
      
 143 
     | 
    
         
            +
                    email_address: email_address,
         
     | 
| 
      
 144 
     | 
    
         
            +
                    incorporation_address_id: incorporation_address_id,
         
     | 
| 
      
 145 
     | 
    
         
            +
                    mailing_address_id: mailing_address_id,
         
     | 
| 
      
 146 
     | 
    
         
            +
                    metadata: metadata,
         
     | 
| 
      
 147 
     | 
    
         
            +
                    mcc: mcc,
         
     | 
| 
      
 148 
     | 
    
         
            +
                    name: name,
         
     | 
| 
      
 149 
     | 
    
         
            +
                    options: options,
         
     | 
| 
      
 150 
     | 
    
         
            +
                    parent_company_id: parent_company_id,
         
     | 
| 
      
 151 
     | 
    
         
            +
                    person_ids: person_ids,
         
     | 
| 
      
 152 
     | 
    
         
            +
                    phone_number: phone_number,
         
     | 
| 
      
 153 
     | 
    
         
            +
                    physical_address_id: physical_address_id,
         
     | 
| 
      
 154 
     | 
    
         
            +
                    product_description: product_description,
         
     | 
| 
      
 155 
     | 
    
         
            +
                    products: products,
         
     | 
| 
      
 156 
     | 
    
         
            +
                    referral_source: referral_source,
         
     | 
| 
      
 157 
     | 
    
         
            +
                    risk_commentary: risk_commentary,
         
     | 
| 
      
 158 
     | 
    
         
            +
                    source_of_funds: source_of_funds,
         
     | 
| 
      
 159 
     | 
    
         
            +
                    state: state,
         
     | 
| 
      
 160 
     | 
    
         
            +
                    website_url: website_url
         
     | 
| 
      
 161 
     | 
    
         
            +
                  })
         
     | 
| 
      
 162 
     | 
    
         
            +
                  body = JSON.parse(resource.body)
         
     | 
| 
      
 163 
     | 
    
         
            +
                  SVBClient::Onboarding::Company.new(@client, body["data"]["id"])
         
     | 
| 
      
 164 
     | 
    
         
            +
                else
         
     | 
| 
      
 165 
     | 
    
         
            +
                  # verify that the resource exists
         
     | 
| 
      
 166 
     | 
    
         
            +
                  @client.get("/v1/companies/#{id}")
         
     | 
| 
      
 167 
     | 
    
         
            +
                  SVBClient::Onboarding::Company.new(@client, id)
         
     | 
| 
      
 168 
     | 
    
         
            +
                end
         
     | 
| 
      
 169 
     | 
    
         
            +
              end
         
     | 
| 
      
 170 
     | 
    
         
            +
             
     | 
| 
      
 171 
     | 
    
         
            +
              def document(id: nil, document_type: nil, file_id: -1, metadata: nil, number: nil, file: nil)
         
     | 
| 
      
 172 
     | 
    
         
            +
             
     | 
| 
      
 173 
     | 
    
         
            +
                if id.nil?
         
     | 
| 
      
 174 
     | 
    
         
            +
                  # generate this address
         
     | 
| 
      
 175 
     | 
    
         
            +
                  file_id = file.id unless file.nil?
         
     | 
| 
      
 176 
     | 
    
         
            +
             
     | 
| 
      
 177 
     | 
    
         
            +
                  resource = @client.post('/v1/documents', {
         
     | 
| 
      
 178 
     | 
    
         
            +
                    document_type: document_type,
         
     | 
| 
      
 179 
     | 
    
         
            +
                    file_id: file_id,
         
     | 
| 
      
 180 
     | 
    
         
            +
                    metadata: metadata,
         
     | 
| 
      
 181 
     | 
    
         
            +
                    number: number
         
     | 
| 
      
 182 
     | 
    
         
            +
                  })
         
     | 
| 
      
 183 
     | 
    
         
            +
                  body = JSON.parse(resource.body)
         
     | 
| 
      
 184 
     | 
    
         
            +
                  SVBClient::Onboarding::Document.new(@client, body["data"]["id"])
         
     | 
| 
      
 185 
     | 
    
         
            +
                else
         
     | 
| 
      
 186 
     | 
    
         
            +
                  # verify that the resource exists
         
     | 
| 
      
 187 
     | 
    
         
            +
                  @client.get("/v1/documents/#{id}")
         
     | 
| 
      
 188 
     | 
    
         
            +
                  SVBClient::Onboarding::Document.new(@client, id)
         
     | 
| 
      
 189 
     | 
    
         
            +
                end
         
     | 
| 
      
 190 
     | 
    
         
            +
              end
         
     | 
| 
      
 191 
     | 
    
         
            +
             
     | 
| 
      
 192 
     | 
    
         
            +
              def file(id: nil, file: nil, metadata: nil, mimetype: nil)
         
     | 
| 
      
 193 
     | 
    
         
            +
                if id.nil?
         
     | 
| 
      
 194 
     | 
    
         
            +
                  # upload this file
         
     | 
| 
      
 195 
     | 
    
         
            +
                  resource = @client.upload("/v1/files", file, mimetype)
         
     | 
| 
      
 196 
     | 
    
         
            +
                else
         
     | 
| 
      
 197 
     | 
    
         
            +
                  # verify that the resource exists
         
     | 
| 
      
 198 
     | 
    
         
            +
                  @client.get("/v1/files/#{id}")
         
     | 
| 
      
 199 
     | 
    
         
            +
                  SVBClient::Onboarding::File.new(@client, id)
         
     | 
| 
      
 200 
     | 
    
         
            +
                end
         
     | 
| 
      
 201 
     | 
    
         
            +
              end
         
     | 
| 
      
 202 
     | 
    
         
            +
             
     | 
| 
      
 203 
     | 
    
         
            +
              def gov_ident(id: nil, country: nil, document_type: nil, expires_on: nil, file_id: -1,
         
     | 
| 
      
 204 
     | 
    
         
            +
                first_name: nil, last_name: nil, middle_name: nil, number: nil, file: nil)
         
     | 
| 
      
 205 
     | 
    
         
            +
             
     | 
| 
      
 206 
     | 
    
         
            +
                if id.nil?
         
     | 
| 
      
 207 
     | 
    
         
            +
                  # generate this address
         
     | 
| 
      
 208 
     | 
    
         
            +
                  file_id = file.id unless file.nil?
         
     | 
| 
      
 209 
     | 
    
         
            +
             
     | 
| 
      
 210 
     | 
    
         
            +
                  resource = @client.post('/v1/gov_idents', {
         
     | 
| 
      
 211 
     | 
    
         
            +
                    country: country,
         
     | 
| 
      
 212 
     | 
    
         
            +
                    document_type: document_type,
         
     | 
| 
      
 213 
     | 
    
         
            +
                    expires_on: expires_on,
         
     | 
| 
      
 214 
     | 
    
         
            +
                    file_id: file_id,
         
     | 
| 
      
 215 
     | 
    
         
            +
                    first_name: first_name,
         
     | 
| 
      
 216 
     | 
    
         
            +
                    last_name: last_name,
         
     | 
| 
      
 217 
     | 
    
         
            +
                    middle_name: middle_name,
         
     | 
| 
      
 218 
     | 
    
         
            +
                    number: number
         
     | 
| 
      
 219 
     | 
    
         
            +
                  })
         
     | 
| 
      
 220 
     | 
    
         
            +
                  body = JSON.parse(resource.body)
         
     | 
| 
      
 221 
     | 
    
         
            +
                  SVBClient::Onboarding::GovIdent.new(@client, body["data"]["id"])
         
     | 
| 
      
 222 
     | 
    
         
            +
                else
         
     | 
| 
      
 223 
     | 
    
         
            +
                  # verify that the resource exists
         
     | 
| 
      
 224 
     | 
    
         
            +
                  @client.get("/v1/gov_idents/#{id}")
         
     | 
| 
      
 225 
     | 
    
         
            +
                  SVBClient::Onboarding::GovIdent.new(@client, id)
         
     | 
| 
      
 226 
     | 
    
         
            +
                end
         
     | 
| 
      
 227 
     | 
    
         
            +
              end
         
     | 
| 
      
 228 
     | 
    
         
            +
             
     | 
| 
      
 229 
     | 
    
         
            +
              def login(id: nil, login_name: nil, reservation_expires: nil)
         
     | 
| 
      
 230 
     | 
    
         
            +
                if id.nil?
         
     | 
| 
      
 231 
     | 
    
         
            +
                  # generate this address
         
     | 
| 
      
 232 
     | 
    
         
            +
                  resource = @client.post('/v1/logins', {
         
     | 
| 
      
 233 
     | 
    
         
            +
                    login_name: login_name,
         
     | 
| 
      
 234 
     | 
    
         
            +
                    reservation_expires: reservation_expires
         
     | 
| 
      
 235 
     | 
    
         
            +
                  })
         
     | 
| 
      
 236 
     | 
    
         
            +
                  body = JSON.parse(resource.body)
         
     | 
| 
      
 237 
     | 
    
         
            +
                  SVBClient::Onboarding::Login.new(@client, body["data"]["id"])
         
     | 
| 
      
 238 
     | 
    
         
            +
                else
         
     | 
| 
      
 239 
     | 
    
         
            +
                  # verify that the resource exists
         
     | 
| 
      
 240 
     | 
    
         
            +
                  @client.get("/v1/logins/#{id}")
         
     | 
| 
      
 241 
     | 
    
         
            +
                  SVBClient::Onboarding::Login.new(@client, id)
         
     | 
| 
      
 242 
     | 
    
         
            +
                end
         
     | 
| 
      
 243 
     | 
    
         
            +
              end
         
     | 
| 
      
 244 
     | 
    
         
            +
             
     | 
| 
      
 245 
     | 
    
         
            +
              def parent_company(id: nil, address_id: -1, address: nil, country: nil, description: nil,
         
     | 
| 
      
 246 
     | 
    
         
            +
                name: nil, metadata: nil, percent_ownership: -1, source_of_funds: nil)
         
     | 
| 
      
 247 
     | 
    
         
            +
             
     | 
| 
      
 248 
     | 
    
         
            +
                if id.nil?
         
     | 
| 
      
 249 
     | 
    
         
            +
                  # generate this address
         
     | 
| 
      
 250 
     | 
    
         
            +
                  address_id = address.id unless address.nil?
         
     | 
| 
      
 251 
     | 
    
         
            +
             
     | 
| 
      
 252 
     | 
    
         
            +
                  resource = @client.post('/v1/parent_companies', {
         
     | 
| 
      
 253 
     | 
    
         
            +
                    address_id: address_id,
         
     | 
| 
      
 254 
     | 
    
         
            +
                    country: country,
         
     | 
| 
      
 255 
     | 
    
         
            +
                    description: description,
         
     | 
| 
      
 256 
     | 
    
         
            +
                    name: name,
         
     | 
| 
      
 257 
     | 
    
         
            +
                    metadata: metadata,
         
     | 
| 
      
 258 
     | 
    
         
            +
                    percent_ownership: percent_ownership,
         
     | 
| 
      
 259 
     | 
    
         
            +
                    source_of_funds: source_of_funds
         
     | 
| 
      
 260 
     | 
    
         
            +
                  })
         
     | 
| 
      
 261 
     | 
    
         
            +
                  body = JSON.parse(resource.body)
         
     | 
| 
      
 262 
     | 
    
         
            +
                  SVBClient::Onboarding::ParentCompany.new(@client, body["data"]["id"])
         
     | 
| 
      
 263 
     | 
    
         
            +
                else
         
     | 
| 
      
 264 
     | 
    
         
            +
                  # verify that the resource exists
         
     | 
| 
      
 265 
     | 
    
         
            +
                  @client.get("/v1/parent_companies/#{id}")
         
     | 
| 
      
 266 
     | 
    
         
            +
                  SVBClient::Onboarding::ParentCompany.new(@client, id)
         
     | 
| 
      
 267 
     | 
    
         
            +
                end
         
     | 
| 
      
 268 
     | 
    
         
            +
              end
         
     | 
| 
      
 269 
     | 
    
         
            +
             
     | 
| 
      
 270 
     | 
    
         
            +
              def person(id: nil, address_id: -1, address: nil, date_of_birth: nil, email_address: nil,
         
     | 
| 
      
 271 
     | 
    
         
            +
                first_name: nil, gov_idents: [], gov_ident_ids: [], last_name: nil, login_id: -1, login: nil,
         
     | 
| 
      
 272 
     | 
    
         
            +
                metadata: nil, middle_name: nil, percent_ownership: -1, phone_number: nil, risk_commentary: nil,
         
     | 
| 
      
 273 
     | 
    
         
            +
                roles: [], title: nil)
         
     | 
| 
      
 274 
     | 
    
         
            +
             
     | 
| 
      
 275 
     | 
    
         
            +
                if id.nil?
         
     | 
| 
      
 276 
     | 
    
         
            +
                  # generate this address
         
     | 
| 
      
 277 
     | 
    
         
            +
                  unless gov_idents.nil?
         
     | 
| 
      
 278 
     | 
    
         
            +
                    gov_ident_ids = gov_idents.map do |gov_ident|
         
     | 
| 
      
 279 
     | 
    
         
            +
                      gov_ident.id
         
     | 
| 
      
 280 
     | 
    
         
            +
                    end
         
     | 
| 
      
 281 
     | 
    
         
            +
                  end
         
     | 
| 
      
 282 
     | 
    
         
            +
                  address_id = address.id unless address.nil?
         
     | 
| 
      
 283 
     | 
    
         
            +
                  login_id = login.id unless login.nil?
         
     | 
| 
      
 284 
     | 
    
         
            +
             
     | 
| 
      
 285 
     | 
    
         
            +
                  resource = @client.post('/v1/persons', {
         
     | 
| 
      
 286 
     | 
    
         
            +
                    address_id: address_id,
         
     | 
| 
      
 287 
     | 
    
         
            +
                    date_of_birth: date_of_birth,
         
     | 
| 
      
 288 
     | 
    
         
            +
                    email_address: email_address,
         
     | 
| 
      
 289 
     | 
    
         
            +
                    first_name: first_name,
         
     | 
| 
      
 290 
     | 
    
         
            +
                    gov_ident_ids: gov_ident_ids,
         
     | 
| 
      
 291 
     | 
    
         
            +
                    last_name: last_name,
         
     | 
| 
      
 292 
     | 
    
         
            +
                    login_id: login_id,
         
     | 
| 
      
 293 
     | 
    
         
            +
                    metadata: metadata,
         
     | 
| 
      
 294 
     | 
    
         
            +
                    middle_name: middle_name,
         
     | 
| 
      
 295 
     | 
    
         
            +
                    percent_ownership: percent_ownership,
         
     | 
| 
      
 296 
     | 
    
         
            +
                    phone_number: phone_number,
         
     | 
| 
      
 297 
     | 
    
         
            +
                    risk_commentary: risk_commentary,
         
     | 
| 
      
 298 
     | 
    
         
            +
                    roles: roles,
         
     | 
| 
      
 299 
     | 
    
         
            +
                    title: title
         
     | 
| 
      
 300 
     | 
    
         
            +
                  })
         
     | 
| 
      
 301 
     | 
    
         
            +
                  body = JSON.parse(resource.body)
         
     | 
| 
      
 302 
     | 
    
         
            +
                  SVBClient::Onboarding::Person.new(@client, body["data"]["id"])
         
     | 
| 
      
 303 
     | 
    
         
            +
                else
         
     | 
| 
      
 304 
     | 
    
         
            +
                  # verify that the resource exists
         
     | 
| 
      
 305 
     | 
    
         
            +
                  @client.get("/v1/persons/#{id}")
         
     | 
| 
      
 306 
     | 
    
         
            +
                  SVBClient::Onboarding::Person.new(@client, id)
         
     | 
| 
      
 307 
     | 
    
         
            +
                end
         
     | 
| 
      
 308 
     | 
    
         
            +
              end
         
     | 
| 
      
 309 
     | 
    
         
            +
            end
         
     | 
| 
      
 310 
     | 
    
         
            +
             
     | 
| 
      
 311 
     | 
    
         
            +
            class SVBClient::Onboarding::Resource
         
     | 
| 
      
 312 
     | 
    
         
            +
              def initialize(client, id)
         
     | 
| 
      
 313 
     | 
    
         
            +
                @client = client
         
     | 
| 
      
 314 
     | 
    
         
            +
                @id = id
         
     | 
| 
      
 315 
     | 
    
         
            +
                @type = 'thing'
         
     | 
| 
      
 316 
     | 
    
         
            +
              end
         
     | 
| 
      
 317 
     | 
    
         
            +
             
     | 
| 
      
 318 
     | 
    
         
            +
              def id
         
     | 
| 
      
 319 
     | 
    
         
            +
                @id
         
     | 
| 
      
 320 
     | 
    
         
            +
              end
         
     | 
| 
      
 321 
     | 
    
         
            +
             
     | 
| 
      
 322 
     | 
    
         
            +
              def data
         
     | 
| 
      
 323 
     | 
    
         
            +
                JSON.parse(@client.get("/v1/#{@type}/#{@id}").body)["data"]
         
     | 
| 
      
 324 
     | 
    
         
            +
              end
         
     | 
| 
      
 325 
     | 
    
         
            +
             
     | 
| 
      
 326 
     | 
    
         
            +
              def update(jsonbody)
         
     | 
| 
      
 327 
     | 
    
         
            +
                @client.patch("/v1/#{@type}/#{@id}", jsonbody)
         
     | 
| 
      
 328 
     | 
    
         
            +
              end
         
     | 
| 
      
 329 
     | 
    
         
            +
             
     | 
| 
      
 330 
     | 
    
         
            +
              def delete
         
     | 
| 
      
 331 
     | 
    
         
            +
                @client.delete("/v1/#{@type}/#{@id}")
         
     | 
| 
      
 332 
     | 
    
         
            +
              end
         
     | 
| 
      
 333 
     | 
    
         
            +
            end
         
     | 
| 
      
 334 
     | 
    
         
            +
             
     | 
| 
      
 335 
     | 
    
         
            +
            class SVBClient::Onboarding::Address < SVBClient::Onboarding::Resource
         
     | 
| 
      
 336 
     | 
    
         
            +
              def initialize(client, id)
         
     | 
| 
      
 337 
     | 
    
         
            +
                @client = client
         
     | 
| 
      
 338 
     | 
    
         
            +
                @id = id
         
     | 
| 
      
 339 
     | 
    
         
            +
                @type = 'addresses'
         
     | 
| 
      
 340 
     | 
    
         
            +
              end
         
     | 
| 
      
 341 
     | 
    
         
            +
            end
         
     | 
| 
      
 342 
     | 
    
         
            +
             
     | 
| 
      
 343 
     | 
    
         
            +
            class SVBClient::Onboarding::Company < SVBClient::Onboarding::Resource
         
     | 
| 
      
 344 
     | 
    
         
            +
              def initialize(client, id)
         
     | 
| 
      
 345 
     | 
    
         
            +
                @client = client
         
     | 
| 
      
 346 
     | 
    
         
            +
                @id = id
         
     | 
| 
      
 347 
     | 
    
         
            +
                @type = 'companies'
         
     | 
| 
      
 348 
     | 
    
         
            +
              end
         
     | 
| 
      
 349 
     | 
    
         
            +
            end
         
     | 
| 
      
 350 
     | 
    
         
            +
             
     | 
| 
      
 351 
     | 
    
         
            +
            class SVBClient::Onboarding::Document < SVBClient::Onboarding::Resource
         
     | 
| 
      
 352 
     | 
    
         
            +
              def initialize(client, id)
         
     | 
| 
      
 353 
     | 
    
         
            +
                @client = client
         
     | 
| 
      
 354 
     | 
    
         
            +
                @id = id
         
     | 
| 
      
 355 
     | 
    
         
            +
                @type = 'documents'
         
     | 
| 
      
 356 
     | 
    
         
            +
              end
         
     | 
| 
      
 357 
     | 
    
         
            +
            end
         
     | 
| 
      
 358 
     | 
    
         
            +
             
     | 
| 
      
 359 
     | 
    
         
            +
            class SVBClient::Onboarding::File < SVBClient::Onboarding::Resource
         
     | 
| 
      
 360 
     | 
    
         
            +
              def initialize(client, id)
         
     | 
| 
      
 361 
     | 
    
         
            +
                @client = client
         
     | 
| 
      
 362 
     | 
    
         
            +
                @id = id
         
     | 
| 
      
 363 
     | 
    
         
            +
                @type = 'files'
         
     | 
| 
      
 364 
     | 
    
         
            +
              end
         
     | 
| 
      
 365 
     | 
    
         
            +
             
     | 
| 
      
 366 
     | 
    
         
            +
              def update
         
     | 
| 
      
 367 
     | 
    
         
            +
                raise 'unsupported'
         
     | 
| 
      
 368 
     | 
    
         
            +
              end
         
     | 
| 
      
 369 
     | 
    
         
            +
            end
         
     | 
| 
      
 370 
     | 
    
         
            +
             
     | 
| 
      
 371 
     | 
    
         
            +
            class SVBClient::Onboarding::GovIdent < SVBClient::Onboarding::Resource
         
     | 
| 
      
 372 
     | 
    
         
            +
              def initialize(client, id)
         
     | 
| 
      
 373 
     | 
    
         
            +
                @client = client
         
     | 
| 
      
 374 
     | 
    
         
            +
                @id = id
         
     | 
| 
      
 375 
     | 
    
         
            +
                @type = 'gov_idents'
         
     | 
| 
      
 376 
     | 
    
         
            +
              end
         
     | 
| 
      
 377 
     | 
    
         
            +
            end
         
     | 
| 
      
 378 
     | 
    
         
            +
             
     | 
| 
      
 379 
     | 
    
         
            +
            class SVBClient::Onboarding::Login < SVBClient::Onboarding::Resource
         
     | 
| 
      
 380 
     | 
    
         
            +
              def initialize(client, id)
         
     | 
| 
      
 381 
     | 
    
         
            +
                @client = client
         
     | 
| 
      
 382 
     | 
    
         
            +
                @id = id
         
     | 
| 
      
 383 
     | 
    
         
            +
                @type = 'logins'
         
     | 
| 
      
 384 
     | 
    
         
            +
              end
         
     | 
| 
      
 385 
     | 
    
         
            +
             
     | 
| 
      
 386 
     | 
    
         
            +
              def update
         
     | 
| 
      
 387 
     | 
    
         
            +
                raise 'unsupported'
         
     | 
| 
      
 388 
     | 
    
         
            +
              end
         
     | 
| 
      
 389 
     | 
    
         
            +
            end
         
     | 
| 
      
 390 
     | 
    
         
            +
             
     | 
| 
      
 391 
     | 
    
         
            +
            class SVBClient::Onboarding::ParentCompany < SVBClient::Onboarding::Resource
         
     | 
| 
      
 392 
     | 
    
         
            +
              def initialize(client, id)
         
     | 
| 
      
 393 
     | 
    
         
            +
                @client = client
         
     | 
| 
      
 394 
     | 
    
         
            +
                @id = id
         
     | 
| 
      
 395 
     | 
    
         
            +
                @type = 'parent_companies'
         
     | 
| 
      
 396 
     | 
    
         
            +
              end
         
     | 
| 
      
 397 
     | 
    
         
            +
            end
         
     | 
| 
      
 398 
     | 
    
         
            +
             
     | 
| 
      
 399 
     | 
    
         
            +
            class SVBClient::Onboarding::Person < SVBClient::Onboarding::Resource
         
     | 
| 
      
 400 
     | 
    
         
            +
              def initialize(client, id)
         
     | 
| 
      
 401 
     | 
    
         
            +
                @client = client
         
     | 
| 
      
 402 
     | 
    
         
            +
                @id = id
         
     | 
| 
      
 403 
     | 
    
         
            +
                @type = 'persons'
         
     | 
| 
      
 404 
     | 
    
         
            +
              end
         
     | 
| 
      
 405 
     | 
    
         
            +
            end
         
     |