1- import * as Exp from 'express' ;
21import * as Types from '@/types' ;
32import * as Utils from '@/lib/utils' ;
3+ import * as Image from '@/lib/image' ;
4+ import * as Storage from '@/lib/storage' ;
45import * as Schema from './image.schema' ;
56import * as Service from './images.service' ;
67import * as Middlewares from '@/middlewares' ;
7- import { Image } from '@/../prisma/client' ;
8+ import { Router , Request , Response } from 'express' ;
9+ import { Image as ImageT } from '@/../prisma/client' ;
810
9- export const imagesRouter = Exp . Router ( ) ;
11+ export const imagesRouter = Router ( ) ;
1012
11- imagesRouter . get ( '/' , async ( req , res ) => {
12- res . json (
13- await Service . getAllImages ( Utils . getPaginationFiltersFromReqQuery ( req ) )
14- ) ;
15- } ) ;
13+ imagesRouter . get (
14+ '/' ,
15+ Middlewares . authValidator ,
16+ Middlewares . adminValidator ,
17+ async ( req , res ) => {
18+ res . json (
19+ await Service . getAllImages ( Utils . getPaginationFiltersFromReqQuery ( req ) )
20+ ) ;
21+ }
22+ ) ;
1623
1724imagesRouter . get ( '/:id' , async ( req , res ) => {
1825 res . json ( await Service . findImageById ( req . params . id ) ) ;
@@ -22,14 +29,14 @@ imagesRouter.post(
2229 '/' ,
2330 Middlewares . authValidator ,
2431 Middlewares . createFileProcessor ( 'image' ) ,
25- async ( req : Exp . Request , res : Exp . Response ) => {
32+ async ( req : Request , res : Response ) => {
2633 const user = req . user as Types . PublicUser ;
27- const imageFile = await Service . getValidImageFileFormReq ( req ) ;
34+ const imageFile = await Image . getValidImageFileFormReq ( req ) ;
2835 const data = {
2936 ...Schema . imageSchema . parse ( req . body ) ,
30- ...Service . getImageMetadata ( imageFile ) ,
37+ ...Image . getImageMetadata ( imageFile ) ,
3138 } ;
32- const uploadRes = await Service . uploadImage ( imageFile , user ) ;
39+ const uploadRes = await Storage . uploadImage ( imageFile , user ) ;
3340 const savedImage = await Service . saveImage ( uploadRes , data , user ) ;
3441 res . status ( 201 ) . json ( savedImage ) ;
3542 }
@@ -39,24 +46,24 @@ imagesRouter.put(
3946 '/:id' ,
4047 Middlewares . authValidator ,
4148 Middlewares . createOwnerValidator (
42- Service . getImageOwnerAndInjectImageInResLocals
49+ Image . getImageOwnerAndInjectImageInResLocals
4350 ) ,
4451 Middlewares . createFileProcessor ( 'image' ) ,
45- async ( req : Exp . Request , res : Exp . Response < unknown , { image : Image } > ) => {
52+ async ( req : Request , res : Response < unknown , { image : ImageT } > ) => {
4653 const { image } = res . locals ;
4754 const user = req . user as Types . PublicUser ;
4855 if ( req . file ) {
49- const imageFile = await Service . getValidImageFileFormReq ( req ) ;
56+ const imageFile = await Image . getValidImageFileFormReq ( req ) ;
5057 const data = {
5158 ...Schema . imageSchema . parse ( req . body ) ,
52- ...Service . getImageMetadata ( imageFile ) ,
59+ ...Image . getImageMetadata ( imageFile ) ,
5360 } ;
54- const uploadRes = await Service . uploadImage ( imageFile , user , image ) ;
61+ const uploadRes = await Storage . uploadImage ( imageFile , user , image ) ;
5562 const savedImage = await Service . saveImage ( uploadRes , data , user ) ;
5663 res . json ( savedImage ) ;
5764 } else {
5865 const data = Schema . imageSchema . parse ( req . body ) ;
59- const updatedImage = await Service . updateImageData ( data , req . params . id ) ;
66+ const updatedImage = await Service . updateImageData ( data , image , user ) ;
6067 res . json ( updatedImage ) ;
6168 }
6269 }
@@ -66,11 +73,11 @@ imagesRouter.delete(
6673 '/:id' ,
6774 Middlewares . authValidator ,
6875 Middlewares . createAdminOrOwnerValidator (
69- Service . getImageOwnerAndInjectImageInResLocals
76+ Image . getImageOwnerAndInjectImageInResLocals
7077 ) ,
71- async ( req , res : Exp . Response < unknown , { image : Image } > ) => {
78+ async ( req , res : Response < unknown , { image : ImageT } > ) => {
7279 const { image } = res . locals ;
73- await Service . removeUploadedImage ( image ) ;
80+ await Storage . removeImage ( image ) ;
7481 await Service . deleteImageById ( image . id ) ;
7582 res . status ( 204 ) . send ( ) ;
7683 }
0 commit comments