merge_ruby_client 1.1.0 → 2.1.0
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/merge_ruby_client/accounting/accounting_periods/client.rb +2 -2
- data/lib/merge_ruby_client/accounting/accounts/client.rb +18 -10
- data/lib/merge_ruby_client/accounting/attachments/client.rb +2 -2
- data/lib/merge_ruby_client/accounting/audit_trail/client.rb +8 -6
- data/lib/merge_ruby_client/accounting/balance_sheets/client.rb +2 -2
- data/lib/merge_ruby_client/accounting/bank_feed_accounts/client.rb +2 -2
- data/lib/merge_ruby_client/accounting/bank_feed_transactions/client.rb +2 -2
- data/lib/merge_ruby_client/accounting/cash_flow_statements/client.rb +2 -2
- data/lib/merge_ruby_client/accounting/client.rb +14 -0
- data/lib/merge_ruby_client/accounting/company_info/client.rb +2 -2
- data/lib/merge_ruby_client/accounting/contacts/client.rb +187 -10
- data/lib/merge_ruby_client/accounting/credit_notes/client.rb +2 -2
- data/lib/merge_ruby_client/accounting/employees/client.rb +35 -8
- data/lib/merge_ruby_client/accounting/expense_reports/client.rb +765 -0
- data/lib/merge_ruby_client/accounting/expense_reports/types/expense_reports_lines_list_request_expand.rb +73 -0
- data/lib/merge_ruby_client/accounting/expense_reports/types/expense_reports_list_request_expand.rb +25 -0
- data/lib/merge_ruby_client/accounting/expense_reports/types/expense_reports_retrieve_request_expand.rb +25 -0
- data/lib/merge_ruby_client/accounting/expenses/client.rb +18 -10
- data/lib/merge_ruby_client/accounting/general_ledger_transactions/client.rb +2 -2
- data/lib/merge_ruby_client/accounting/income_statements/client.rb +2 -2
- data/lib/merge_ruby_client/accounting/invoices/client.rb +18 -10
- data/lib/merge_ruby_client/accounting/issues/client.rb +2 -2
- data/lib/merge_ruby_client/accounting/items/client.rb +334 -2
- data/lib/merge_ruby_client/accounting/journal_entries/client.rb +18 -10
- data/lib/merge_ruby_client/accounting/linked_accounts/client.rb +2 -2
- data/lib/merge_ruby_client/accounting/payment_methods/client.rb +2 -2
- data/lib/merge_ruby_client/accounting/payment_terms/client.rb +2 -2
- data/lib/merge_ruby_client/accounting/payments/client.rb +18 -10
- data/lib/merge_ruby_client/accounting/projects/client.rb +251 -0
- data/lib/merge_ruby_client/accounting/projects/types/projects_list_request_expand.rb +13 -0
- data/lib/merge_ruby_client/accounting/projects/types/projects_retrieve_request_expand.rb +13 -0
- data/lib/merge_ruby_client/accounting/purchase_orders/client.rb +18 -10
- data/lib/merge_ruby_client/accounting/sync_status/client.rb +2 -2
- data/lib/merge_ruby_client/accounting/tax_rates/client.rb +2 -2
- data/lib/merge_ruby_client/accounting/tracking_categories/client.rb +18 -10
- data/lib/merge_ruby_client/accounting/transactions/client.rb +2 -2
- data/lib/merge_ruby_client/accounting/transactions/types/transactions_list_request_expand.rb +32 -0
- data/lib/merge_ruby_client/accounting/transactions/types/transactions_retrieve_request_expand.rb +32 -0
- data/lib/merge_ruby_client/accounting/types/account_details_and_actions.rb +10 -2
- data/lib/merge_ruby_client/accounting/types/audit_log_event.rb +2 -0
- data/lib/merge_ruby_client/accounting/types/credit_note_line_item.rb +29 -1
- data/lib/merge_ruby_client/accounting/types/credit_note_line_item_contact.rb +56 -0
- data/lib/merge_ruby_client/accounting/types/credit_note_line_item_project.rb +55 -0
- data/lib/merge_ruby_client/accounting/types/credit_note_line_item_request.rb +29 -1
- data/lib/merge_ruby_client/accounting/types/credit_note_line_item_request_contact.rb +56 -0
- data/lib/merge_ruby_client/accounting/types/credit_note_line_item_request_project.rb +55 -0
- data/lib/merge_ruby_client/accounting/types/event_type_enum.rb +2 -0
- data/lib/merge_ruby_client/accounting/types/expense_line.rb +15 -1
- data/lib/merge_ruby_client/accounting/types/expense_line_project.rb +55 -0
- data/lib/merge_ruby_client/accounting/types/expense_line_request.rb +15 -1
- data/lib/merge_ruby_client/accounting/types/expense_line_request_project.rb +55 -0
- data/lib/merge_ruby_client/accounting/types/expense_report.rb +869 -0
- data/lib/merge_ruby_client/accounting/types/expense_report_company.rb +56 -0
- data/lib/merge_ruby_client/accounting/types/expense_report_line.rb +921 -0
- data/lib/merge_ruby_client/accounting/types/expense_report_line_account.rb +55 -0
- data/lib/merge_ruby_client/accounting/types/expense_report_line_company.rb +56 -0
- data/lib/merge_ruby_client/accounting/types/expense_report_line_contact.rb +55 -0
- data/lib/merge_ruby_client/accounting/types/expense_report_line_employee.rb +57 -0
- data/lib/merge_ruby_client/accounting/types/expense_report_line_project.rb +55 -0
- data/lib/merge_ruby_client/accounting/types/expense_report_line_request.rb +899 -0
- data/lib/merge_ruby_client/accounting/types/expense_report_line_request_account.rb +55 -0
- data/lib/merge_ruby_client/accounting/types/expense_report_line_request_company.rb +56 -0
- data/lib/merge_ruby_client/accounting/types/expense_report_line_request_contact.rb +55 -0
- data/lib/merge_ruby_client/accounting/types/expense_report_line_request_employee.rb +57 -0
- data/lib/merge_ruby_client/accounting/types/expense_report_line_request_project.rb +55 -0
- data/lib/merge_ruby_client/accounting/types/expense_report_line_request_tax_rate.rb +55 -0
- data/lib/merge_ruby_client/accounting/types/expense_report_line_tax_rate.rb +55 -0
- data/lib/merge_ruby_client/accounting/types/expense_report_request.rb +819 -0
- data/lib/merge_ruby_client/accounting/types/expense_report_request_accounting_period.rb +56 -0
- data/lib/merge_ruby_client/accounting/types/expense_report_request_company.rb +56 -0
- data/lib/merge_ruby_client/accounting/types/expense_report_request_employee.rb +57 -0
- data/lib/merge_ruby_client/accounting/types/expense_report_response.rb +101 -0
- data/lib/merge_ruby_client/accounting/types/expense_report_status_enum.rb +16 -0
- data/lib/merge_ruby_client/accounting/types/external_target_field_api_response.rb +23 -1
- data/lib/merge_ruby_client/accounting/types/field_mapping_api_instance_response.rb +23 -1
- data/lib/merge_ruby_client/accounting/types/general_ledger_transaction_line.rb +15 -1
- data/lib/merge_ruby_client/accounting/types/general_ledger_transaction_line_project.rb +55 -0
- data/lib/merge_ruby_client/accounting/types/invoice_line_item.rb +29 -1
- data/lib/merge_ruby_client/accounting/types/invoice_line_item_contact.rb +56 -0
- data/lib/merge_ruby_client/accounting/types/invoice_line_item_project.rb +55 -0
- data/lib/merge_ruby_client/accounting/types/invoice_line_item_request.rb +29 -1
- data/lib/merge_ruby_client/accounting/types/invoice_line_item_request_contact.rb +56 -0
- data/lib/merge_ruby_client/accounting/types/invoice_line_item_request_project.rb +55 -0
- data/lib/merge_ruby_client/accounting/types/item.rb +18 -1
- data/lib/merge_ruby_client/accounting/types/item_request_request.rb +202 -0
- data/lib/merge_ruby_client/accounting/types/item_request_request_company.rb +56 -0
- data/lib/merge_ruby_client/accounting/types/item_request_request_purchase_account.rb +56 -0
- data/lib/merge_ruby_client/accounting/types/item_request_request_purchase_tax_rate.rb +56 -0
- data/lib/merge_ruby_client/accounting/types/item_request_request_sales_account.rb +56 -0
- data/lib/merge_ruby_client/accounting/types/item_request_request_sales_tax_rate.rb +56 -0
- data/lib/merge_ruby_client/accounting/types/item_response.rb +101 -0
- data/lib/merge_ruby_client/accounting/types/journal_line.rb +15 -1
- data/lib/merge_ruby_client/accounting/types/journal_line_project.rb +55 -0
- data/lib/merge_ruby_client/accounting/types/journal_line_request.rb +15 -1
- data/lib/merge_ruby_client/accounting/types/journal_line_request_project.rb +55 -0
- data/lib/merge_ruby_client/accounting/types/paginated_expense_report_line_list.rb +80 -0
- data/lib/merge_ruby_client/accounting/types/paginated_expense_report_list.rb +80 -0
- data/lib/merge_ruby_client/accounting/types/paginated_project_list.rb +80 -0
- data/lib/merge_ruby_client/accounting/types/patched_contact_request.rb +188 -0
- data/lib/merge_ruby_client/accounting/types/patched_contact_request_addresses_item.rb +55 -0
- data/lib/merge_ruby_client/accounting/types/patched_item_request_request.rb +172 -0
- data/lib/merge_ruby_client/accounting/types/project.rb +162 -0
- data/lib/merge_ruby_client/accounting/types/project_company.rb +56 -0
- data/lib/merge_ruby_client/accounting/types/project_contact.rb +56 -0
- data/lib/merge_ruby_client/accounting/types/remote_field_api_response.rb +12 -1
- data/lib/merge_ruby_client/accounting/types/remote_field_class.rb +9 -1
- data/lib/merge_ruby_client/accounting/types/type_2_bb_enum.rb +16 -0
- data/lib/merge_ruby_client/accounting/types/vendor_credit_line.rb +29 -1
- data/lib/merge_ruby_client/accounting/types/vendor_credit_line_contact.rb +55 -0
- data/lib/merge_ruby_client/accounting/types/vendor_credit_line_project.rb +55 -0
- data/lib/merge_ruby_client/accounting/types/vendor_credit_line_request.rb +29 -1
- data/lib/merge_ruby_client/accounting/types/vendor_credit_line_request_contact.rb +55 -0
- data/lib/merge_ruby_client/accounting/types/vendor_credit_line_request_project.rb +55 -0
- data/lib/merge_ruby_client/accounting/vendor_credits/client.rb +2 -2
- data/lib/merge_ruby_client/ats/activities/client.rb +2 -2
- data/lib/merge_ruby_client/ats/applications/client.rb +2 -2
- data/lib/merge_ruby_client/ats/attachments/client.rb +2 -2
- data/lib/merge_ruby_client/ats/audit_trail/client.rb +8 -6
- data/lib/merge_ruby_client/ats/candidates/client.rb +2 -2
- data/lib/merge_ruby_client/ats/departments/client.rb +2 -2
- data/lib/merge_ruby_client/ats/eeocs/client.rb +2 -2
- data/lib/merge_ruby_client/ats/interviews/client.rb +2 -2
- data/lib/merge_ruby_client/ats/issues/client.rb +2 -2
- data/lib/merge_ruby_client/ats/job_interview_stages/client.rb +2 -2
- data/lib/merge_ruby_client/ats/job_postings/client.rb +2 -2
- data/lib/merge_ruby_client/ats/jobs/client.rb +4 -4
- data/lib/merge_ruby_client/ats/linked_accounts/client.rb +2 -2
- data/lib/merge_ruby_client/ats/offers/client.rb +2 -2
- data/lib/merge_ruby_client/ats/offices/client.rb +2 -2
- data/lib/merge_ruby_client/ats/reject_reasons/client.rb +2 -2
- data/lib/merge_ruby_client/ats/scorecards/client.rb +2 -2
- data/lib/merge_ruby_client/ats/sync_status/client.rb +2 -2
- data/lib/merge_ruby_client/ats/tags/client.rb +2 -2
- data/lib/merge_ruby_client/ats/types/account_details_and_actions.rb +10 -2
- data/lib/merge_ruby_client/ats/types/audit_log_event.rb +2 -0
- data/lib/merge_ruby_client/ats/types/event_type_enum.rb +2 -0
- data/lib/merge_ruby_client/ats/users/client.rb +2 -2
- data/lib/merge_ruby_client/crm/accounts/client.rb +10 -6
- data/lib/merge_ruby_client/crm/association_types/client.rb +2 -2
- data/lib/merge_ruby_client/crm/associations/client.rb +10 -2
- data/lib/merge_ruby_client/crm/audit_trail/client.rb +8 -6
- data/lib/merge_ruby_client/crm/contacts/client.rb +10 -6
- data/lib/merge_ruby_client/crm/custom_object_classes/client.rb +2 -2
- data/lib/merge_ruby_client/crm/custom_objects/client.rb +14 -6
- data/lib/merge_ruby_client/crm/engagement_types/client.rb +10 -6
- data/lib/merge_ruby_client/crm/engagements/client.rb +10 -6
- data/lib/merge_ruby_client/crm/issues/client.rb +2 -2
- data/lib/merge_ruby_client/crm/leads/client.rb +10 -6
- data/lib/merge_ruby_client/crm/linked_accounts/client.rb +2 -2
- data/lib/merge_ruby_client/crm/notes/client.rb +10 -6
- data/lib/merge_ruby_client/crm/opportunities/client.rb +10 -6
- data/lib/merge_ruby_client/crm/stages/client.rb +10 -6
- data/lib/merge_ruby_client/crm/sync_status/client.rb +22 -8
- data/lib/merge_ruby_client/crm/tasks/client.rb +10 -6
- data/lib/merge_ruby_client/crm/types/audit_log_event.rb +2 -0
- data/lib/merge_ruby_client/crm/types/custom_object_request.rb +26 -3
- data/lib/merge_ruby_client/crm/types/event_type_enum.rb +2 -0
- data/lib/merge_ruby_client/crm/types/remote_field_class.rb +9 -1
- data/lib/merge_ruby_client/crm/users/client.rb +10 -6
- data/lib/merge_ruby_client/filestorage/audit_trail/client.rb +8 -6
- data/lib/merge_ruby_client/filestorage/drives/client.rb +2 -2
- data/lib/merge_ruby_client/filestorage/files/client.rb +70 -16
- data/lib/merge_ruby_client/filestorage/files/types/files_download_request_meta_list_request_order_by.rb +14 -0
- data/lib/merge_ruby_client/filestorage/files/types/files_list_request_order_by.rb +14 -0
- data/lib/merge_ruby_client/filestorage/folders/client.rb +2 -2
- data/lib/merge_ruby_client/filestorage/groups/client.rb +2 -2
- data/lib/merge_ruby_client/filestorage/issues/client.rb +2 -2
- data/lib/merge_ruby_client/filestorage/linked_accounts/client.rb +2 -2
- data/lib/merge_ruby_client/filestorage/sync_status/client.rb +22 -8
- data/lib/merge_ruby_client/filestorage/types/account_details_and_actions.rb +10 -2
- data/lib/merge_ruby_client/filestorage/types/audit_log_event.rb +2 -0
- data/lib/merge_ruby_client/filestorage/types/download_request_meta.rb +2 -9
- data/lib/merge_ruby_client/filestorage/types/event_type_enum.rb +2 -0
- data/lib/merge_ruby_client/filestorage/types/file.rb +13 -1
- data/lib/merge_ruby_client/filestorage/types/file_request.rb +13 -1
- data/lib/merge_ruby_client/filestorage/users/client.rb +2 -2
- data/lib/merge_ruby_client/hris/audit_trail/client.rb +8 -6
- data/lib/merge_ruby_client/hris/bank_info/client.rb +2 -2
- data/lib/merge_ruby_client/hris/benefits/client.rb +2 -2
- data/lib/merge_ruby_client/hris/companies/client.rb +2 -2
- data/lib/merge_ruby_client/hris/dependents/client.rb +8 -4
- data/lib/merge_ruby_client/hris/employee_payroll_runs/client.rb +2 -2
- data/lib/merge_ruby_client/hris/employees/client.rb +8 -4
- data/lib/merge_ruby_client/hris/employer_benefits/client.rb +2 -2
- data/lib/merge_ruby_client/hris/employments/client.rb +2 -2
- data/lib/merge_ruby_client/hris/groups/client.rb +2 -2
- data/lib/merge_ruby_client/hris/issues/client.rb +2 -2
- data/lib/merge_ruby_client/hris/linked_accounts/client.rb +2 -2
- data/lib/merge_ruby_client/hris/locations/client.rb +2 -2
- data/lib/merge_ruby_client/hris/pay_groups/client.rb +2 -2
- data/lib/merge_ruby_client/hris/payroll_runs/client.rb +2 -2
- data/lib/merge_ruby_client/hris/sync_status/client.rb +2 -2
- data/lib/merge_ruby_client/hris/teams/client.rb +2 -2
- data/lib/merge_ruby_client/hris/time_off/client.rb +2 -2
- data/lib/merge_ruby_client/hris/time_off_balances/client.rb +2 -2
- data/lib/merge_ruby_client/hris/timesheet_entries/client.rb +2 -2
- data/lib/merge_ruby_client/hris/types/account_details_and_actions.rb +10 -2
- data/lib/merge_ruby_client/hris/types/audit_log_event.rb +2 -0
- data/lib/merge_ruby_client/hris/types/benefit.rb +9 -9
- data/lib/merge_ruby_client/hris/types/event_type_enum.rb +2 -0
- data/lib/merge_ruby_client/ticketing/accounts/client.rb +2 -2
- data/lib/merge_ruby_client/ticketing/attachments/client.rb +2 -2
- data/lib/merge_ruby_client/ticketing/audit_trail/client.rb +8 -6
- data/lib/merge_ruby_client/ticketing/collections/client.rb +4 -4
- data/lib/merge_ruby_client/ticketing/comments/client.rb +2 -2
- data/lib/merge_ruby_client/ticketing/contacts/client.rb +2 -2
- data/lib/merge_ruby_client/ticketing/issues/client.rb +2 -2
- data/lib/merge_ruby_client/ticketing/linked_accounts/client.rb +2 -2
- data/lib/merge_ruby_client/ticketing/projects/client.rb +4 -4
- data/lib/merge_ruby_client/ticketing/roles/client.rb +2 -2
- data/lib/merge_ruby_client/ticketing/sync_status/client.rb +2 -2
- data/lib/merge_ruby_client/ticketing/tags/client.rb +2 -2
- data/lib/merge_ruby_client/ticketing/teams/client.rb +2 -2
- data/lib/merge_ruby_client/ticketing/tickets/client.rb +40 -20
- data/lib/merge_ruby_client/ticketing/types/account_details_and_actions.rb +10 -2
- data/lib/merge_ruby_client/ticketing/types/audit_log_event.rb +2 -0
- data/lib/merge_ruby_client/ticketing/types/collection.rb +18 -16
- data/lib/merge_ruby_client/ticketing/types/{access_level_enum.rb → collection_access_level_enum.rb} +3 -1
- data/lib/merge_ruby_client/ticketing/types/event_type_enum.rb +2 -0
- data/lib/merge_ruby_client/ticketing/types/patched_ticket_request.rb +28 -9
- data/lib/merge_ruby_client/ticketing/types/remote_field_class.rb +9 -1
- data/lib/merge_ruby_client/ticketing/types/ticket.rb +20 -1
- data/lib/merge_ruby_client/ticketing/types/ticket_access_level_enum.rb +16 -0
- data/lib/merge_ruby_client/ticketing/types/ticket_request.rb +20 -1
- data/lib/merge_ruby_client/ticketing/users/client.rb +2 -2
- data/lib/merge_ruby_client.rb +14 -14
- data/lib/requests.rb +2 -2
- data/lib/types_export.rb +473 -409
- metadata +69 -3
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require "json"
|
|
4
|
+
require_relative "project"
|
|
5
|
+
|
|
6
|
+
module Merge
|
|
7
|
+
module Accounting
|
|
8
|
+
class JournalLineProject
|
|
9
|
+
# Deserialize a JSON object to an instance of JournalLineProject
|
|
10
|
+
#
|
|
11
|
+
# @param json_object [String]
|
|
12
|
+
# @return [Merge::Accounting::JournalLineProject]
|
|
13
|
+
def self.from_json(json_object:)
|
|
14
|
+
struct = JSON.parse(json_object, object_class: OpenStruct)
|
|
15
|
+
begin
|
|
16
|
+
struct.is_a?(String) != false || raise("Passed value for field struct is not the expected type, validation failed.")
|
|
17
|
+
return struct unless struct.nil?
|
|
18
|
+
|
|
19
|
+
return nil
|
|
20
|
+
rescue StandardError
|
|
21
|
+
# noop
|
|
22
|
+
end
|
|
23
|
+
begin
|
|
24
|
+
Merge::Accounting::Project.validate_raw(obj: struct)
|
|
25
|
+
return Merge::Accounting::Project.from_json(json_object: struct) unless struct.nil?
|
|
26
|
+
|
|
27
|
+
return nil
|
|
28
|
+
rescue StandardError
|
|
29
|
+
# noop
|
|
30
|
+
end
|
|
31
|
+
struct
|
|
32
|
+
end
|
|
33
|
+
|
|
34
|
+
# Leveraged for Union-type generation, validate_raw attempts to parse the given
|
|
35
|
+
# hash and check each fields type against the current object's property
|
|
36
|
+
# definitions.
|
|
37
|
+
#
|
|
38
|
+
# @param obj [Object]
|
|
39
|
+
# @return [Void]
|
|
40
|
+
def self.validate_raw(obj:)
|
|
41
|
+
begin
|
|
42
|
+
return obj.is_a?(String) != false || raise("Passed value for field obj is not the expected type, validation failed.")
|
|
43
|
+
rescue StandardError
|
|
44
|
+
# noop
|
|
45
|
+
end
|
|
46
|
+
begin
|
|
47
|
+
return Merge::Accounting::Project.validate_raw(obj: obj)
|
|
48
|
+
rescue StandardError
|
|
49
|
+
# noop
|
|
50
|
+
end
|
|
51
|
+
raise("Passed value matched no type within the union, validation failed.")
|
|
52
|
+
end
|
|
53
|
+
end
|
|
54
|
+
end
|
|
55
|
+
end
|
|
@@ -4,6 +4,7 @@ require_relative "journal_line_request_account"
|
|
|
4
4
|
require_relative "journal_line_request_tracking_category"
|
|
5
5
|
require_relative "journal_line_request_tracking_categories_item"
|
|
6
6
|
require_relative "transaction_currency_enum"
|
|
7
|
+
require_relative "journal_line_request_project"
|
|
7
8
|
require_relative "remote_field_request"
|
|
8
9
|
require "ostruct"
|
|
9
10
|
require "json"
|
|
@@ -339,6 +340,8 @@ module Merge
|
|
|
339
340
|
attr_reader :company
|
|
340
341
|
# @return [String]
|
|
341
342
|
attr_reader :employee
|
|
343
|
+
# @return [Merge::Accounting::JournalLineRequestProject]
|
|
344
|
+
attr_reader :project
|
|
342
345
|
# @return [String]
|
|
343
346
|
attr_reader :contact
|
|
344
347
|
# @return [String] The tax rate that applies to this line item.
|
|
@@ -675,6 +678,7 @@ module Merge
|
|
|
675
678
|
# * `ZWL` - Zimbabwean Dollar (2009)
|
|
676
679
|
# @param company [String] The company the journal entry belongs to.
|
|
677
680
|
# @param employee [String]
|
|
681
|
+
# @param project [Merge::Accounting::JournalLineRequestProject]
|
|
678
682
|
# @param contact [String]
|
|
679
683
|
# @param tax_rate [String] The tax rate that applies to this line item.
|
|
680
684
|
# @param description [String] The line's description.
|
|
@@ -685,7 +689,7 @@ module Merge
|
|
|
685
689
|
# @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition
|
|
686
690
|
# @return [Merge::Accounting::JournalLineRequest]
|
|
687
691
|
def initialize(remote_id: OMIT, account: OMIT, net_amount: OMIT, tracking_category: OMIT,
|
|
688
|
-
tracking_categories: OMIT, currency: OMIT, company: OMIT, employee: OMIT, contact: OMIT, tax_rate: OMIT, description: OMIT, exchange_rate: OMIT, integration_params: OMIT, linked_account_params: OMIT, remote_fields: OMIT, additional_properties: nil)
|
|
692
|
+
tracking_categories: OMIT, currency: OMIT, company: OMIT, employee: OMIT, project: OMIT, contact: OMIT, tax_rate: OMIT, description: OMIT, exchange_rate: OMIT, integration_params: OMIT, linked_account_params: OMIT, remote_fields: OMIT, additional_properties: nil)
|
|
689
693
|
@remote_id = remote_id if remote_id != OMIT
|
|
690
694
|
@account = account if account != OMIT
|
|
691
695
|
@net_amount = net_amount if net_amount != OMIT
|
|
@@ -694,6 +698,7 @@ module Merge
|
|
|
694
698
|
@currency = currency if currency != OMIT
|
|
695
699
|
@company = company if company != OMIT
|
|
696
700
|
@employee = employee if employee != OMIT
|
|
701
|
+
@project = project if project != OMIT
|
|
697
702
|
@contact = contact if contact != OMIT
|
|
698
703
|
@tax_rate = tax_rate if tax_rate != OMIT
|
|
699
704
|
@description = description if description != OMIT
|
|
@@ -711,6 +716,7 @@ module Merge
|
|
|
711
716
|
"currency": currency,
|
|
712
717
|
"company": company,
|
|
713
718
|
"employee": employee,
|
|
719
|
+
"project": project,
|
|
714
720
|
"contact": contact,
|
|
715
721
|
"tax_rate": tax_rate,
|
|
716
722
|
"description": description,
|
|
@@ -751,6 +757,12 @@ module Merge
|
|
|
751
757
|
currency = parsed_json["currency"]
|
|
752
758
|
company = parsed_json["company"]
|
|
753
759
|
employee = parsed_json["employee"]
|
|
760
|
+
if parsed_json["project"].nil?
|
|
761
|
+
project = nil
|
|
762
|
+
else
|
|
763
|
+
project = parsed_json["project"].to_json
|
|
764
|
+
project = Merge::Accounting::JournalLineRequestProject.from_json(json_object: project)
|
|
765
|
+
end
|
|
754
766
|
contact = parsed_json["contact"]
|
|
755
767
|
tax_rate = parsed_json["tax_rate"]
|
|
756
768
|
description = parsed_json["description"]
|
|
@@ -770,6 +782,7 @@ module Merge
|
|
|
770
782
|
currency: currency,
|
|
771
783
|
company: company,
|
|
772
784
|
employee: employee,
|
|
785
|
+
project: project,
|
|
773
786
|
contact: contact,
|
|
774
787
|
tax_rate: tax_rate,
|
|
775
788
|
description: description,
|
|
@@ -803,6 +816,7 @@ module Merge
|
|
|
803
816
|
obj.currency&.is_a?(Merge::Accounting::TransactionCurrencyEnum) != false || raise("Passed value for field obj.currency is not the expected type, validation failed.")
|
|
804
817
|
obj.company&.is_a?(String) != false || raise("Passed value for field obj.company is not the expected type, validation failed.")
|
|
805
818
|
obj.employee&.is_a?(String) != false || raise("Passed value for field obj.employee is not the expected type, validation failed.")
|
|
819
|
+
obj.project.nil? || Merge::Accounting::JournalLineRequestProject.validate_raw(obj: obj.project)
|
|
806
820
|
obj.contact&.is_a?(String) != false || raise("Passed value for field obj.contact is not the expected type, validation failed.")
|
|
807
821
|
obj.tax_rate&.is_a?(String) != false || raise("Passed value for field obj.tax_rate is not the expected type, validation failed.")
|
|
808
822
|
obj.description&.is_a?(String) != false || raise("Passed value for field obj.description is not the expected type, validation failed.")
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require "json"
|
|
4
|
+
require_relative "project"
|
|
5
|
+
|
|
6
|
+
module Merge
|
|
7
|
+
module Accounting
|
|
8
|
+
class JournalLineRequestProject
|
|
9
|
+
# Deserialize a JSON object to an instance of JournalLineRequestProject
|
|
10
|
+
#
|
|
11
|
+
# @param json_object [String]
|
|
12
|
+
# @return [Merge::Accounting::JournalLineRequestProject]
|
|
13
|
+
def self.from_json(json_object:)
|
|
14
|
+
struct = JSON.parse(json_object, object_class: OpenStruct)
|
|
15
|
+
begin
|
|
16
|
+
struct.is_a?(String) != false || raise("Passed value for field struct is not the expected type, validation failed.")
|
|
17
|
+
return struct unless struct.nil?
|
|
18
|
+
|
|
19
|
+
return nil
|
|
20
|
+
rescue StandardError
|
|
21
|
+
# noop
|
|
22
|
+
end
|
|
23
|
+
begin
|
|
24
|
+
Merge::Accounting::Project.validate_raw(obj: struct)
|
|
25
|
+
return Merge::Accounting::Project.from_json(json_object: struct) unless struct.nil?
|
|
26
|
+
|
|
27
|
+
return nil
|
|
28
|
+
rescue StandardError
|
|
29
|
+
# noop
|
|
30
|
+
end
|
|
31
|
+
struct
|
|
32
|
+
end
|
|
33
|
+
|
|
34
|
+
# Leveraged for Union-type generation, validate_raw attempts to parse the given
|
|
35
|
+
# hash and check each fields type against the current object's property
|
|
36
|
+
# definitions.
|
|
37
|
+
#
|
|
38
|
+
# @param obj [Object]
|
|
39
|
+
# @return [Void]
|
|
40
|
+
def self.validate_raw(obj:)
|
|
41
|
+
begin
|
|
42
|
+
return obj.is_a?(String) != false || raise("Passed value for field obj is not the expected type, validation failed.")
|
|
43
|
+
rescue StandardError
|
|
44
|
+
# noop
|
|
45
|
+
end
|
|
46
|
+
begin
|
|
47
|
+
return Merge::Accounting::Project.validate_raw(obj: obj)
|
|
48
|
+
rescue StandardError
|
|
49
|
+
# noop
|
|
50
|
+
end
|
|
51
|
+
raise("Passed value matched no type within the union, validation failed.")
|
|
52
|
+
end
|
|
53
|
+
end
|
|
54
|
+
end
|
|
55
|
+
end
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require_relative "expense_report_line"
|
|
4
|
+
require "ostruct"
|
|
5
|
+
require "json"
|
|
6
|
+
|
|
7
|
+
module Merge
|
|
8
|
+
module Accounting
|
|
9
|
+
class PaginatedExpenseReportLineList
|
|
10
|
+
# @return [String]
|
|
11
|
+
attr_reader :next_
|
|
12
|
+
# @return [String]
|
|
13
|
+
attr_reader :previous
|
|
14
|
+
# @return [Array<Merge::Accounting::ExpenseReportLine>]
|
|
15
|
+
attr_reader :results
|
|
16
|
+
# @return [OpenStruct] Additional properties unmapped to the current class definition
|
|
17
|
+
attr_reader :additional_properties
|
|
18
|
+
# @return [Object]
|
|
19
|
+
attr_reader :_field_set
|
|
20
|
+
protected :_field_set
|
|
21
|
+
|
|
22
|
+
OMIT = Object.new
|
|
23
|
+
|
|
24
|
+
# @param next_ [String]
|
|
25
|
+
# @param previous [String]
|
|
26
|
+
# @param results [Array<Merge::Accounting::ExpenseReportLine>]
|
|
27
|
+
# @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition
|
|
28
|
+
# @return [Merge::Accounting::PaginatedExpenseReportLineList]
|
|
29
|
+
def initialize(next_: OMIT, previous: OMIT, results: OMIT, additional_properties: nil)
|
|
30
|
+
@next_ = next_ if next_ != OMIT
|
|
31
|
+
@previous = previous if previous != OMIT
|
|
32
|
+
@results = results if results != OMIT
|
|
33
|
+
@additional_properties = additional_properties
|
|
34
|
+
@_field_set = { "next": next_, "previous": previous, "results": results }.reject do |_k, v|
|
|
35
|
+
v == OMIT
|
|
36
|
+
end
|
|
37
|
+
end
|
|
38
|
+
|
|
39
|
+
# Deserialize a JSON object to an instance of PaginatedExpenseReportLineList
|
|
40
|
+
#
|
|
41
|
+
# @param json_object [String]
|
|
42
|
+
# @return [Merge::Accounting::PaginatedExpenseReportLineList]
|
|
43
|
+
def self.from_json(json_object:)
|
|
44
|
+
struct = JSON.parse(json_object, object_class: OpenStruct)
|
|
45
|
+
parsed_json = JSON.parse(json_object)
|
|
46
|
+
next_ = parsed_json["next"]
|
|
47
|
+
previous = parsed_json["previous"]
|
|
48
|
+
results = parsed_json["results"]&.map do |item|
|
|
49
|
+
item = item.to_json
|
|
50
|
+
Merge::Accounting::ExpenseReportLine.from_json(json_object: item)
|
|
51
|
+
end
|
|
52
|
+
new(
|
|
53
|
+
next_: next_,
|
|
54
|
+
previous: previous,
|
|
55
|
+
results: results,
|
|
56
|
+
additional_properties: struct
|
|
57
|
+
)
|
|
58
|
+
end
|
|
59
|
+
|
|
60
|
+
# Serialize an instance of PaginatedExpenseReportLineList to a JSON object
|
|
61
|
+
#
|
|
62
|
+
# @return [String]
|
|
63
|
+
def to_json(*_args)
|
|
64
|
+
@_field_set&.to_json
|
|
65
|
+
end
|
|
66
|
+
|
|
67
|
+
# Leveraged for Union-type generation, validate_raw attempts to parse the given
|
|
68
|
+
# hash and check each fields type against the current object's property
|
|
69
|
+
# definitions.
|
|
70
|
+
#
|
|
71
|
+
# @param obj [Object]
|
|
72
|
+
# @return [Void]
|
|
73
|
+
def self.validate_raw(obj:)
|
|
74
|
+
obj.next_&.is_a?(String) != false || raise("Passed value for field obj.next_ is not the expected type, validation failed.")
|
|
75
|
+
obj.previous&.is_a?(String) != false || raise("Passed value for field obj.previous is not the expected type, validation failed.")
|
|
76
|
+
obj.results&.is_a?(Array) != false || raise("Passed value for field obj.results is not the expected type, validation failed.")
|
|
77
|
+
end
|
|
78
|
+
end
|
|
79
|
+
end
|
|
80
|
+
end
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require_relative "expense_report"
|
|
4
|
+
require "ostruct"
|
|
5
|
+
require "json"
|
|
6
|
+
|
|
7
|
+
module Merge
|
|
8
|
+
module Accounting
|
|
9
|
+
class PaginatedExpenseReportList
|
|
10
|
+
# @return [String]
|
|
11
|
+
attr_reader :next_
|
|
12
|
+
# @return [String]
|
|
13
|
+
attr_reader :previous
|
|
14
|
+
# @return [Array<Merge::Accounting::ExpenseReport>]
|
|
15
|
+
attr_reader :results
|
|
16
|
+
# @return [OpenStruct] Additional properties unmapped to the current class definition
|
|
17
|
+
attr_reader :additional_properties
|
|
18
|
+
# @return [Object]
|
|
19
|
+
attr_reader :_field_set
|
|
20
|
+
protected :_field_set
|
|
21
|
+
|
|
22
|
+
OMIT = Object.new
|
|
23
|
+
|
|
24
|
+
# @param next_ [String]
|
|
25
|
+
# @param previous [String]
|
|
26
|
+
# @param results [Array<Merge::Accounting::ExpenseReport>]
|
|
27
|
+
# @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition
|
|
28
|
+
# @return [Merge::Accounting::PaginatedExpenseReportList]
|
|
29
|
+
def initialize(next_: OMIT, previous: OMIT, results: OMIT, additional_properties: nil)
|
|
30
|
+
@next_ = next_ if next_ != OMIT
|
|
31
|
+
@previous = previous if previous != OMIT
|
|
32
|
+
@results = results if results != OMIT
|
|
33
|
+
@additional_properties = additional_properties
|
|
34
|
+
@_field_set = { "next": next_, "previous": previous, "results": results }.reject do |_k, v|
|
|
35
|
+
v == OMIT
|
|
36
|
+
end
|
|
37
|
+
end
|
|
38
|
+
|
|
39
|
+
# Deserialize a JSON object to an instance of PaginatedExpenseReportList
|
|
40
|
+
#
|
|
41
|
+
# @param json_object [String]
|
|
42
|
+
# @return [Merge::Accounting::PaginatedExpenseReportList]
|
|
43
|
+
def self.from_json(json_object:)
|
|
44
|
+
struct = JSON.parse(json_object, object_class: OpenStruct)
|
|
45
|
+
parsed_json = JSON.parse(json_object)
|
|
46
|
+
next_ = parsed_json["next"]
|
|
47
|
+
previous = parsed_json["previous"]
|
|
48
|
+
results = parsed_json["results"]&.map do |item|
|
|
49
|
+
item = item.to_json
|
|
50
|
+
Merge::Accounting::ExpenseReport.from_json(json_object: item)
|
|
51
|
+
end
|
|
52
|
+
new(
|
|
53
|
+
next_: next_,
|
|
54
|
+
previous: previous,
|
|
55
|
+
results: results,
|
|
56
|
+
additional_properties: struct
|
|
57
|
+
)
|
|
58
|
+
end
|
|
59
|
+
|
|
60
|
+
# Serialize an instance of PaginatedExpenseReportList to a JSON object
|
|
61
|
+
#
|
|
62
|
+
# @return [String]
|
|
63
|
+
def to_json(*_args)
|
|
64
|
+
@_field_set&.to_json
|
|
65
|
+
end
|
|
66
|
+
|
|
67
|
+
# Leveraged for Union-type generation, validate_raw attempts to parse the given
|
|
68
|
+
# hash and check each fields type against the current object's property
|
|
69
|
+
# definitions.
|
|
70
|
+
#
|
|
71
|
+
# @param obj [Object]
|
|
72
|
+
# @return [Void]
|
|
73
|
+
def self.validate_raw(obj:)
|
|
74
|
+
obj.next_&.is_a?(String) != false || raise("Passed value for field obj.next_ is not the expected type, validation failed.")
|
|
75
|
+
obj.previous&.is_a?(String) != false || raise("Passed value for field obj.previous is not the expected type, validation failed.")
|
|
76
|
+
obj.results&.is_a?(Array) != false || raise("Passed value for field obj.results is not the expected type, validation failed.")
|
|
77
|
+
end
|
|
78
|
+
end
|
|
79
|
+
end
|
|
80
|
+
end
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require_relative "project"
|
|
4
|
+
require "ostruct"
|
|
5
|
+
require "json"
|
|
6
|
+
|
|
7
|
+
module Merge
|
|
8
|
+
module Accounting
|
|
9
|
+
class PaginatedProjectList
|
|
10
|
+
# @return [String]
|
|
11
|
+
attr_reader :next_
|
|
12
|
+
# @return [String]
|
|
13
|
+
attr_reader :previous
|
|
14
|
+
# @return [Array<Merge::Accounting::Project>]
|
|
15
|
+
attr_reader :results
|
|
16
|
+
# @return [OpenStruct] Additional properties unmapped to the current class definition
|
|
17
|
+
attr_reader :additional_properties
|
|
18
|
+
# @return [Object]
|
|
19
|
+
attr_reader :_field_set
|
|
20
|
+
protected :_field_set
|
|
21
|
+
|
|
22
|
+
OMIT = Object.new
|
|
23
|
+
|
|
24
|
+
# @param next_ [String]
|
|
25
|
+
# @param previous [String]
|
|
26
|
+
# @param results [Array<Merge::Accounting::Project>]
|
|
27
|
+
# @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition
|
|
28
|
+
# @return [Merge::Accounting::PaginatedProjectList]
|
|
29
|
+
def initialize(next_: OMIT, previous: OMIT, results: OMIT, additional_properties: nil)
|
|
30
|
+
@next_ = next_ if next_ != OMIT
|
|
31
|
+
@previous = previous if previous != OMIT
|
|
32
|
+
@results = results if results != OMIT
|
|
33
|
+
@additional_properties = additional_properties
|
|
34
|
+
@_field_set = { "next": next_, "previous": previous, "results": results }.reject do |_k, v|
|
|
35
|
+
v == OMIT
|
|
36
|
+
end
|
|
37
|
+
end
|
|
38
|
+
|
|
39
|
+
# Deserialize a JSON object to an instance of PaginatedProjectList
|
|
40
|
+
#
|
|
41
|
+
# @param json_object [String]
|
|
42
|
+
# @return [Merge::Accounting::PaginatedProjectList]
|
|
43
|
+
def self.from_json(json_object:)
|
|
44
|
+
struct = JSON.parse(json_object, object_class: OpenStruct)
|
|
45
|
+
parsed_json = JSON.parse(json_object)
|
|
46
|
+
next_ = parsed_json["next"]
|
|
47
|
+
previous = parsed_json["previous"]
|
|
48
|
+
results = parsed_json["results"]&.map do |item|
|
|
49
|
+
item = item.to_json
|
|
50
|
+
Merge::Accounting::Project.from_json(json_object: item)
|
|
51
|
+
end
|
|
52
|
+
new(
|
|
53
|
+
next_: next_,
|
|
54
|
+
previous: previous,
|
|
55
|
+
results: results,
|
|
56
|
+
additional_properties: struct
|
|
57
|
+
)
|
|
58
|
+
end
|
|
59
|
+
|
|
60
|
+
# Serialize an instance of PaginatedProjectList to a JSON object
|
|
61
|
+
#
|
|
62
|
+
# @return [String]
|
|
63
|
+
def to_json(*_args)
|
|
64
|
+
@_field_set&.to_json
|
|
65
|
+
end
|
|
66
|
+
|
|
67
|
+
# Leveraged for Union-type generation, validate_raw attempts to parse the given
|
|
68
|
+
# hash and check each fields type against the current object's property
|
|
69
|
+
# definitions.
|
|
70
|
+
#
|
|
71
|
+
# @param obj [Object]
|
|
72
|
+
# @return [Void]
|
|
73
|
+
def self.validate_raw(obj:)
|
|
74
|
+
obj.next_&.is_a?(String) != false || raise("Passed value for field obj.next_ is not the expected type, validation failed.")
|
|
75
|
+
obj.previous&.is_a?(String) != false || raise("Passed value for field obj.previous is not the expected type, validation failed.")
|
|
76
|
+
obj.results&.is_a?(Array) != false || raise("Passed value for field obj.results is not the expected type, validation failed.")
|
|
77
|
+
end
|
|
78
|
+
end
|
|
79
|
+
end
|
|
80
|
+
end
|
|
@@ -0,0 +1,188 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require_relative "status_7_d_1_enum"
|
|
4
|
+
require_relative "patched_contact_request_addresses_item"
|
|
5
|
+
require_relative "accounting_phone_number_request"
|
|
6
|
+
require_relative "remote_field_request"
|
|
7
|
+
require "ostruct"
|
|
8
|
+
require "json"
|
|
9
|
+
|
|
10
|
+
module Merge
|
|
11
|
+
module Accounting
|
|
12
|
+
# # The Contact Object
|
|
13
|
+
# ### Description
|
|
14
|
+
# A `Contact` is an individual or business entity to which products and services
|
|
15
|
+
# are sold to or purchased from. The `Contact` model contains both Customers, in
|
|
16
|
+
# which products and services are sold to, and Vendors (or Suppliers), in which
|
|
17
|
+
# products and services are purchased from.
|
|
18
|
+
# * A `Contact` is a Vendor/Supplier if the `is_supplier` property is true.
|
|
19
|
+
# * A `Contact` is a customer if the `is_customer` property is true.
|
|
20
|
+
# ### Usage Example
|
|
21
|
+
# Fetch from the `LIST Contacts` endpoint and view a company's contacts.
|
|
22
|
+
class PatchedContactRequest
|
|
23
|
+
# @return [String] The contact's name.
|
|
24
|
+
attr_reader :name
|
|
25
|
+
# @return [Boolean] Whether the contact is a supplier.
|
|
26
|
+
attr_reader :is_supplier
|
|
27
|
+
# @return [Boolean] Whether the contact is a customer.
|
|
28
|
+
attr_reader :is_customer
|
|
29
|
+
# @return [String] The contact's email address.
|
|
30
|
+
attr_reader :email_address
|
|
31
|
+
# @return [String] The contact's tax number.
|
|
32
|
+
attr_reader :tax_number
|
|
33
|
+
# @return [Merge::Accounting::Status7D1Enum] The contact's status
|
|
34
|
+
# * `ACTIVE` - ACTIVE
|
|
35
|
+
# * `ARCHIVED` - ARCHIVED
|
|
36
|
+
attr_reader :status
|
|
37
|
+
# @return [String] The currency the contact's transactions are in.
|
|
38
|
+
attr_reader :currency
|
|
39
|
+
# @return [String] The company the contact belongs to.
|
|
40
|
+
attr_reader :company
|
|
41
|
+
# @return [Array<Merge::Accounting::PatchedContactRequestAddressesItem>] `Address` object IDs for the given `Contacts` object.
|
|
42
|
+
attr_reader :addresses
|
|
43
|
+
# @return [Array<Merge::Accounting::AccountingPhoneNumberRequest>] `AccountingPhoneNumber` object for the given `Contacts` object.
|
|
44
|
+
attr_reader :phone_numbers
|
|
45
|
+
# @return [Hash{String => Object}]
|
|
46
|
+
attr_reader :integration_params
|
|
47
|
+
# @return [Hash{String => Object}]
|
|
48
|
+
attr_reader :linked_account_params
|
|
49
|
+
# @return [Array<Merge::Accounting::RemoteFieldRequest>]
|
|
50
|
+
attr_reader :remote_fields
|
|
51
|
+
# @return [OpenStruct] Additional properties unmapped to the current class definition
|
|
52
|
+
attr_reader :additional_properties
|
|
53
|
+
# @return [Object]
|
|
54
|
+
attr_reader :_field_set
|
|
55
|
+
protected :_field_set
|
|
56
|
+
|
|
57
|
+
OMIT = Object.new
|
|
58
|
+
|
|
59
|
+
# @param name [String] The contact's name.
|
|
60
|
+
# @param is_supplier [Boolean] Whether the contact is a supplier.
|
|
61
|
+
# @param is_customer [Boolean] Whether the contact is a customer.
|
|
62
|
+
# @param email_address [String] The contact's email address.
|
|
63
|
+
# @param tax_number [String] The contact's tax number.
|
|
64
|
+
# @param status [Merge::Accounting::Status7D1Enum] The contact's status
|
|
65
|
+
# * `ACTIVE` - ACTIVE
|
|
66
|
+
# * `ARCHIVED` - ARCHIVED
|
|
67
|
+
# @param currency [String] The currency the contact's transactions are in.
|
|
68
|
+
# @param company [String] The company the contact belongs to.
|
|
69
|
+
# @param addresses [Array<Merge::Accounting::PatchedContactRequestAddressesItem>] `Address` object IDs for the given `Contacts` object.
|
|
70
|
+
# @param phone_numbers [Array<Merge::Accounting::AccountingPhoneNumberRequest>] `AccountingPhoneNumber` object for the given `Contacts` object.
|
|
71
|
+
# @param integration_params [Hash{String => Object}]
|
|
72
|
+
# @param linked_account_params [Hash{String => Object}]
|
|
73
|
+
# @param remote_fields [Array<Merge::Accounting::RemoteFieldRequest>]
|
|
74
|
+
# @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition
|
|
75
|
+
# @return [Merge::Accounting::PatchedContactRequest]
|
|
76
|
+
def initialize(name: OMIT, is_supplier: OMIT, is_customer: OMIT, email_address: OMIT, tax_number: OMIT,
|
|
77
|
+
status: OMIT, currency: OMIT, company: OMIT, addresses: OMIT, phone_numbers: OMIT, integration_params: OMIT, linked_account_params: OMIT, remote_fields: OMIT, additional_properties: nil)
|
|
78
|
+
@name = name if name != OMIT
|
|
79
|
+
@is_supplier = is_supplier if is_supplier != OMIT
|
|
80
|
+
@is_customer = is_customer if is_customer != OMIT
|
|
81
|
+
@email_address = email_address if email_address != OMIT
|
|
82
|
+
@tax_number = tax_number if tax_number != OMIT
|
|
83
|
+
@status = status if status != OMIT
|
|
84
|
+
@currency = currency if currency != OMIT
|
|
85
|
+
@company = company if company != OMIT
|
|
86
|
+
@addresses = addresses if addresses != OMIT
|
|
87
|
+
@phone_numbers = phone_numbers if phone_numbers != OMIT
|
|
88
|
+
@integration_params = integration_params if integration_params != OMIT
|
|
89
|
+
@linked_account_params = linked_account_params if linked_account_params != OMIT
|
|
90
|
+
@remote_fields = remote_fields if remote_fields != OMIT
|
|
91
|
+
@additional_properties = additional_properties
|
|
92
|
+
@_field_set = {
|
|
93
|
+
"name": name,
|
|
94
|
+
"is_supplier": is_supplier,
|
|
95
|
+
"is_customer": is_customer,
|
|
96
|
+
"email_address": email_address,
|
|
97
|
+
"tax_number": tax_number,
|
|
98
|
+
"status": status,
|
|
99
|
+
"currency": currency,
|
|
100
|
+
"company": company,
|
|
101
|
+
"addresses": addresses,
|
|
102
|
+
"phone_numbers": phone_numbers,
|
|
103
|
+
"integration_params": integration_params,
|
|
104
|
+
"linked_account_params": linked_account_params,
|
|
105
|
+
"remote_fields": remote_fields
|
|
106
|
+
}.reject do |_k, v|
|
|
107
|
+
v == OMIT
|
|
108
|
+
end
|
|
109
|
+
end
|
|
110
|
+
|
|
111
|
+
# Deserialize a JSON object to an instance of PatchedContactRequest
|
|
112
|
+
#
|
|
113
|
+
# @param json_object [String]
|
|
114
|
+
# @return [Merge::Accounting::PatchedContactRequest]
|
|
115
|
+
def self.from_json(json_object:)
|
|
116
|
+
struct = JSON.parse(json_object, object_class: OpenStruct)
|
|
117
|
+
parsed_json = JSON.parse(json_object)
|
|
118
|
+
name = parsed_json["name"]
|
|
119
|
+
is_supplier = parsed_json["is_supplier"]
|
|
120
|
+
is_customer = parsed_json["is_customer"]
|
|
121
|
+
email_address = parsed_json["email_address"]
|
|
122
|
+
tax_number = parsed_json["tax_number"]
|
|
123
|
+
status = parsed_json["status"]
|
|
124
|
+
currency = parsed_json["currency"]
|
|
125
|
+
company = parsed_json["company"]
|
|
126
|
+
addresses = parsed_json["addresses"]&.map do |item|
|
|
127
|
+
item = item.to_json
|
|
128
|
+
Merge::Accounting::PatchedContactRequestAddressesItem.from_json(json_object: item)
|
|
129
|
+
end
|
|
130
|
+
phone_numbers = parsed_json["phone_numbers"]&.map do |item|
|
|
131
|
+
item = item.to_json
|
|
132
|
+
Merge::Accounting::AccountingPhoneNumberRequest.from_json(json_object: item)
|
|
133
|
+
end
|
|
134
|
+
integration_params = parsed_json["integration_params"]
|
|
135
|
+
linked_account_params = parsed_json["linked_account_params"]
|
|
136
|
+
remote_fields = parsed_json["remote_fields"]&.map do |item|
|
|
137
|
+
item = item.to_json
|
|
138
|
+
Merge::Accounting::RemoteFieldRequest.from_json(json_object: item)
|
|
139
|
+
end
|
|
140
|
+
new(
|
|
141
|
+
name: name,
|
|
142
|
+
is_supplier: is_supplier,
|
|
143
|
+
is_customer: is_customer,
|
|
144
|
+
email_address: email_address,
|
|
145
|
+
tax_number: tax_number,
|
|
146
|
+
status: status,
|
|
147
|
+
currency: currency,
|
|
148
|
+
company: company,
|
|
149
|
+
addresses: addresses,
|
|
150
|
+
phone_numbers: phone_numbers,
|
|
151
|
+
integration_params: integration_params,
|
|
152
|
+
linked_account_params: linked_account_params,
|
|
153
|
+
remote_fields: remote_fields,
|
|
154
|
+
additional_properties: struct
|
|
155
|
+
)
|
|
156
|
+
end
|
|
157
|
+
|
|
158
|
+
# Serialize an instance of PatchedContactRequest to a JSON object
|
|
159
|
+
#
|
|
160
|
+
# @return [String]
|
|
161
|
+
def to_json(*_args)
|
|
162
|
+
@_field_set&.to_json
|
|
163
|
+
end
|
|
164
|
+
|
|
165
|
+
# Leveraged for Union-type generation, validate_raw attempts to parse the given
|
|
166
|
+
# hash and check each fields type against the current object's property
|
|
167
|
+
# definitions.
|
|
168
|
+
#
|
|
169
|
+
# @param obj [Object]
|
|
170
|
+
# @return [Void]
|
|
171
|
+
def self.validate_raw(obj:)
|
|
172
|
+
obj.name&.is_a?(String) != false || raise("Passed value for field obj.name is not the expected type, validation failed.")
|
|
173
|
+
obj.is_supplier&.is_a?(Boolean) != false || raise("Passed value for field obj.is_supplier is not the expected type, validation failed.")
|
|
174
|
+
obj.is_customer&.is_a?(Boolean) != false || raise("Passed value for field obj.is_customer is not the expected type, validation failed.")
|
|
175
|
+
obj.email_address&.is_a?(String) != false || raise("Passed value for field obj.email_address is not the expected type, validation failed.")
|
|
176
|
+
obj.tax_number&.is_a?(String) != false || raise("Passed value for field obj.tax_number is not the expected type, validation failed.")
|
|
177
|
+
obj.status&.is_a?(Merge::Accounting::Status7D1Enum) != false || raise("Passed value for field obj.status is not the expected type, validation failed.")
|
|
178
|
+
obj.currency&.is_a?(String) != false || raise("Passed value for field obj.currency is not the expected type, validation failed.")
|
|
179
|
+
obj.company&.is_a?(String) != false || raise("Passed value for field obj.company is not the expected type, validation failed.")
|
|
180
|
+
obj.addresses&.is_a?(Array) != false || raise("Passed value for field obj.addresses is not the expected type, validation failed.")
|
|
181
|
+
obj.phone_numbers&.is_a?(Array) != false || raise("Passed value for field obj.phone_numbers is not the expected type, validation failed.")
|
|
182
|
+
obj.integration_params&.is_a?(Hash) != false || raise("Passed value for field obj.integration_params is not the expected type, validation failed.")
|
|
183
|
+
obj.linked_account_params&.is_a?(Hash) != false || raise("Passed value for field obj.linked_account_params is not the expected type, validation failed.")
|
|
184
|
+
obj.remote_fields&.is_a?(Array) != false || raise("Passed value for field obj.remote_fields is not the expected type, validation failed.")
|
|
185
|
+
end
|
|
186
|
+
end
|
|
187
|
+
end
|
|
188
|
+
end
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require "json"
|
|
4
|
+
require_relative "address"
|
|
5
|
+
|
|
6
|
+
module Merge
|
|
7
|
+
module Accounting
|
|
8
|
+
class PatchedContactRequestAddressesItem
|
|
9
|
+
# Deserialize a JSON object to an instance of PatchedContactRequestAddressesItem
|
|
10
|
+
#
|
|
11
|
+
# @param json_object [String]
|
|
12
|
+
# @return [Merge::Accounting::PatchedContactRequestAddressesItem]
|
|
13
|
+
def self.from_json(json_object:)
|
|
14
|
+
struct = JSON.parse(json_object, object_class: OpenStruct)
|
|
15
|
+
begin
|
|
16
|
+
struct.is_a?(String) != false || raise("Passed value for field struct is not the expected type, validation failed.")
|
|
17
|
+
return struct unless struct.nil?
|
|
18
|
+
|
|
19
|
+
return nil
|
|
20
|
+
rescue StandardError
|
|
21
|
+
# noop
|
|
22
|
+
end
|
|
23
|
+
begin
|
|
24
|
+
Merge::Accounting::Address.validate_raw(obj: struct)
|
|
25
|
+
return Merge::Accounting::Address.from_json(json_object: struct) unless struct.nil?
|
|
26
|
+
|
|
27
|
+
return nil
|
|
28
|
+
rescue StandardError
|
|
29
|
+
# noop
|
|
30
|
+
end
|
|
31
|
+
struct
|
|
32
|
+
end
|
|
33
|
+
|
|
34
|
+
# Leveraged for Union-type generation, validate_raw attempts to parse the given
|
|
35
|
+
# hash and check each fields type against the current object's property
|
|
36
|
+
# definitions.
|
|
37
|
+
#
|
|
38
|
+
# @param obj [Object]
|
|
39
|
+
# @return [Void]
|
|
40
|
+
def self.validate_raw(obj:)
|
|
41
|
+
begin
|
|
42
|
+
return obj.is_a?(String) != false || raise("Passed value for field obj is not the expected type, validation failed.")
|
|
43
|
+
rescue StandardError
|
|
44
|
+
# noop
|
|
45
|
+
end
|
|
46
|
+
begin
|
|
47
|
+
return Merge::Accounting::Address.validate_raw(obj: obj)
|
|
48
|
+
rescue StandardError
|
|
49
|
+
# noop
|
|
50
|
+
end
|
|
51
|
+
raise("Passed value matched no type within the union, validation failed.")
|
|
52
|
+
end
|
|
53
|
+
end
|
|
54
|
+
end
|
|
55
|
+
end
|