diff options
| author | Elizabeth Alexander Hunt <me@liz.coffee> | 2026-07-02 11:55:17 -0700 |
|---|---|---|
| committer | Elizabeth Alexander Hunt <me@liz.coffee> | 2026-07-02 11:55:17 -0700 |
| commit | 6bf4b90c90f15f4ab60833bddf5b5756d1a6b1f6 (patch) | |
| tree | ed97e39ec77c5231ffd2c394493e68d00ddac5a4 /Homework/cs5260/widgetrequesthandler/processors/SQSWidgetRequestProcessor.ts | |
| download | misc-undergrad-6bf4b90c90f15f4ab60833bddf5b5756d1a6b1f6.tar.gz misc-undergrad-6bf4b90c90f15f4ab60833bddf5b5756d1a6b1f6.zip | |
Diffstat (limited to 'Homework/cs5260/widgetrequesthandler/processors/SQSWidgetRequestProcessor.ts')
| -rw-r--r-- | Homework/cs5260/widgetrequesthandler/processors/SQSWidgetRequestProcessor.ts | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/Homework/cs5260/widgetrequesthandler/processors/SQSWidgetRequestProcessor.ts b/Homework/cs5260/widgetrequesthandler/processors/SQSWidgetRequestProcessor.ts new file mode 100644 index 0000000..cf4f4c5 --- /dev/null +++ b/Homework/cs5260/widgetrequesthandler/processors/SQSWidgetRequestProcessor.ts @@ -0,0 +1,31 @@ +import { TracingLogger } from "@/shared/log"; +import { WidgetRequestT } from "@/shared/schema"; +import { SQSClient, SendMessageCommand } from "@aws-sdk/client-sqs"; +import { ProcessorResponse, WidgetRequestProcessor } from "."; + +export class SQSWidgetRequestProcessor implements WidgetRequestProcessor { + private sqsClient: SQSClient; + private queueUrl: string; + private logger: TracingLogger; + + constructor(sqsClient: SQSClient, queueUrl: string, logger: TracingLogger) { + this.sqsClient = sqsClient; + this.queueUrl = queueUrl; + this.logger = logger; + } + + public async handle( + widgetRequest: WidgetRequestT, + ): Promise<ProcessorResponse> { + const MessageBody = JSON.stringify(widgetRequest); + this.logger.info(`Handling WidgetRequest=(${MessageBody})`); + + const sendMessage = new SendMessageCommand({ + QueueUrl: this.queueUrl, + MessageBody, + }); + await this.sqsClient.send(sendMessage); + + return { success: true, message: "added to queue" }; + } +} |
