Class: Pinnacle::AsyncCompanyClient

Inherits:
Object
  • Object
show all
Defined in:
lib/rcs/company/client.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(request_client:) ⇒ Pinnacle::AsyncCompanyClient

Parameters:



219
220
221
# File 'lib/rcs/company/client.rb', line 219

def initialize(request_client:)
  @request_client = request_client
end

Instance Attribute Details

#request_clientPinnacle::AsyncRequestClient (readonly)



215
216
217
# File 'lib/rcs/company/client.rb', line 215

def request_client
  @request_client
end

Instance Method Details

#get(company_id: nil, company_name: nil, request_options: nil) ⇒ Array<Pinnacle::Company>

Retrieve the company’s information (i.e. approval status, company name, etc.).

Search by company ID or company name.

Examples:

api = Pinnacle::Client.new(
  base_url: "https://api.example.com",
  environment: Pinnacle::Environment::DEFAULT,
  api_key: "YOUR_API_KEY"
)
api.company.get

Parameters:

  • company_id (Integer) (defaults to: nil)

    The unique identifier for the company

  • company_name (String) (defaults to: nil)

    The name of the company

  • request_options (Pinnacle::RequestOptions) (defaults to: nil)

Returns:



237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
# File 'lib/rcs/company/client.rb', line 237

def get(company_id: nil, company_name: nil, request_options: nil)
  Async do
    response = @request_client.conn.get do |req|
      req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
      req.headers["PINNACLE-API-Key"] = request_options.api_key unless request_options&.api_key.nil?
      req.headers = {
    **(req.headers || {}),
    **@request_client.get_headers,
    **(request_options&.additional_headers || {})
      }.compact
      req.params = {
        **(request_options&.additional_query_parameters || {}),
        "companyId": company_id,
        "companyName": company_name
      }.compact
      unless request_options.nil? || request_options&.additional_body_parameters.nil?
        req.body = { **(request_options&.additional_body_parameters || {}) }.compact
      end
      req.url "#{@request_client.get_url(request_options: request_options)}/company"
    end
    parsed_json = JSON.parse(response.body)
    parsed_json&.map do |item|
      item = item.to_json
      Pinnacle::Company.from_json(json_object: item)
    end
  end
end

#register(company:, company_contact:, point_of_contact:, optionals: nil, request_options: nil) ⇒ Pinnacle::Company::CompanyRegisterResponse

Register a company for RCS with the Pinnacle platform

Examples:

api = Pinnacle::Client.new(
  base_url: "https://api.example.com",
  environment: Pinnacle::Environment::DEFAULT,
  api_key: "YOUR_API_KEY"
)
api.company.register(
  company: { name: "name", address: "address", ein: "ein", description: "description", brand_color: "brandColor", logo_url: "logoUrl", hero_url: "heroUrl" },
  company_contact: { primary_website_url: "primaryWebsiteUrl", primary_website_label: "primaryWebsiteLabel", primary_phone: "primaryPhone", primary_phone_label: "primaryPhoneLabel", primary_email: "primaryEmail", primary_email_label: "primaryEmailLabel", privacy_policy_url: "privacyPolicyUrl", tos_url: "tosUrl" },
  point_of_contact: { poc_name: "pocName", poc_title: "pocTitle", poc_email: "pocEmail" }
)

Parameters:

  • company (Hash)

    Request of type Pinnacle::CompanyDetails, as a Hash

    • :name (String)

    • :address (String)

    • :ein (String)

    • :description (String)

    • :brand_color (String)

    • :logo_url (String)

    • :hero_url (String)

  • company_contact (Hash)

    Request of type Pinnacle::CompanyContact, as a Hash

    • :primary_website_url (String)

    • :primary_website_label (String)

    • :primary_phone (String)

    • :primary_phone_label (String)

    • :primary_email (String)

    • :primary_email_label (String)

    • :privacy_policy_url (String)

    • :tos_url (String)

  • point_of_contact (Hash)

    Request of type Pinnacle::PointOfContact, as a Hash

    • :poc_name (String)

    • :poc_title (String)

    • :poc_email (String)

  • optionals (Hash) (defaults to: nil)

    Request of type Pinnacle::Optionals, as a Hash

    • :additional_websites (Array<Pinnacle::AdditionalWebsite>)

    • :additional_phone_numbers (Array<Pinnacle::AdditionalPhoneNumber>)

    • :additional_emails (Array<Pinnacle::AdditionalEmail>)

    • :test_numbers (Array<String>)

  • request_options (Pinnacle::RequestOptions) (defaults to: nil)

Returns:



306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
# File 'lib/rcs/company/client.rb', line 306

def register(company:, company_contact:, point_of_contact:, optionals: nil, request_options: nil)
  Async do
    response = @request_client.conn.post do |req|
      req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
      req.headers["PINNACLE-API-Key"] = request_options.api_key unless request_options&.api_key.nil?
      req.headers = {
    **(req.headers || {}),
    **@request_client.get_headers,
    **(request_options&.additional_headers || {})
      }.compact
      unless request_options.nil? || request_options&.additional_query_parameters.nil?
        req.params = { **(request_options&.additional_query_parameters || {}) }.compact
      end
      req.body = {
        **(request_options&.additional_body_parameters || {}),
        company: company,
        companyContact: company_contact,
        pointOfContact: point_of_contact,
        optionals: optionals
      }.compact
      req.url "#{@request_client.get_url(request_options: request_options)}/company/register"
    end
    Pinnacle::Company::CompanyRegisterResponse.from_json(json_object: response.body)
  end
end

#update(company_id:, company: nil, company_contact: nil, point_of_contact: nil, optionals: nil, request_options: nil) ⇒ Pinnacle::Company::CompanyUpdateResponse

Update a company on the Pinnacle platform

Examples:

api = Pinnacle::Client.new(
  base_url: "https://api.example.com",
  environment: Pinnacle::Environment::DEFAULT,
  api_key: "YOUR_API_KEY"
)
api.company.update(company_id: "companyId")

Parameters:

  • company_id (String)
  • company (Hash) (defaults to: nil)

    Request of type Pinnacle::Company, as a Hash

    • :id (Integer)

    • :created_at (DateTime)

    • :name (String)

    • :address (String)

    • :ein (String)

    • :description (String)

    • :brand_color (String)

    • :logo_url (String)

    • :hero_url (String)

    • :primary_website_url (String)

    • :primary_website_label (String)

    • :primary_phone (String)

    • :primary_phone_label (String)

    • :primary_email (String)

    • :primary_email_label (String)

    • :privacy_policy_url (String)

    • :tos_url (String)

    • :poc_name (String)

    • :poc_title (String)

    • :poc_email (String)

    • :test_numbers (Array<String>)

    • :status (String)

    • :additional_websites (Array<Pinnacle::CompanyAdditionalWebsitesItem>)

    • :additional_emails (Array<Pinnacle::CompanyAdditionalEmailsItem>)

    • :additional_phone_numbers (Array<Pinnacle::CompanyAdditionalPhoneNumbersItem>)

  • company_contact (Hash) (defaults to: nil)

    Request of type Pinnacle::CompanyContact, as a Hash

    • :primary_website_url (String)

    • :primary_website_label (String)

    • :primary_phone (String)

    • :primary_phone_label (String)

    • :primary_email (String)

    • :primary_email_label (String)

    • :privacy_policy_url (String)

    • :tos_url (String)

  • point_of_contact (Hash) (defaults to: nil)

    Request of type Pinnacle::PointOfContact, as a Hash

    • :poc_name (String)

    • :poc_title (String)

    • :poc_email (String)

  • optionals (Hash) (defaults to: nil)

    Request of type Pinnacle::Optionals, as a Hash

    • :additional_websites (Array<Pinnacle::AdditionalWebsite>)

    • :additional_phone_numbers (Array<Pinnacle::AdditionalPhoneNumber>)

    • :additional_emails (Array<Pinnacle::AdditionalEmail>)

    • :test_numbers (Array<String>)

  • request_options (Pinnacle::RequestOptions) (defaults to: nil)

Returns:



388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
# File 'lib/rcs/company/client.rb', line 388

def update(company_id:, company: nil, company_contact: nil, point_of_contact: nil, optionals: nil,
           request_options: nil)
  Async do
    response = @request_client.conn.post do |req|
      req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
      req.headers["PINNACLE-API-Key"] = request_options.api_key unless request_options&.api_key.nil?
      req.headers = {
    **(req.headers || {}),
    **@request_client.get_headers,
    **(request_options&.additional_headers || {})
      }.compact
      unless request_options.nil? || request_options&.additional_query_parameters.nil?
        req.params = { **(request_options&.additional_query_parameters || {}) }.compact
      end
      req.body = {
        **(request_options&.additional_body_parameters || {}),
        companyId: company_id,
        company: company,
        companyContact: company_contact,
        pointOfContact: point_of_contact,
        optionals: optionals
      }.compact
      req.url "#{@request_client.get_url(request_options: request_options)}/company/update"
    end
    Pinnacle::Company::CompanyUpdateResponse.from_json(json_object: response.body)
  end
end