This commit is contained in:
powermaker450 2024-09-20 12:38:39 -04:00
parent 65382936cf
commit 550d862e09
4 changed files with 48 additions and 32 deletions

View file

@ -13,17 +13,25 @@ export class MessagesResponder extends ApiRoute {
this.server.get(this.routeName, (req: ReviewRequest, res: Response) => {
// This is a mouthful. :sigh:
// If the request parameter "max" is present and it isn't a number
if (req.query.max && !+req.query.max || +req.query.max < 1) {
if ((req.query.max && !+req.query.max) || +req.query.max < 1) {
res.writeHead(400, typeJson);
res.write(Responder.requestError("max parameter must be a positive non-zero number or undefined"));
res.write(
Responder.requestError(
"max parameter must be a positive non-zero number or undefined",
),
);
res.end();
return;
}
// Same check as the above one, but for skip
if (req.query.skip && !+req.query.skip || +req.query.skip < 1) {
if ((req.query.skip && !+req.query.skip) || +req.query.skip < 1) {
res.writeHead(400, typeJson);
res.write(Responder.requestError("skip parameter must be a number or undefined"));
res.write(
Responder.requestError(
"skip parameter must be a number or undefined",
),
);
res.end();
return;
}
@ -38,7 +46,9 @@ export class MessagesResponder extends ApiRoute {
this.logger.log(`${Logger.emp(receiver)} <~ "${req.path}"`);
});
this.server.get(`${this.routeName}/:id`, (req: IdRequest, res: Response) => {
this.server.get(
`${this.routeName}/:id`,
(req: IdRequest, res: Response) => {
// "req.params.id" is the review ID that was receieved
// "result" is the review that is identified by that ID, if any
@ -65,8 +75,11 @@ export class MessagesResponder extends ApiRoute {
}
// If an error was returned to the client, mark their user agent red in the logs
this.logger.log(`${err ? Logger.err(receiver) : Logger.emp(receiver)} <~ "${req.path}"`);
});
this.logger.log(
`${err ? Logger.err(receiver) : Logger.emp(receiver)} <~ "${req.path}"`,
);
},
);
this.complete();
}

View file

@ -11,7 +11,10 @@ const rating = number()
)
.required();
export const typeJson = { "Access-Control-Allow-Origin": "*", "Content-Type": "application/json" };
export const typeJson = {
"Access-Control-Allow-Origin": "*",
"Content-Type": "application/json",
};
export const userReviewSchema = object({
username: string().min(2).max(30).required(),
@ -40,4 +43,4 @@ export interface ReviewRequest extends Request {
max: string;
skip: string;
};
};
}

View file

@ -33,6 +33,6 @@ export default class ApiRoute {
res.writeHead(400, typeJson);
res.write(Responder.success("ok"));
res.end();
})
});
}
}

View file

@ -47,8 +47,8 @@ export class Responder {
return JSON.stringify({
error: {
type: "notFoundError",
message: errorMessage
}
message: errorMessage,
},
});
}
}