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.61 kB
{"version":3,"file":"abort-upload-session.mjs","names":[],"sources":["../../../src/services/media/abort-upload-session.ts"],"sourcesContent":["import {\n\tMediaAwaitingSyncRepository,\n\tMediaUploadSessionsRepository,\n} from \"../../libs/repositories/index.js\";\nimport { resolveMediaKeyTenant } from \"../../utils/media/index.js\";\nimport type { ServiceFn } from \"../../utils/services/types.js\";\nimport checkMediaKeyAccess from \"./checks/check-media-key-access.js\";\n\nconst abortUploadSession: ServiceFn<\n\t[\n\t\t{\n\t\t\tsessionId: string;\n\t\t},\n\t],\n\tundefined\n> = async (context, data) => {\n\tconst MediaUploadSessions = new MediaUploadSessionsRepository(\n\t\tcontext.db.client,\n\t\tcontext.config.db,\n\t);\n\tconst MediaAwaitingSync = new MediaAwaitingSyncRepository(\n\t\tcontext.db.client,\n\t\tcontext.config.db,\n\t);\n\n\tconst sessionRes = await MediaUploadSessions.selectSingle({\n\t\tselect: [\"session_id\", \"key\", \"adapter_upload_id\", \"status\"],\n\t\twhere: [{ key: \"session_id\", operator: \"=\", value: data.sessionId }],\n\t\tvalidation: {\n\t\t\tenabled: true,\n\t\t\tdefaultError: {\n\t\t\t\tstatus: 404,\n\t\t\t},\n\t\t},\n\t});\n\tif (sessionRes.error) return sessionRes;\n\n\tconst keyAccessRes = await checkMediaKeyAccess(context, {\n\t\tkey: sessionRes.data.key,\n\t});\n\tif (keyAccessRes.error) return keyAccessRes;\n\n\tconst tenant = resolveMediaKeyTenant(context.config, sessionRes.data.key);\n\n\tif (\n\t\tcontext.media &&\n\t\tsessionRes.data.adapter_upload_id &&\n\t\tcontext.media.abortUploadSession\n\t) {\n\t\tconst abortRes = await context.media.abortUploadSession(context, {\n\t\t\tkey: sessionRes.data.key,\n\t\t\tuploadId: sessionRes.data.adapter_upload_id,\n\t\t\ttenant,\n\t\t});\n\t\tif (abortRes.error) return abortRes;\n\t}\n\n\tawait Promise.all([\n\t\tMediaAwaitingSync.deleteSingle({\n\t\t\twhere: [{ key: \"key\", operator: \"=\", value: sessionRes.data.key }],\n\t\t}),\n\t\tcontext.media\n\t\t\t? context.media.delete(context, {\n\t\t\t\t\tkey: sessionRes.data.key,\n\t\t\t\t\ttenant,\n\t\t\t\t})\n\t\t\t: null,\n\t]);\n\n\tconst deleteSessionRes = await MediaUploadSessions.deleteSingle({\n\t\twhere: [{ key: \"session_id\", operator: \"=\", value: data.sessionId }],\n\t\treturning: [\"session_id\"],\n\t\tvalidation: {\n\t\t\tenabled: true,\n\t\t},\n\t});\n\tif (deleteSessionRes.error) return deleteSessionRes;\n\n\treturn {\n\t\terror: undefined,\n\t\tdata: undefined,\n\t};\n};\n\nexport default abortUploadSession;\n"],"mappings":"kQAQA,MAAM,EAOF,MAAO,EAAS,IAAS,CAC5B,IAAM,EAAsB,IAAI,EAC/B,EAAQ,GAAG,OACX,EAAQ,OAAO,EAChB,EACM,EAAoB,IAAI,EAC7B,EAAQ,GAAG,OACX,EAAQ,OAAO,EAChB,EAEM,EAAa,MAAM,EAAoB,aAAa,CACzD,OAAQ,CAAC,aAAc,MAAO,oBAAqB,QAAQ,EAC3D,MAAO,CAAC,CAAE,IAAK,aAAc,SAAU,IAAK,MAAO,EAAK,SAAU,CAAC,EACnE,WAAY,CACX,QAAS,GACT,aAAc,CACb,OAAQ,GACT,CACD,CACD,CAAC,EACD,GAAI,EAAW,MAAO,OAAO,EAE7B,IAAM,EAAe,MAAM,EAAoB,EAAS,CACvD,IAAK,EAAW,KAAK,GACtB,CAAC,EACD,GAAI,EAAa,MAAO,OAAO,EAE/B,IAAM,EAAS,EAAsB,EAAQ,OAAQ,EAAW,KAAK,GAAG,EAExE,GACC,EAAQ,OACR,EAAW,KAAK,mBAChB,EAAQ,MAAM,mBACb,CACD,IAAM,EAAW,MAAM,EAAQ,MAAM,mBAAmB,EAAS,CAChE,IAAK,EAAW,KAAK,IACrB,SAAU,EAAW,KAAK,kBAC1B,QACD,CAAC,EACD,GAAI,EAAS,MAAO,OAAO,CAC5B,CAEA,MAAM,QAAQ,IAAI,CACjB,EAAkB,aAAa,CAC9B,MAAO,CAAC,CAAE,IAAK,MAAO,SAAU,IAAK,MAAO,EAAW,KAAK,GAAI,CAAC,CAClE,CAAC,EACD,EAAQ,MACL,EAAQ,MAAM,OAAO,EAAS,CAC9B,IAAK,EAAW,KAAK,IACrB,QACD,CAAC,EACA,IACJ,CAAC,EAED,IAAM,EAAmB,MAAM,EAAoB,aAAa,CAC/D,MAAO,CAAC,CAAE,IAAK,aAAc,SAAU,IAAK,MAAO,EAAK,SAAU,CAAC,EACnE,UAAW,CAAC,YAAY,EACxB,WAAY,CACX,QAAS,EACV,CACD,CAAC,EAGD,OAFI,EAAiB,MAAc,EAE5B,CACN,MAAO,IAAA,GACP,KAAM,IAAA,EACP,CACD"}