166 lines
5.3 KiB
TypeScript
166 lines
5.3 KiB
TypeScript
/**
|
|
* Required External Modules and Interfaces
|
|
*/
|
|
|
|
import express, {Request, Response} from 'express';
|
|
import * as VendorService from './vendors.service';
|
|
import {Vendor} from './vendor.interface';
|
|
import {Vendors} from './vendors.interface';
|
|
import * as UserService from '../users/users.service';
|
|
|
|
|
|
/**
|
|
* Router Definition
|
|
*/
|
|
|
|
export const vendorsRouter = express.Router();
|
|
|
|
|
|
/**
|
|
* Controller Definitions
|
|
*/
|
|
|
|
// GET vendors/
|
|
vendorsRouter.get('/', async (req: Request, res: Response) => {
|
|
try {
|
|
const vendors: Vendors = await VendorService.findAll();
|
|
|
|
res.status(200).send(vendors);
|
|
} catch (e) {
|
|
console.log('Error handling a request: ' + e.message);
|
|
res.status(500).send(JSON.stringify({'message': 'Internal Server Error. Try again later.'}));
|
|
}
|
|
});
|
|
|
|
// GET vendors/managed
|
|
vendorsRouter.get('/managed', async (req: Request, res: Response) => {
|
|
try {
|
|
// Authenticate user
|
|
const user_ip = req.connection.remoteAddress ?? '';
|
|
const session_id = (req.query.session_id ?? '').toString();
|
|
const session_key = (req.query.session_key ?? '').toString();
|
|
const user = await UserService.checkSession(session_id, session_key, user_ip);
|
|
|
|
const vendors = await VendorService.getManagedShops(user.user_id);
|
|
|
|
res.status(200).send(vendors);
|
|
} catch (e) {
|
|
console.log('Error handling a request: ' + e.message);
|
|
res.status(500).send(JSON.stringify({'message': 'Internal Server Error. Try again later.'}));
|
|
}
|
|
});
|
|
|
|
// GET vendors/:id
|
|
vendorsRouter.get('/:id', async (req: Request, res: Response) => {
|
|
const id: number = parseInt(req.params.id, 10);
|
|
|
|
if (!id) {
|
|
res.status(400).send('Missing parameters.');
|
|
return;
|
|
}
|
|
|
|
try {
|
|
const vendor: Vendor = await VendorService.find(id);
|
|
|
|
res.status(200).send(vendor);
|
|
} catch (e) {
|
|
console.log('Error handling a request: ' + e.message);
|
|
res.status(500).send(JSON.stringify({'message': 'Internal Server Error. Try again later.'}));
|
|
}
|
|
});
|
|
|
|
// GET vendors/search/:term
|
|
vendorsRouter.get('/search/:term', async (req: Request, res: Response) => {
|
|
const term: string = req.params.term;
|
|
|
|
if (!term) {
|
|
res.status(400).send('Missing parameters.');
|
|
return;
|
|
}
|
|
|
|
try {
|
|
const vendors: Vendors = await VendorService.findBySearchTerm(term);
|
|
|
|
res.status(200).send(vendors);
|
|
} catch (e) {
|
|
console.log('Error handling a request: ' + e.message);
|
|
res.status(500).send(JSON.stringify({'message': 'Internal Server Error. Try again later.'}));
|
|
}
|
|
});
|
|
|
|
// PUT vendors/manage/deactivatelisting
|
|
vendorsRouter.put('/manage/deactivatelisting', async (req: Request, res: Response) => {
|
|
try {
|
|
// Authenticate user
|
|
const user_ip = req.connection.remoteAddress ?? '';
|
|
const session_id = req.body.session_id;
|
|
const session_key = req.body.session_key;
|
|
const user = await UserService.checkSession(session_id, session_key, user_ip);
|
|
|
|
// Get required parameters
|
|
const vendor_id = req.body.vendor_id;
|
|
const product_id = req.body.product_id;
|
|
|
|
const success = await VendorService.deactivateListing(user.user_id, vendor_id, product_id);
|
|
|
|
if (success) {
|
|
res.status(200).send({});
|
|
} else {
|
|
res.status(500).send({});
|
|
}
|
|
} catch (e) {
|
|
console.log('Error handling a request: ' + e.message);
|
|
res.status(500).send(JSON.stringify({'message': 'Internal Server Error. Try again later.'}));
|
|
}
|
|
});
|
|
|
|
// PUT vendors/manage/shop/deactivate/:id
|
|
vendorsRouter.put('/manage/shop/deactivate/:id', async (req: Request, res: Response) => {
|
|
try {
|
|
// Authenticate user
|
|
const user_ip = req.connection.remoteAddress ?? '';
|
|
const session_id = req.body.session_id;
|
|
const session_key = req.body.session_key;
|
|
const user = await UserService.checkSession(session_id, session_key, user_ip);
|
|
|
|
// Get required parameters
|
|
const vendor_id = parseInt(req.params.id, 10);
|
|
|
|
const success = await VendorService.setShopStatus(user.user_id, vendor_id, false);
|
|
|
|
if (success) {
|
|
res.status(200).send({});
|
|
} else {
|
|
res.status(500).send({});
|
|
}
|
|
} catch (e) {
|
|
console.log('Error handling a request: ' + e.message);
|
|
res.status(500).send(JSON.stringify({'message': 'Internal Server Error. Try again later.'}));
|
|
}
|
|
});
|
|
|
|
// PUT vendors/manage/shop/activate/:id
|
|
vendorsRouter.put('/manage/shop/activate/:id', async (req: Request, res: Response) => {
|
|
try {
|
|
// Authenticate user
|
|
const user_ip = req.connection.remoteAddress ?? '';
|
|
const session_id = req.body.session_id;
|
|
const session_key = req.body.session_key;
|
|
const user = await UserService.checkSession(session_id, session_key, user_ip);
|
|
|
|
// Get required parameters
|
|
const vendor_id = parseInt(req.params.id, 10);
|
|
|
|
const success = await VendorService.setShopStatus(user.user_id, vendor_id, true);
|
|
|
|
if (success) {
|
|
res.status(200).send({});
|
|
} else {
|
|
res.status(500).send({});
|
|
}
|
|
} catch (e) {
|
|
console.log('Error handling a request: ' + e.message);
|
|
res.status(500).send(JSON.stringify({'message': 'Internal Server Error. Try again later.'}));
|
|
}
|
|
});
|