| const prisma = require("../utils/prisma"); |
| const DocumentSyncRun = { |
| statuses: { |
| unknown: "unknown", |
| exited: "exited", |
| failed: "failed", |
| success: "success", |
| }, |
|
|
| save: async function (queueId = null, status = null, result = {}) { |
| try { |
| if (!this.statuses.hasOwnProperty(status)) |
| throw new Error( |
| `DocumentSyncRun status ${status} is not a valid status.` |
| ); |
|
|
| const run = await prisma.document_sync_executions.create({ |
| data: { |
| queueId: Number(queueId), |
| status: String(status), |
| result: JSON.stringify(result), |
| }, |
| }); |
| return run || null; |
| } catch (error) { |
| console.error(error.message); |
| return null; |
| } |
| }, |
|
|
| get: async function (clause = {}) { |
| try { |
| const queue = await prisma.document_sync_executions.findFirst({ |
| where: clause, |
| }); |
| return queue || null; |
| } catch (error) { |
| console.error(error.message); |
| return null; |
| } |
| }, |
|
|
| where: async function ( |
| clause = {}, |
| limit = null, |
| orderBy = null, |
| include = {} |
| ) { |
| try { |
| const results = await prisma.document_sync_executions.findMany({ |
| where: clause, |
| ...(limit !== null ? { take: limit } : {}), |
| ...(orderBy !== null ? { orderBy } : {}), |
| ...(include !== null ? { include } : {}), |
| }); |
| return results; |
| } catch (error) { |
| console.error(error.message); |
| return []; |
| } |
| }, |
|
|
| count: async function (clause = {}, limit = null, orderBy = {}) { |
| try { |
| const count = await prisma.document_sync_executions.count({ |
| where: clause, |
| ...(limit !== null ? { take: limit } : {}), |
| ...(orderBy !== null ? { orderBy } : {}), |
| }); |
| return count; |
| } catch (error) { |
| console.error("FAILED TO COUNT DOCUMENTS.", error.message); |
| return 0; |
| } |
| }, |
|
|
| delete: async function (clause = {}) { |
| try { |
| await prisma.document_sync_executions.deleteMany({ where: clause }); |
| return true; |
| } catch (error) { |
| console.error(error.message); |
| return false; |
| } |
| }, |
| }; |
|
|
| module.exports = { DocumentSyncRun }; |
|
|