UNPKG

@lucidcms/core

Version:

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

2 lines 3.13 kB
import{copy as e}from"../../../libs/i18n/copy.mjs";import t from"../../../libs/repositories/media.mjs";import n from"../../../libs/repositories/media-awaiting-sync.mjs";import r from"../checks/check-media-key-access.mjs";import i from"../checks/check-awaiting-sync.mjs";import a from"../strategies/delete.mjs";import o from"../strategies/sync-media.mjs";import s from"../strategies/update.mjs";import c from"../../processed-images/clear-single.mjs";const l=async(l,u)=>{if(u.parent.type!==`image`||u.parent.relation_type===`crop`)return{error:{type:`basic`,status:400,message:e(`server:core.media.errors.image.only`)},data:void 0};let d=new t(l.db.client,l.config.db),f=new n(l.db.client,l.config.db),[p,m,h]=await Promise.all([r(l,{key:u.crop.key}),i(l,{key:u.crop.key}),d.selectSingle({select:[`id`,`key`,`e_tag`,`file_size`,`type`,`tenant_key`],where:[{key:`parent_media_id`,operator:`=`,value:u.parent.id},{key:`relation_type`,operator:`=`,value:`crop`}]})]);if(p.error)return p;if(m.error)return m;if(h.error)return h;let g;if(h.data){let e=await c(l,{key:h.data.key});if(e.error)return e;let t=await s(l,{previousSize:h.data.file_size,previousKey:h.data.key,previousType:`image`,previousEtag:h.data.e_tag,tenantKey:h.data.tenant_key,updatedKey:u.crop.key,targetKey:h.data.key,allowedType:`image`,fileName:u.crop.fileName});if(t.error)return t;g={...t.data,type:`image`}}else{let e=await o(l,{key:u.crop.key,fileName:u.crop.fileName,allowedType:`image`});if(e.error)return e;g={key:e.data.key,etag:e.data.etag,type:`image`,mimeType:e.data.mimeType,extension:e.data.extension,size:e.data.size}}let _=new Date().toISOString(),v={key:g.key,e_tag:g.etag,origin:u.parent.origin,public:u.parent.public,type:g.type,mime_type:g.mimeType,file_extension:g.extension,file_name:u.crop.fileName,file_size:g.size,width:u.crop.width,height:u.crop.height,focal_x:u.crop.focalPoint?Math.round(u.crop.focalPoint.x*1e4):null,focal_y:u.crop.focalPoint?Math.round(u.crop.focalPoint.y*1e4):null,crop_x:u.crop.state.x,crop_y:u.crop.state.y,crop_width:u.crop.state.width,crop_height:u.crop.state.height,crop_rotation:u.crop.state.rotation,crop_skew_x:u.crop.state.skewX,crop_skew_y:u.crop.state.skewY,blur_hash:u.crop.blurHash??null,average_color:u.crop.averageColor??null,base64:u.crop.base64??null,is_dark:u.crop.isDark??null,is_light:u.crop.isLight??null,is_hidden:!0,is_deleted:!1,is_deleted_at:null,deleted_by:null,folder_id:null,parent_media_id:u.parent.id,relation_type:`crop`,tenant_key:u.parent.tenant_key,updated_at:_,updated_by:u.userId},y=h.data?await d.updateSingle({where:[{key:`id`,operator:`=`,value:h.data.id}],data:v,returning:[`id`,`key`],validation:{enabled:!0}}):await d.createSingle({data:{...v,is_deleted_at:void 0,deleted_by:void 0,created_at:_,created_by:u.userId},returning:[`id`,`key`],validation:{enabled:!0}});if(y.error)return h.data||await a(l,{key:g.key,size:g.size,processedSize:0,tenantKey:u.parent.tenant_key}),y;let b=await f.deleteSingle({where:[{key:`key`,operator:`=`,value:u.crop.key}],returning:[`key`]});return b.error?b:{error:void 0,data:y.data}};export{l as default}; //# sourceMappingURL=upsert-crop.mjs.map