@@ -111,7 +111,7 @@ tenthingsListsRoute.post("/random", async (_: Request, res: Response) => {
111111 }
112112} ) ;
113113
114- tenthingsListsRoute . get ( "/:id" , async ( req : Request , res : Response ) => {
114+ tenthingsListsRoute . get ( "/:id" , async ( req : Request < { id : string } > , res : Response ) => {
115115 const authorized = ! ! res . locals . isAuthorized ;
116116 if ( req . params . id === "names" ) {
117117 if ( ! authorized ) return res . sendStatus ( 401 ) ;
@@ -128,7 +128,7 @@ tenthingsListsRoute.get("/:id", async (req: Request, res: Response) => {
128128 }
129129} ) ;
130130
131- tenthingsListsRoute . post ( "/:id/blurbs/:type" , async ( req : Request , res : Response ) => {
131+ tenthingsListsRoute . post ( "/:id/blurbs/:type" , async ( req : Request < { id : string ; type : string } > , res : Response ) => {
132132 if ( ! res . locals . isAuthorized ) res . sendStatus ( 401 ) ;
133133 else {
134134 let list = await List . findOne ( { _id : req . params . id } ) ;
@@ -191,7 +191,7 @@ tenthingsListsRoute.post("/:id/blurbs/:type", async (req: Request, res: Response
191191 }
192192} ) ;
193193
194- tenthingsListsRoute . get ( "/:id/report/:user" , async ( req : Request , res : Response ) => {
194+ tenthingsListsRoute . get ( "/:id/report/:user" , async ( req : Request < { id : string ; user : string } > , res : Response ) => {
195195 if ( ! res . locals . isAuthorized ) res . sendStatus ( 401 ) ;
196196 else {
197197 const list = await List . findOne ( { _id : req . params . id } ) ;
@@ -204,7 +204,7 @@ tenthingsListsRoute.get("/:id/report/:user", async (req: Request, res: Response)
204204 }
205205} ) ;
206206
207- tenthingsListsRoute . put ( "/:id" , async ( req : Request , res : Response ) => {
207+ tenthingsListsRoute . put ( "/:id" , async ( req : Request < { id : string } > , res : Response ) => {
208208 if ( ! res . locals . isAuthorized ) res . sendStatus ( 401 ) ;
209209 else {
210210 const yesterday = moment ( ) . subtract ( 1 , "days" ) ;
@@ -308,7 +308,7 @@ tenthingsListsRoute.post("/merge", async (req: Request, res: Response) => {
308308 }
309309} ) ;
310310
311- tenthingsListsRoute . delete ( "/:id" , async ( req : Request , res : Response ) => {
311+ tenthingsListsRoute . delete ( "/:id" , async ( req : Request < { id : string } > , res : Response ) => {
312312 if ( ! res . locals . isAuthorized ) res . sendStatus ( 401 ) ;
313313 else {
314314 const list = await List . findOne ( { _id : req . params . id } ) ;
@@ -336,7 +336,7 @@ tenthingsListsRoute.delete("/:id", async (req: Request, res: Response) => {
336336 }
337337} ) ;
338338
339- tenthingsListsRoute . post ( "/:id/values" , async ( req : Request , res : Response ) => {
339+ tenthingsListsRoute . post ( "/:id/values" , async ( req : Request < { id : string } > , res : Response ) => {
340340 if ( ! res . locals . isAuthorized ) res . sendStatus ( 401 ) ;
341341 else {
342342 const list = await List . findOne ( { _id : req . params . id } ) ;
@@ -359,47 +359,55 @@ tenthingsListsRoute.post("/:id/values", async (req: Request, res: Response) => {
359359 }
360360} ) ;
361361
362- tenthingsListsRoute . put ( "/:id/values/:valueId" , async ( req : Request , res : Response ) => {
363- if ( ! res . locals . isAuthorized ) res . sendStatus ( 401 ) ;
364- else {
365- const list = await List . findOne ( { _id : req . params . id } ) ;
366- if ( ! list ) res . sendStatus ( 404 ) ;
362+ tenthingsListsRoute . put (
363+ "/:id/values/:valueId" ,
364+ async ( req : Request < { id : string ; valueId : string } > , res : Response ) => {
365+ if ( ! res . locals . isAuthorized ) res . sendStatus ( 401 ) ;
367366 else {
368- const value = list . values . find ( ( { _id } ) => _id ! . toString ( ) === req . params . valueId ) ;
369- if ( ! value ) res . sendStatus ( 404 ) ;
370- else if ( value . creator !== res . locals . user ?. _id && ! res . locals . isAdmin ) res . sendStatus ( 401 ) ;
367+ const list = await List . findOne ( { _id : req . params . id } ) ;
368+ if ( ! list ) res . sendStatus ( 404 ) ;
371369 else {
372- if ( moment ( list . modifyDate ) . diff ( list . date , "days" ) > 1 ) {
373- bot . notifyAdmins ( `<u>Value changed in "${ list . name } "</u>\n<b>${ value . value } </b> -> <b>${ req . body . value } </b>` ) ;
370+ const value = list . values . find ( ( { _id } ) => _id ! . toString ( ) === req . params . valueId ) ;
371+ if ( ! value ) res . sendStatus ( 404 ) ;
372+ else if ( value . creator !== res . locals . user ?. _id && ! res . locals . isAdmin ) res . sendStatus ( 401 ) ;
373+ else {
374+ if ( moment ( list . modifyDate ) . diff ( list . date , "days" ) > 1 ) {
375+ bot . notifyAdmins (
376+ `<u>Value changed in "${ list . name } "</u>\n<b>${ value . value } </b> -> <b>${ req . body . value } </b>` ,
377+ ) ;
378+ }
379+ Object . assign ( value , req . body ) ;
380+ value . modifyDate = new Date ( ) ;
381+ list . modifyDate = new Date ( ) ;
382+ await list . save ( ) ;
383+ const updatedList = await List . findOne ( { _id : req . params . id } ) . lean ( { virtuals : true } ) ;
384+ if ( ! updatedList ) res . sendStatus ( 500 ) ;
385+ else res . json ( updatedList . values . find ( ( { _id } ) => _id ! . toString ( ) === req . params . valueId ) ) ;
374386 }
375- Object . assign ( value , req . body ) ;
376- value . modifyDate = new Date ( ) ;
377- list . modifyDate = new Date ( ) ;
378- await list . save ( ) ;
379- const updatedList = await List . findOne ( { _id : req . params . id } ) . lean ( { virtuals : true } ) ;
380- if ( ! updatedList ) res . sendStatus ( 500 ) ;
381- else res . json ( updatedList . values . find ( ( { _id } ) => _id ! . toString ( ) === req . params . valueId ) ) ;
382387 }
383388 }
384- }
385- } ) ;
389+ } ,
390+ ) ;
386391
387- tenthingsListsRoute . delete ( "/:id/values/:valueId" , async ( req : Request , res : Response ) => {
388- if ( ! res . locals . isAuthorized ) res . sendStatus ( 401 ) ;
389- else {
390- const list = await List . findOne ( { _id : req . params . id } ) ;
391- if ( ! list ) res . sendStatus ( 404 ) ;
392+ tenthingsListsRoute . delete (
393+ "/:id/values/:valueId" ,
394+ async ( req : Request < { id : string ; valueId : string } > , res : Response ) => {
395+ if ( ! res . locals . isAuthorized ) res . sendStatus ( 401 ) ;
392396 else {
393- const value = list . values . find ( ( { _id } ) => _id ! . toString ( ) === req . params . valueId ) ;
394- if ( ! value ) res . sendStatus ( 404 ) ;
395- else if ( value . creator !== res . locals . user ?. _id && ! res . locals . isAdmin ) res . sendStatus ( 401 ) ;
397+ const list = await List . findOne ( { _id : req . params . id } ) ;
398+ if ( ! list ) res . sendStatus ( 404 ) ;
396399 else {
397- await List . findByIdAndUpdate ( req . params . id , { $pull : { values : { _id : req . params . valueId } } } ) . exec ( ) ;
398- res . sendStatus ( 200 ) ;
400+ const value = list . values . find ( ( { _id } ) => _id ! . toString ( ) === req . params . valueId ) ;
401+ if ( ! value ) res . sendStatus ( 404 ) ;
402+ else if ( value . creator !== res . locals . user ?. _id && ! res . locals . isAdmin ) res . sendStatus ( 401 ) ;
403+ else {
404+ await List . findByIdAndUpdate ( req . params . id , { $pull : { values : { _id : req . params . valueId } } } ) . exec ( ) ;
405+ res . sendStatus ( 200 ) ;
406+ }
399407 }
400408 }
401- }
402- } ) ;
409+ } ,
410+ ) ;
403411
404412const parseQuery = ( query : { [ key : string ] : string } ) => {
405413 return Object . keys ( query ) . reduce ( ( params , key ) => {
0 commit comments