add isComplete column to response model for better sanity checking
This commit is contained in:
@ -0,0 +1,19 @@
|
|||||||
|
-- RedefineTables
|
||||||
|
PRAGMA defer_foreign_keys=ON;
|
||||||
|
PRAGMA foreign_keys=OFF;
|
||||||
|
CREATE TABLE "new_Response" (
|
||||||
|
"id" INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,
|
||||||
|
"pleromaNotificationId" TEXT NOT NULL DEFAULT 'null',
|
||||||
|
"to" TEXT NOT NULL DEFAULT 'null',
|
||||||
|
"request" TEXT NOT NULL DEFAULT 'null',
|
||||||
|
"response" TEXT NOT NULL DEFAULT 'null',
|
||||||
|
"createdAt" DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||||
|
"processedAt" DATETIME,
|
||||||
|
"isProcessing" BOOLEAN NOT NULL DEFAULT true,
|
||||||
|
"isComplete" BOOLEAN NOT NULL DEFAULT true
|
||||||
|
);
|
||||||
|
INSERT INTO "new_Response" ("createdAt", "id", "isProcessing", "pleromaNotificationId", "processedAt", "request", "response", "to") SELECT "createdAt", "id", "isProcessing", "pleromaNotificationId", "processedAt", "request", "response", "to" FROM "Response";
|
||||||
|
DROP TABLE "Response";
|
||||||
|
ALTER TABLE "new_Response" RENAME TO "Response";
|
||||||
|
PRAGMA foreign_keys=ON;
|
||||||
|
PRAGMA defer_foreign_keys=OFF;
|
@ -20,6 +20,7 @@ model Response {
|
|||||||
createdAt DateTime @default(now())
|
createdAt DateTime @default(now())
|
||||||
processedAt DateTime?
|
processedAt DateTime?
|
||||||
isProcessing Boolean @default(true)
|
isProcessing Boolean @default(true)
|
||||||
|
isComplete Boolean @default(true)
|
||||||
}
|
}
|
||||||
|
|
||||||
model User {
|
model User {
|
||||||
|
@ -14,6 +14,7 @@ const storePromptData = async (
|
|||||||
request: trimInputData(notification.status.content),
|
request: trimInputData(notification.status.content),
|
||||||
to: notification.account.fqn,
|
to: notification.account.fqn,
|
||||||
isProcessing: false,
|
isProcessing: false,
|
||||||
|
isComplete: true,
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
} catch (error: any) {
|
} catch (error: any) {
|
||||||
|
@ -17,6 +17,8 @@ const recordPendingResponse = async (notification: Notification) => {
|
|||||||
await prisma.response.create({
|
await prisma.response.create({
|
||||||
data: {
|
data: {
|
||||||
pleromaNotificationId: notification.id,
|
pleromaNotificationId: notification.id,
|
||||||
|
isProcessing: true,
|
||||||
|
isComplete: false,
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
} catch (error: any) {
|
} catch (error: any) {
|
||||||
@ -49,9 +51,9 @@ const alreadyRespondedTo = async (
|
|||||||
): Promise<boolean> => {
|
): Promise<boolean> => {
|
||||||
try {
|
try {
|
||||||
const duplicate = await prisma.response.findFirst({
|
const duplicate = await prisma.response.findFirst({
|
||||||
where: { pleromaNotificationId: notification.id, isProcessing: true },
|
where: { pleromaNotificationId: notification.id },
|
||||||
});
|
});
|
||||||
if (duplicate) {
|
if (duplicate?.isProcessing || duplicate?.isComplete) {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
|
Reference in New Issue
Block a user