Skip to content
Snippets Groups Projects
Commit 52f95eec authored by Matt Kirby's avatar Matt Kirby
Browse files

Added request routs

parent 184aaba0
No related branches found
No related tags found
Loading
import express, { Request, Response } from 'express'
import { FriendManager } from '../Friends/FriendManager';
import { CustomJWTRequest } from '../Middleware/Auth';
import { RequestManager } from '../Requests/RequestManager'
export const RequestRouter = express.Router();
const friendManager = new FriendManager();
const requestManager = new RequestManager(friendManager);
/**
* GET '/'
* Returns a string
*/
RequestRouter.get('/', async (req:CustomJWTRequest, res:Response): Promise<void> => {
const {token} = req;
return requestManager.GetRequests(token as string).then((result) => {
res.status(200).json({requests: result})
}).catch((error: Error) => {
res.status(401).json({error: error.message})
});
});
/**
* POST '/'
* Creates a friend request
*/
RequestRouter.post('/', async (req:CustomJWTRequest, res:Response): Promise<Response> => {
const {requester_id, receiver_id} = req.body;
const {token} = req
if(requester_id !== token){
return res.status(401).json({error: "unathorised"})
}
return requestManager.NewRequest(requester_id, receiver_id).then((result) => {
return res.sendStatus(200)
}).catch((error:Error) => {
return res.status(400).json({error: error.message})
});
});
/**
* PUT '/accept'
*/
RequestRouter.put('/accept', async (req:CustomJWTRequest, res:Response): Promise<Response> => {
const {request_id} = req.body;
const {token} = req;
await requestManager.GetSingleRequest(request_id).then(result => {
if(result.TargetUser !== token){
return res.status(400).json({error: "unauthorised"})
}
})
return requestManager.AcceptRequest(request_id).then((result) => {
return res.sendStatus(200)
}).catch((error: Error) => {
return res.status(400).json({error: error.message})
})
});
/**
* PUT '/reject'
*/
RequestRouter.put('/reject', async (req:CustomJWTRequest, res:Response): Promise<Response> => {
const {request_id} = req.body;
const {token} = req;
await requestManager.GetSingleRequest(request_id).then(result => {
if(result.TargetUser !== token){
return res.status(400).json({error: "unauthorised"})
}
})
return requestManager.RejectRequest(request_id).then((result) => {
return res.sendStatus(200)
}).catch((error: Error) => {
return res.status(400).json({error: error.message})
})
});
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment