Module: WolfCore::LambdaFunctionOperations
Instance Method Summary
collapse
#camelcase_to_spaces, #clean_phone_number, #deep_parse_json, #hash_str_to_json, #remove_blank_spaces
#raise_service_error
Instance Method Details
#get_event_params(event) ⇒ Object
30
31
32
33
34
35
36
37
38
|
# File 'lib/wolf_core/infrastructure/lambda_function_operations.rb', line 30
def get_event_params(event)
event_body = event['body']
params = if event_body.present?
deep_parse_json(event_body)
else
event
end
params&.with_indifferent_access
end
|
#invoke_lambda(function_name:, payload:, invocation_type: nil) ⇒ Object
6
7
8
9
10
|
# File 'lib/wolf_core/infrastructure/lambda_function_operations.rb', line 6
def invoke_lambda(function_name:, payload:, invocation_type: nil)
WolfCore::LambdaFunctionDataSource.invoke(
function_name: function_name, payload: payload, invocation_type: invocation_type
)
end
|
#parse_lambda_response(response) ⇒ Object
22
23
24
25
26
27
28
|
# File 'lib/wolf_core/infrastructure/lambda_function_operations.rb', line 22
def parse_lambda_response(response)
payload = JSON.parse(response.payload.string) rescue response.payload
OpenStruct.new({
status_code: response.status_code,
payload: payload,
})
end
|
#result_to_response(result) ⇒ Object
40
41
42
43
44
45
46
|
# File 'lib/wolf_core/infrastructure/lambda_function_operations.rb', line 40
def result_to_response(result)
if result.success?
{ statusCode: 200, body: result.data.to_h.to_json }
else
{ statusCode: result.error.status || 422, body: result.error.to_h.to_json }
end
end
|
#validate_lambda_response(response:, message:, error_data: nil) ⇒ Object
12
13
14
15
16
17
18
19
20
|
# File 'lib/wolf_core/infrastructure/lambda_function_operations.rb', line 12
def validate_lambda_response(response:, message:, error_data: nil)
unless response.status_code == 200
error_data = {
message: message,
response: parse_lambda_response(response)
}.merge(error_data || {})
raise_service_error(error_data)
end
end
|