feat: added address obj

This commit is contained in:
Rushil Umaretiya 2021-04-11 11:40:48 -04:00
parent db69fa2443
commit afc7f05e78
No known key found for this signature in database
GPG Key ID: 4E8FAF9C926AF959
3 changed files with 70 additions and 1 deletions

53
src/api/address.ts Normal file
View File

@ -0,0 +1,53 @@
import { Router } from 'express';
import { AddressModel } from '../models';
import { ObjectID } from 'mongodb';
import requireApiAuth from '../requireApiAuth';
export const router = Router();
router.get('/pool/:poolID', async (req, res) => {
let pool = req.params.poolID;
let addresses = await AddressModel.find({ pool: pool }).exec();
res.json({ status: 'success', data: addresses });
});
router.get('/user/:userID', async (req, res) => {
const userID = req.session.accountID;
let addresses = await AddressModel.find({ user: userID }).exec();
res.json({ status: 'success', data: addresses });
});
router.post('/remove', async (req, res) => {
const userID = req.session.accountID;
const poolID = req.body.pool;
let addresses = await AddressModel.deleteOne({
user: userID,
pool: poolID,
}).exec();
res.json({ status: 'success', data: addresses });
});
router.post('/', async (req, res) => {
const userID = req.session.accountID;
const poolID = req.body.pool;
const location = req.body.location;
const address = new AddressModel();
Object.assign(address, {
user: userID,
pool: poolID,
location: location,
});
address
.save()
.then((address) => {
res.json({ status: 'success', id: address._id });
})
.catch((err) => {
console.error('Error when creating address:', err);
res.json({ status: 'error' });
});
});

View File

@ -4,6 +4,7 @@ import { createSessionFromCodeAndProvider } from '../auth';
import * as browse from './browse';
import * as group from './group';
import * as pool from './pool';
import * as address from './address';
import * as user from './user';
export const router = Router();
@ -12,6 +13,7 @@ router.use('/browse', browse.router);
router.use('/users', user.router);
router.use('/pools', pool.router);
router.use('/groups', group.router);
router.use('/addresses', address.router);
router.post('/create_session', (req, res) => {
const { code, provider } = req.body;

View File

@ -79,4 +79,18 @@ const PoolSchema: Schema = new Schema({
const PoolModel: Model<Pool> = model('Pool', PoolSchema);
export { UserModel, GroupModel, CommentModel, PoolModel };
export interface Address extends Document {
user: string;
pool: string;
location: string;
}
const AddressSchema: Schema = new Schema({
user: { type: String, required: true },
pool: { type: String, required: true },
location: { type: String, required: true },
});
const AddressModel: Model<Pool> = model('Address', AddressSchema);
export { UserModel, GroupModel, CommentModel, PoolModel, AddressModel };