@lucidcms/core
Version:
The core of the Lucid CMS. It's responsible for spinning up the API and serving the CMS.
2 lines • 5.42 kB
JavaScript
import e from"./parents/static-repository.mjs";import t from"zod";import{sql as n}from"kysely";var r=class extends e{constructor(e,t){super(e,t,`lucid_media_share_links`)}tableSchema=t.object({id:t.number(),media_id:t.number(),token:t.string(),password:t.string().nullable(),expires_at:t.union([t.string(),t.date()]).nullable(),name:t.string().nullable(),description:t.string().nullable(),created_at:t.union([t.string(),t.date()]).nullable(),updated_at:t.union([t.string(),t.date()]).nullable(),updated_by:t.number().nullable(),created_by:t.number().nullable(),media_is_deleted:t.union([t.literal(this.dbAdapter.config.defaults.boolean.true),t.literal(this.dbAdapter.config.defaults.boolean.false)]),media_key:t.string().nullable().optional(),media_source_type:t.enum([`original`,`crop`]),media_origin:t.enum([`human`,`ai_generated`,`ai_modified`]).optional(),media_type:t.string().nullable().optional(),media_mime_type:t.string().nullable().optional(),media_file_extension:t.string().nullable().optional(),media_file_size:t.number().nullable().optional(),media_width:t.number().nullable().optional(),media_height:t.number().nullable().optional(),media_focal_x:t.number().nullable().optional(),media_focal_y:t.number().nullable().optional(),media_poster_key:t.string().nullable().optional(),media_poster_type:t.string().nullable().optional()});columnFormats={id:this.dbAdapter.getDataType(`primary`),media_id:this.dbAdapter.getDataType(`integer`),token:this.dbAdapter.getDataType(`text`),password:this.dbAdapter.getDataType(`text`),expires_at:this.dbAdapter.getDataType(`timestamp`),name:this.dbAdapter.getDataType(`text`),description:this.dbAdapter.getDataType(`text`),created_at:this.dbAdapter.getDataType(`timestamp`),updated_at:this.dbAdapter.getDataType(`timestamp`),updated_by:this.dbAdapter.getDataType(`integer`),created_by:this.dbAdapter.getDataType(`integer`)};queryConfig={tableKeys:{filters:{mediaId:`media_id`,updatedBy:`updated_by`,createdBy:`created_by`,token:`token`,name:`name`,expiresAt:`expires_at`,createdAt:`created_at`,updatedAt:`updated_at`},sorts:{name:`name`,expiresAt:`expires_at`,createdAt:`created_at`,updatedAt:`updated_at`}}};async selectSingleWithMediaByToken(e){let t=await this.executeQuery(async()=>this.db.selectFrom(`lucid_media_share_links`).innerJoin(`lucid_media`,`lucid_media.id`,`lucid_media_share_links.media_id`).leftJoin(`lucid_media as active_crop`,e=>e.onRef(`active_crop.parent_media_id`,`=`,`lucid_media.id`).on(`active_crop.relation_type`,`=`,`crop`).on(`active_crop.is_deleted`,`=`,this.dbAdapter.getDefault(`boolean`,`false`))).leftJoin(`lucid_media as poster`,e=>e.onRef(`poster.parent_media_id`,`=`,`lucid_media.id`).on(`poster.relation_type`,`=`,`poster`).on(`poster.is_deleted`,`=`,this.dbAdapter.getDefault(`boolean`,`false`))).leftJoin(`lucid_media as poster_crop`,e=>e.onRef(`poster_crop.parent_media_id`,`=`,`poster.id`).on(`poster_crop.relation_type`,`=`,`crop`).on(`poster_crop.is_deleted`,`=`,this.dbAdapter.getDefault(`boolean`,`false`))).select([`lucid_media_share_links.id`,`lucid_media_share_links.media_id`,`lucid_media_share_links.token`,`lucid_media_share_links.password`,`lucid_media_share_links.expires_at`,`lucid_media_share_links.name`,`lucid_media_share_links.description`,`lucid_media_share_links.created_at`,`lucid_media_share_links.updated_at`,`lucid_media_share_links.updated_by`,`lucid_media_share_links.created_by`,`lucid_media.is_deleted as media_is_deleted`,n`COALESCE(active_crop.key, lucid_media.key)`.as(`media_key`),n`CASE WHEN active_crop.id IS NULL THEN 'original' ELSE 'crop' END`.as(`media_source_type`),`lucid_media.origin as media_origin`,`lucid_media.type as media_type`,n`COALESCE(active_crop.mime_type, lucid_media.mime_type)`.as(`media_mime_type`),n`COALESCE(active_crop.file_extension, lucid_media.file_extension)`.as(`media_file_extension`),n`COALESCE(active_crop.file_size, lucid_media.file_size)`.as(`media_file_size`),n`COALESCE(active_crop.width, lucid_media.width)`.as(`media_width`),n`COALESCE(active_crop.height, lucid_media.height)`.as(`media_height`),n`COALESCE(active_crop.focal_x, lucid_media.focal_x)`.as(`media_focal_x`),n`COALESCE(active_crop.focal_y, lucid_media.focal_y)`.as(`media_focal_y`),n`COALESCE(poster_crop.key, poster.key)`.as(`media_poster_key`),`poster.type as media_poster_type`]).where(`lucid_media_share_links.token`,`=`,e.token).limit(1).executeTakeFirst(),{method:`selectSingleWithMediaByToken`});return t.response.error?t.response:this.validateResponse(t,{enabled:!0,mode:`single`,select:[`id`,`media_id`,`token`,`password`,`expires_at`,`name`,`description`,`created_at`,`updated_at`,`updated_by`,`created_by`,`media_is_deleted`,`media_key`,`media_source_type`,`media_origin`,`media_type`,`media_mime_type`,`media_file_extension`,`media_file_size`,`media_width`,`media_height`,`media_focal_x`,`media_focal_y`,`media_poster_key`,`media_poster_type`]})}async deleteMultipleByMediaTenant(e){let t=await this.executeQuery(()=>this.db.deleteFrom(`lucid_media_share_links`).where(t=>t.exists(t.selectFrom(`lucid_media`).select(`lucid_media.id`).whereRef(`lucid_media.id`,`=`,`lucid_media_share_links.media_id`).where(t=>t.or([t(`lucid_media.tenant_key`,`=`,e.tenantKey),t(`lucid_media.tenant_key`,`is`,null)])))).execute(),{method:`deleteMultipleByMediaTenant`});return t.response.error?t.response:{error:void 0,data:void 0}}};export{r as default};
//# sourceMappingURL=media-share-links.mjs.map