22 lines
589 B
Ruby
22 lines
589 B
Ruby
class FunctionCaller
|
|
def initialize(function_name, payload, aws_lambda_client = AWS_LAMBDA)
|
|
@function_name = function_name
|
|
@payload = payload
|
|
@aws_lambda_client = aws_lambda_client
|
|
end
|
|
|
|
def self.call(*args)
|
|
new(*args).call
|
|
end
|
|
|
|
def call
|
|
response = aws_lambda_client.invoke(function_name: function_name, payload: payload)
|
|
payload_json = response.payload.as_json[0]
|
|
body = payload_json ? JSON.parse(payload_json)["body"] : nil
|
|
body ? JSON.parse(body)["message"] : nil
|
|
end
|
|
|
|
private
|
|
|
|
attr_reader :function_name, :payload, :aws_lambda_client
|
|
end
|