Improve self host support (#28)
* Add docker setup for self hosting * Add ses settings tables
This commit is contained in:
@@ -1,3 +1,4 @@
|
||||
import { db } from "~/server/db";
|
||||
import { AppSettingsService } from "~/server/service/app-settings-service";
|
||||
import { parseSesHook } from "~/server/service/ses-hook-parser";
|
||||
import { SnsNotificationMessage } from "~/types/aws-types";
|
||||
@@ -13,6 +14,10 @@ export async function POST(req: Request) {
|
||||
|
||||
console.log(data, data.Message);
|
||||
|
||||
if (isFromUnsend(data)) {
|
||||
return Response.json({ data: "success" });
|
||||
}
|
||||
|
||||
const isEventValid = await checkEventValidity(data);
|
||||
|
||||
console.log("isEventValid: ", isEventValid);
|
||||
@@ -47,9 +52,38 @@ async function handleSubscription(message: any) {
|
||||
method: "GET",
|
||||
});
|
||||
|
||||
const topicArn = message.TopicArn as string;
|
||||
const setting = await db.sesSetting.findFirst({
|
||||
where: {
|
||||
topicArn,
|
||||
},
|
||||
});
|
||||
|
||||
if (!setting) {
|
||||
return Response.json({ data: "Setting not found" });
|
||||
}
|
||||
|
||||
await db.sesSetting.update({
|
||||
where: {
|
||||
id: setting?.id,
|
||||
},
|
||||
data: {
|
||||
callbackSuccess: true,
|
||||
},
|
||||
});
|
||||
|
||||
return Response.json({ data: "Success" });
|
||||
}
|
||||
|
||||
// A simple check to ensure that the event is from the correct topic
|
||||
function isFromUnsend({ fromUnsend }: { fromUnsend: boolean }) {
|
||||
if (fromUnsend) {
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
// A simple check to ensure that the event is from the correct topic
|
||||
async function checkEventValidity(message: SnsNotificationMessage) {
|
||||
const { TopicArn } = message;
|
||||
|
Reference in New Issue
Block a user