UNPKG

@lucidcms/core

Version:

The core of the Lucid CMS. It's responsible for spinning up the API and serving the CMS.

1 lines 3.88 kB
{"version":3,"file":"execute.mjs","names":[],"sources":["../../../../src/services/document-publish-operations/jobs/execute.ts"],"sourcesContent":["import type { QueueJobPermanentFailureHandlerFn } from \"../../../libs/queue/types.js\";\nimport {\n\tDocumentPublishOperationEventsRepository,\n\tDocumentPublishOperationsRepository,\n} from \"../../../libs/repositories/index.js\";\nimport type { ServiceFn } from \"../../../utils/services/types.js\";\nimport execute from \"../execute.js\";\nimport createEvent from \"../helpers/create-event.js\";\n\nexport const markPublishOperationJobFailed: QueueJobPermanentFailureHandlerFn<\n\tRecord<string, unknown>\n> = async (context, data) => {\n\tconst payloadOperationId = data.payload.operationId;\n\tconst operationId =\n\t\ttypeof payloadOperationId === \"number\"\n\t\t\t? payloadOperationId\n\t\t\t: typeof payloadOperationId === \"string\"\n\t\t\t\t? Number.parseInt(payloadOperationId, 10)\n\t\t\t\t: undefined;\n\tif (operationId === undefined) return;\n\tif (Number.isNaN(operationId)) return;\n\n\tconst Operations = new DocumentPublishOperationsRepository(\n\t\tcontext.db.client,\n\t\tcontext.config.db,\n\t);\n\tconst Events = new DocumentPublishOperationEventsRepository(\n\t\tcontext.db.client,\n\t\tcontext.config.db,\n\t);\n\tconst now = new Date().toISOString();\n\n\tawait Operations.updateSingle({\n\t\twhere: [{ key: \"id\", operator: \"=\", value: operationId }],\n\t\tdata: {\n\t\t\texecution_status: \"failed\",\n\t\t\tfailed_at: now,\n\t\t\texecution_error_message: data.errorMessage,\n\t\t\texecution_error_data: {\n\t\t\t\tsource: \"queue\",\n\t\t\t},\n\t\t\tscheduled_job_id: null,\n\t\t\tupdated_at: now,\n\t\t},\n\t});\n\n\tconst operationRes = await Operations.selectSingle({\n\t\tselect: [\"id\", \"collection_key\", \"document_id\", \"target\"],\n\t\twhere: [{ key: \"id\", operator: \"=\", value: operationId }],\n\t});\n\tif (operationRes.error || !operationRes.data) {\n\t\tawait Events.createSingle({\n\t\t\tdata: {\n\t\t\t\toperation_id: operationId,\n\t\t\t\tevent_type: \"failed\",\n\t\t\t\tuser_id: null,\n\t\t\t\tcomment: data.errorMessage,\n\t\t\t\tmetadata: {\n\t\t\t\t\tsource: \"queue\",\n\t\t\t\t},\n\t\t\t},\n\t\t});\n\t\treturn;\n\t}\n\n\tawait createEvent(context, {\n\t\toperation: operationRes.data,\n\t\tevent: {\n\t\t\ttype: \"failed\",\n\t\t\tuserId: null,\n\t\t\tcomment: data.errorMessage,\n\t\t\tmetadata: {\n\t\t\t\tsource: \"queue\",\n\t\t\t},\n\t\t},\n\t});\n};\n\nconst executePublishOperationJob: ServiceFn<\n\t[\n\t\t{\n\t\t\toperationId: number;\n\t\t\ttenantKey?: string | null;\n\t\t},\n\t],\n\tundefined\n> = async (context, data) => {\n\treturn execute(context, {\n\t\tid: data.operationId,\n\t\ttenantKey: data.tenantKey,\n\t\tmarkFailedOnError: false,\n\t});\n};\n\nexport default executePublishOperationJob;\n"],"mappings":"mOASA,MAAa,EAET,MAAO,EAAS,IAAS,CAC5B,IAAM,EAAqB,EAAK,QAAQ,YAClC,EACL,OAAO,GAAuB,SAC3B,EACA,OAAO,GAAuB,SAC7B,OAAO,SAAS,EAAoB,EAAE,EACtC,IAAA,GAEL,GADI,IAAgB,IAAA,IAChB,OAAO,MAAM,CAAW,EAAG,OAE/B,IAAM,EAAa,IAAI,EACtB,EAAQ,GAAG,OACX,EAAQ,OAAO,EAChB,EACM,EAAS,IAAI,EAClB,EAAQ,GAAG,OACX,EAAQ,OAAO,EAChB,EACM,EAAM,IAAI,KAAK,CAAA,CAAE,YAAY,EAEnC,MAAM,EAAW,aAAa,CAC7B,MAAO,CAAC,CAAE,IAAK,KAAM,SAAU,IAAK,MAAO,CAAY,CAAC,EACxD,KAAM,CACL,iBAAkB,SAClB,UAAW,EACX,wBAAyB,EAAK,aAC9B,qBAAsB,CACrB,OAAQ,OACT,EACA,iBAAkB,KAClB,WAAY,CACb,CACD,CAAC,EAED,IAAM,EAAe,MAAM,EAAW,aAAa,CAClD,OAAQ,CAAC,KAAM,iBAAkB,cAAe,QAAQ,EACxD,MAAO,CAAC,CAAE,IAAK,KAAM,SAAU,IAAK,MAAO,CAAY,CAAC,CACzD,CAAC,EACD,GAAI,EAAa,OAAS,CAAC,EAAa,KAAM,CAC7C,MAAM,EAAO,aAAa,CACzB,KAAM,CACL,aAAc,EACd,WAAY,SACZ,QAAS,KACT,QAAS,EAAK,aACd,SAAU,CACT,OAAQ,OACT,CACD,CACD,CAAC,EACD,MACD,CAEA,MAAM,EAAY,EAAS,CAC1B,UAAW,EAAa,KACxB,MAAO,CACN,KAAM,SACN,OAAQ,KACR,QAAS,EAAK,aACd,SAAU,CACT,OAAQ,OACT,CACD,CACD,CAAC,CACF,EAEM,EAQF,MAAO,EAAS,IACZ,EAAQ,EAAS,CACvB,GAAI,EAAK,YACT,UAAW,EAAK,UAChB,kBAAmB,EACpB,CAAC"}