Class: Merge::Accounting::FieldMappingClient

Inherits:
Object
  • Object
show all
Defined in:
lib/merge_ruby_client/accounting/field_mapping/client.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(request_client:) ⇒ Merge::Accounting::FieldMappingClient

Parameters:



18
19
20
# File 'lib/merge_ruby_client/accounting/field_mapping/client.rb', line 18

def initialize(request_client:)
  @request_client = request_client
end

Instance Attribute Details

#request_clientMerge::RequestClient (readonly)



14
15
16
# File 'lib/merge_ruby_client/accounting/field_mapping/client.rb', line 14

def request_client
  @request_client
end

Instance Method Details

#field_mappings_create(target_field_name:, target_field_description:, remote_field_traversal_path:, remote_method:, remote_url_path:, common_model_name:, request_options: nil) ⇒ Merge::Accounting::FieldMappingInstanceResponse

Create new Field Mappings that will be available after the next scheduled sync.

This will cause the next sync for this Linked Account to sync **ALL** data from
start.

Examples:

api = Merge::Client.new(
  base_url: "https://api.example.com",
  environment: Merge::Environment::PRODUCTION,
  api_key: "YOUR_AUTH_TOKEN"
)
api.accounting.field_mapping.field_mappings_create(
  target_field_name: "example_target_field_name",
  target_field_description: "this is a example description of the target field",
  remote_field_traversal_path: ["example_remote_field"],
  remote_method: "GET",
  remote_url_path: "/example-url-path",
  common_model_name: "ExampleCommonModel"
)

Parameters:

  • target_field_name (String)

    The name of the target field you want this remote field to map to.

  • target_field_description (String)

    The description of the target field you want this remote field to map to.

  • remote_field_traversal_path (Array<Object>)

    The field traversal path of the remote field listed when you hit the GET /remote-fields endpoint.

  • remote_method (String)

    The method of the remote endpoint where the remote field is coming from.

  • remote_url_path (String)

    The path of the remote endpoint where the remote field is coming from.

  • common_model_name (String)

    The name of the Common Model that the remote field corresponds to in a given category.

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

Returns:



84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
# File 'lib/merge_ruby_client/accounting/field_mapping/client.rb', line 84

def field_mappings_create(target_field_name:, target_field_description:, remote_field_traversal_path:,
                          remote_method:, remote_url_path:, common_model_name:, request_options: nil)
  response = @request_client.conn.post do |req|
    req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
    req.headers["Authorization"] = request_options.api_key unless request_options&.api_key.nil?
    req.headers["X-Account-Token"] = request_options. unless request_options&..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 || {}),
      target_field_name: target_field_name,
      target_field_description: target_field_description,
      remote_field_traversal_path: remote_field_traversal_path,
      remote_method: remote_method,
      remote_url_path: remote_url_path,
      common_model_name: common_model_name
    }.compact
    req.url "#{@request_client.get_url(request_options: request_options)}/accounting/v1/field-mappings"
  end
  Merge::Accounting::FieldMappingInstanceResponse.from_json(json_object: response.body)
end

#field_mappings_destroy(field_mapping_id:, request_options: nil) ⇒ Merge::Accounting::FieldMappingInstanceResponse

Deletes Field Mappings for a Linked Account. All data related to this Field

Mapping will be deleted and these changes will be reflected after the next
scheduled sync. This will cause the next sync for this Linked Account to sync
**ALL** data from start.

Examples:

api = Merge::Client.new(
  base_url: "https://api.example.com",
  environment: Merge::Environment::PRODUCTION,
  api_key: "YOUR_AUTH_TOKEN"
)
api.accounting.field_mapping.field_mappings_destroy(field_mapping_id: "field_mapping_id")

Parameters:

Returns:



127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
# File 'lib/merge_ruby_client/accounting/field_mapping/client.rb', line 127

def field_mappings_destroy(field_mapping_id:, request_options: nil)
  response = @request_client.conn.delete do |req|
    req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
    req.headers["Authorization"] = request_options.api_key unless request_options&.api_key.nil?
    req.headers["X-Account-Token"] = request_options. unless request_options&..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
    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)}/accounting/v1/field-mappings/#{field_mapping_id}"
  end
  Merge::Accounting::FieldMappingInstanceResponse.from_json(json_object: response.body)
end

#field_mappings_partial_update(field_mapping_id:, remote_field_traversal_path: nil, remote_method: nil, remote_url_path: nil, request_options: nil) ⇒ Merge::Accounting::FieldMappingInstanceResponse

Create or update existing Field Mappings for a Linked Account. Changes will be

reflected after the next scheduled sync. This will cause the next sync for this
Linked Account to sync **ALL** data from start.

Examples:

api = Merge::Client.new(
  base_url: "https://api.example.com",
  environment: Merge::Environment::PRODUCTION,
  api_key: "YOUR_AUTH_TOKEN"
)
api.accounting.field_mapping.field_mappings_partial_update(field_mapping_id: "field_mapping_id")

Parameters:

  • field_mapping_id (String)
  • remote_field_traversal_path (Array<Object>) (defaults to: nil)

    The field traversal path of the remote field listed when you hit the GET /remote-fields endpoint.

  • remote_method (String) (defaults to: nil)

    The method of the remote endpoint where the remote field is coming from.

  • remote_url_path (String) (defaults to: nil)

    The path of the remote endpoint where the remote field is coming from.

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

Returns:



166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
# File 'lib/merge_ruby_client/accounting/field_mapping/client.rb', line 166

def field_mappings_partial_update(field_mapping_id:, remote_field_traversal_path: nil, remote_method: nil,
                                  remote_url_path: nil, request_options: nil)
  response = @request_client.conn.patch do |req|
    req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
    req.headers["Authorization"] = request_options.api_key unless request_options&.api_key.nil?
    req.headers["X-Account-Token"] = request_options. unless request_options&..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 || {}),
      remote_field_traversal_path: remote_field_traversal_path,
      remote_method: remote_method,
      remote_url_path: remote_url_path
    }.compact
    req.url "#{@request_client.get_url(request_options: request_options)}/accounting/v1/field-mappings/#{field_mapping_id}"
  end
  Merge::Accounting::FieldMappingInstanceResponse.from_json(json_object: response.body)
end

#field_mappings_retrieve(request_options: nil) ⇒ Merge::Accounting::FieldMappingApiInstanceResponse

Get all Field Mappings for this Linked Account. Field Mappings are mappings

between third-party Remote Fields and user defined Merge fields. [Learn
more](https://docs.merge.dev/supplemental-data/field-mappings/overview/).

Examples:

api = Merge::Client.new(
  base_url: "https://api.example.com",
  environment: Merge::Environment::PRODUCTION,
  api_key: "YOUR_AUTH_TOKEN"
)
api.accounting.field_mapping.field_mappings_retrieve

Parameters:

Returns:



35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
# File 'lib/merge_ruby_client/accounting/field_mapping/client.rb', line 35

def field_mappings_retrieve(request_options: nil)
  response = @request_client.conn.get do |req|
    req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
    req.headers["Authorization"] = request_options.api_key unless request_options&.api_key.nil?
    req.headers["X-Account-Token"] = request_options. unless request_options&..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
    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)}/accounting/v1/field-mappings"
  end
  Merge::Accounting::FieldMappingApiInstanceResponse.from_json(json_object: response.body)
end

#remote_fields_retrieve(common_models: nil, include_example_values: nil, request_options: nil) ⇒ Merge::Accounting::RemoteFieldApiResponse

Get all remote fields for a Linked Account. Remote fields are third-party fields

that are accessible after initial sync if remote_data is enabled. You can use
remote fields to override existing Merge fields or map a new Merge field. [Learn
more](https://docs.merge.dev/supplemental-data/field-mappings/overview/).

Examples:

api = Merge::Client.new(
  base_url: "https://api.example.com",
  environment: Merge::Environment::PRODUCTION,
  api_key: "YOUR_AUTH_TOKEN"
)
api.accounting.field_mapping.remote_fields_retrieve

Parameters:

  • common_models (String) (defaults to: nil)

    A comma seperated list of Common Model names. If included, will only return Remote Fields for those Common Models.

  • include_example_values (String) (defaults to: nil)

    If true, will include example values, where available, for remote fields in the 3rd party platform. These examples come from active data from your customers.

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

Returns:



209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
# File 'lib/merge_ruby_client/accounting/field_mapping/client.rb', line 209

def remote_fields_retrieve(common_models: nil, include_example_values: nil, request_options: nil)
  response = @request_client.conn.get do |req|
    req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
    req.headers["Authorization"] = request_options.api_key unless request_options&.api_key.nil?
    req.headers["X-Account-Token"] = request_options. unless request_options&..nil?
    req.headers = {
  **(req.headers || {}),
  **@request_client.get_headers,
  **(request_options&.additional_headers || {})
    }.compact
    req.params = {
      **(request_options&.additional_query_parameters || {}),
      "common_models": common_models,
      "include_example_values": include_example_values
    }.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)}/accounting/v1/remote-fields"
  end
  Merge::Accounting::RemoteFieldApiResponse.from_json(json_object: response.body)
end

#target_fields_retrieve(request_options: nil) ⇒ Merge::Accounting::ExternalTargetFieldApiResponse

Get all organization-wide Target Fields, this will not include any Linked

Account specific Target Fields. Organization-wide Target Fields are additional
fields appended to the Merge Common Model for all Linked Accounts in a category.
[Learn
more](https://docs.merge.dev/supplemental-data/field-mappings/target-fields/).

Examples:

api = Merge::Client.new(
  base_url: "https://api.example.com",
  environment: Merge::Environment::PRODUCTION,
  api_key: "YOUR_AUTH_TOKEN"
)
api.accounting.field_mapping.target_fields_retrieve

Parameters:

Returns:



247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
# File 'lib/merge_ruby_client/accounting/field_mapping/client.rb', line 247

def target_fields_retrieve(request_options: nil)
  response = @request_client.conn.get do |req|
    req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
    req.headers["Authorization"] = request_options.api_key unless request_options&.api_key.nil?
    req.headers["X-Account-Token"] = request_options. unless request_options&..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
    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)}/accounting/v1/target-fields"
  end
  Merge::Accounting::ExternalTargetFieldApiResponse.from_json(json_object: response.body)
end