diff --git a/src/api.ts b/src/api.ts index 301cd1a..b58799b 100644 --- a/src/api.ts +++ b/src/api.ts @@ -4,6 +4,8 @@ import { getPoolByID, getPoolsWithUser, getUserByID, + groups, + users, } from './data'; export const router = Router(); @@ -23,6 +25,24 @@ router.get('/user', (req, res) => { } }); +router.post('/user', (req, res) => { + if (req.body.userID in users) { + res.json({ status: 'error', error: 'already_exists' }); + } else { + users[req.body.userID] = { + id: req.body.userID, + first_name: req.body.first_name, + last_name: req.body.last_name, + }; + res.json({ status: 'success' }); + } +}); + +router.delete('/user', (req, res) => { + delete users[req.body.userID]; + res.json({ status: 'success' }); +}); + router.get('/pool', (req, res) => { if (typeof req.query.poolID != 'string') { return; @@ -38,6 +58,27 @@ router.get('/pool', (req, res) => { } }); +router.get('/group/:groupID', (req, res) => { + if (!(req.params.groupID in groups)) { + res.send('invalid group id'); + return; + } + res.json(groups[req.params.groupID]); +}); + +router.post('/group', (req, res) => { + groups[req.body.title] = { + id: 'temp id 0', + member_ids: [], + }; +}); + +router.patch('/group', (req, res) => {}); + +router.delete('/group', (req, res) => { + delete groups[req.body.groupID]; +}); + router.get('/my_pools', (req, res) => { let userID = 'myfatemi04'; let poolIDs = getPoolsWithUser(userID);