11import { Request , Response } from 'express'
2- import { Dish } from '../models/dish'
2+ import { Condition , Dish } from '../models/dish'
33import { Transaction } from '../models/transaction'
44import {
55 getDish ,
@@ -12,6 +12,7 @@ import {
1212 getUserDishesSimple ,
1313 validateReturnDishRequestBody ,
1414 getDishById ,
15+ validateUpdateConditonRequestBody ,
1516} from '../services/dish'
1617import { CustomRequest } from '../middlewares/auth'
1718import Logger from '../utils/logger'
@@ -198,8 +199,7 @@ export const borrowDish = async (req: Request, res: Response) => {
198199 } ,
199200 userId : userClaims . uid ,
200201 returned : {
201- broken : false ,
202- lost : false ,
202+ condition : Condition . alright
203203 } ,
204204 timestamp : new Date ( ) . toISOString ( ) ,
205205 }
@@ -240,13 +240,13 @@ export const returnDish = async (req: Request, res: Response) => {
240240 if ( validation . error ) {
241241 Logger . error ( {
242242 module : 'dish.controller' ,
243- message : 'No values for broken or lost provided' ,
243+ message : 'No values for condition provided' ,
244244 statusCode : 400 ,
245245 } )
246246
247- return res . status ( 400 ) . json ( { error : 'bad_request' , message : 'no values for broken or lost provided' } )
247+ return res . status ( 400 ) . json ( { error : 'bad_request' , message : 'no values for condition provided' } )
248248 }
249- let { broken , lost } = req . body . returned
249+ let { condition } = req . body . returned
250250
251251 let userClaims = ( req as CustomRequest ) . firebase
252252 try {
@@ -294,15 +294,14 @@ export const returnDish = async (req: Request, res: Response) => {
294294 return res . status ( 400 ) . json ( { error : 'operation_not_allowed' , message : 'Transaction not found' } )
295295 }
296296
297- await updateBorrowedStatus ( associatedDish , userClaims , false )
297+ await updateBorrowedStatus ( associatedDish , userClaims , false , condition )
298298
299299 await db
300300 . collection ( nodeConfig . get ( 'collections.transactions' ) )
301301 . doc ( ongoingTransaction . id )
302302 . update ( {
303303 returned : {
304- broken,
305- lost,
304+ condition,
306305 timestamp : new Date ( ) . toISOString ( ) ,
307306 } ,
308307 } )
@@ -353,8 +352,7 @@ export const returnDish = async (req: Request, res: Response) => {
353352 . doc ( ongoingTransaction . id )
354353 . update ( {
355354 returned : {
356- broken,
357- lost,
355+ condition,
358356 timestamp : new Date ( ) . toISOString ( ) ,
359357 } ,
360358 } )
@@ -389,6 +387,18 @@ export const updateDishCondition = async (req: Request, res: Response) => {
389387 return res . status ( 400 ) . json ( { error : 'bad_request' , message : 'dish_id not provided' } )
390388 }
391389
390+ let validation = validateUpdateConditonRequestBody ( req . body )
391+ if ( validation . error ) {
392+ Logger . error ( {
393+ module : 'dish.controller' ,
394+ error : validation . error ,
395+ message : 'No values for condition provided' ,
396+ statusCode : 400 ,
397+ } )
398+
399+ return res . status ( 400 ) . json ( { error : 'bad_request' , message : 'validation for condition failed' } )
400+ }
401+
392402 let condition = req . body . condition
393403 if ( ! condition ) {
394404 Logger . error ( {
0 commit comments