Skip to content

Commit

Permalink
lambda: removed duplicated code
Browse files Browse the repository at this point in the history
  • Loading branch information
jfbaeta committed Dec 3, 2024
1 parent 086e2d2 commit edadae2
Showing 1 changed file with 34 additions and 70 deletions.
104 changes: 34 additions & 70 deletions backend/lambdas/MessageProcessorFunction/index.mjs
Original file line number Diff line number Diff line change
Expand Up @@ -175,31 +175,17 @@ const invokeModelWithRetry = async (
}
};

const broadcastMessage = async (message) => {
const mutation = `
mutation BroadcastMessage($message: MessageInput!) {
broadcastMessage(message: $message) {
messageId
userId
userName
userMessage
timestamp
modelId
}
}
`;

const variables = {
message: {
messageId: message.messageId,
userId: message.userId,
userName: message.userName,
userMessage: message.userMessage,
timestamp: message.timestamp,
modelId: message.modelId,
},
};

const createMessageInput = (message) => ({
messageId: message.messageId,
userId: message.userId,
userName: message.userName,
userMessage: message.userMessage,
timestamp: message.timestamp,
bedrockResponse: message.bedrockResponse,
modelId: message.modelId,
});

const executeGraphQLOperation = async (operationType, message, mutation) => {
try {
const result = await makeHttpRequest(
GRAPHQL_API_ENDPOINT,
Expand All @@ -211,25 +197,42 @@ const broadcastMessage = async (message) => {
},
{
query: mutation,
variables: { message },
variables: { message: createMessageInput(message) },
}
);

if (result.errors) {
console.error(
"[ERROR] GraphQL errors:",
`[ERROR] GraphQL errors in ${operationType}:`,
JSON.stringify(result.errors, null, 2)
);
throw new Error("[ERROR] Failed to broadcast message");
throw new Error(`[ERROR] Failed to ${operationType}`);
}

return result.data.broadcastMessage;
return result.data[operationType];
} catch (error) {
console.error("[ERROR] Error broadcasting message:", error);
console.error(`[ERROR] Error in ${operationType}:`, error);
throw error;
}
};

const broadcastMessage = async (message) => {
const mutation = `
mutation BroadcastMessage($message: MessageInput!) {
broadcastMessage(message: $message) {
messageId
userId
userName
userMessage
timestamp
modelId
}
}
`;

return executeGraphQLOperation("broadcastMessage", message, mutation);
};

const sendNotification = async (message) => {
const notificationMessage = `${message.userMessage}`;

Expand All @@ -242,46 +245,7 @@ const sendNotification = async (message) => {
}
`;

const variables = {
message: {
messageId: message.messageId,
userId: message.userId,
userName: message.userName,
userMessage: notificationMessage,
timestamp: message.timestamp,
bedrockResponse: message.bedrockResponse,
modelId: message.modelId,
},
};

try {
const result = await makeHttpRequest(
GRAPHQL_API_ENDPOINT,
{
method: "POST",
headers: {
"x-api-key": APPSYNC_API_KEY,
},
},
{
query: mutation,
variables: { message },
}
);

if (result.errors) {
console.error(
"[ERROR] GraphQL errors:",
JSON.stringify(result.errors, null, 2)
);
throw new Error("[ERROR] Failed to send notification");
}

return result.data.sendNotification;
} catch (error) {
console.error("[ERROR] Error sending notification:", error);
throw error;
}
return executeGraphQLOperation("sendNotification", message, mutation);
};

const handleBroadcastMessage = async (message) => {
Expand Down

0 comments on commit edadae2

Please sign in to comment.