Implement addRequest in UI

- addRequest modal
  - Error box inside addRequest modal
- Generic message modal
- URL validation - same code as server
- Update /api/addRequest to get requester from session
- Fix return of requests.addRequest() for already requested
- Make requests.addRequest() return 201 when created
This commit is contained in:
Dessa Simpson 2020-07-06 21:24:04 -07:00
parent e54db3c4eb
commit bf89c6956d
5 changed files with 92 additions and 22 deletions

View file

@ -38,18 +38,18 @@ app.get("/api/getAllRequests", async (request, response) => {
app.post("/api/addRequest", async (request, response) => {
response.type('text/plain');
if (!request.session || !request.session.user) {
response.status(401);
response.send("Must be logged in");
return;
}
if (!request.body.url) {
response.status(400);
response.send("Missing url");
return
}
if (!request.body.requester) {
response.status(400);
response.send("Missing requester");
return
}
var url = request.body.url as string;
var requester = request.body.requester as string;
var requester = request.session.user.display_name;
requests.addRequest(url,requester).then((val: [number,string]) => {
response.status(val[0]);
response.send(val[1]);

View file

@ -52,11 +52,11 @@ export async function addRequest(url: string, requester: string) {
var query = Object.assign(checkRequestExistsQuery, { values: [url] });
var result = await db.query(query);
if (result.rowCount > 0) {
return `Song already requested by ${result.rows[0].requester}. State: ${result.rows[0].state}`
return [200,`Song already requested by ${result.rows[0].requester}. State: ${result.rows[0].state}`]
}
var query = Object.assign(addRequestQuery, { values: [url,requester] });
return db.query(query)
.then((result: pg.QueryResult) => [200,"Song request added."]);
.then((result: pg.QueryResult) => [201,"Song request added."]);
};
// updateRequestState