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
1 merge request!15Add Friend service
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