Module: WolfCore::FkmOperations
Instance Method Summary
collapse
-
#create_foreign_key(tenant:, source:, source_id:, destination:, destination_id:) ⇒ Object
-
#find_or_create_foreign_key(tenant:, source:, source_id:, destination:, destination_id:) ⇒ Object
-
#get_foreign_key_destination_id(tenant:, source:, source_id:, destination:) ⇒ Object
-
#get_foreign_keys(tenant:, source:, source_id:) ⇒ Object
-
#get_foreign_keys_by_destination(tenant:, destination:, destination_id:) ⇒ Object
#log_object
#raise_service_error
#async_http_get, #async_http_post, #async_http_put, #http_get, #http_post, #http_put, #parse_http_response, #safe_http_get, #safe_http_post, #safe_http_put, #validate_http_response
Methods included from AsyncUtils
#run_async
Instance Method Details
#create_foreign_key(tenant:, source:, source_id:, destination:, destination_id:) ⇒ Object
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
|
# File 'lib/wolf_core/infrastructure/fkm_operations.rb', line 33
def create_foreign_key(tenant:, source:, source_id:, destination:, destination_id:)
raise_service_error('tenant is required to create a foreign key') if tenant.blank?
raise_service_error('source is required to create a foreign key') if source.blank?
raise_service_error('source_id is required to create a foreign key') if source_id.blank?
raise_service_error('destination is required to create a foreign key') if destination.blank?
raise_service_error('destination_id is required to create a foreign key') if destination_id.blank?
response = http_post(
url: "#{ENV['FKM_URL']}/Prod/create",
body: {
tenant: tenant,
source: source,
source_id: source_id,
destination: destination,
destination_id: destination_id
}
)
response = parse_http_response(response)
log_object response, title: 'create_foreign_key response is'
validate_http_response(response: response, message: 'Error creating foreign key')
parse_http_response(response).body
end
|
#find_or_create_foreign_key(tenant:, source:, source_id:, destination:, destination_id:) ⇒ Object
55
56
57
58
59
60
61
62
63
64
65
66
67
|
# File 'lib/wolf_core/infrastructure/fkm_operations.rb', line 55
def find_or_create_foreign_key(tenant:, source:, source_id:, destination:, destination_id:)
found_destination_id = get_foreign_key_destination_id(
tenant: tenant, source: source, source_id: source_id,
destination: destination
)
log_object "find_or_create_foreign_key found_destination_id is #{found_destination_id}"
return Result.success(data: { operation: :find }) if found_destination_id.present?
create_foreign_key(
tenant: tenant, source: source, source_id: source_id,
destination: destination, destination_id: destination_id
)
Result.success(data: { operation: :create })
end
|
#get_foreign_key_destination_id(tenant:, source:, source_id:, destination:) ⇒ Object
7
8
9
10
11
|
# File 'lib/wolf_core/infrastructure/fkm_operations.rb', line 7
def get_foreign_key_destination_id(tenant:, source:, source_id:, destination:)
foreign_keys = get_foreign_keys(tenant: tenant, source: source, source_id: source_id)
foreign_key = foreign_keys.find { |fk| fk['destination'] == destination }
foreign_key&.dig('destination_id')
end
|
#get_foreign_keys(tenant:, source:, source_id:) ⇒ Object
13
14
15
16
17
18
19
20
21
|
# File 'lib/wolf_core/infrastructure/fkm_operations.rb', line 13
def get_foreign_keys(tenant:, source:, source_id:)
response = http_get(
url: "#{ENV['FKM_URL']}/Prod/lookup?tenant=#{tenant}&source=#{source}&source_id=#{source_id}"
)
response = parse_http_response(response)
log_object response, title: 'get_foreign_keys response is'
validate_http_response(response: response, message: 'Error getting foreign keys')
response.body
end
|
#get_foreign_keys_by_destination(tenant:, destination:, destination_id:) ⇒ Object
23
24
25
26
27
28
29
30
31
|
# File 'lib/wolf_core/infrastructure/fkm_operations.rb', line 23
def get_foreign_keys_by_destination(tenant:, destination:, destination_id:)
response = http_get(
url: "#{ENV['FKM_URL']}/Prod/lookup?tenant=#{tenant}&destination=#{destination}&destination_id=#{destination_id}"
)
response = parse_http_response(response)
log_object response, title: 'get_foreign_keys_by_destination response is'
validate_http_response(response: response, message: 'Error getting foreign keys by destination id')
response.body
end
|