- Initial commit
This commit is contained in:
49
src/controllers/strains.ts
Normal file
49
src/controllers/strains.ts
Normal file
@@ -0,0 +1,49 @@
|
||||
import { Context } from 'koa';
|
||||
import Router from 'koa-router';
|
||||
import { } from 'koa-bodyparser';
|
||||
import { StatusCodes } from 'http-status-codes';
|
||||
|
||||
import Strains from 'grow-db/lib/models/strains';
|
||||
import { Strain } from 'grow-db/lib/schemas/strain';
|
||||
|
||||
const routerOpts: Router.IRouterOptions = {
|
||||
prefix: '/strains',
|
||||
};
|
||||
|
||||
const router: Router = new Router(routerOpts);
|
||||
|
||||
router.get('/', async (ctx: Context) => {
|
||||
const data = await Strains.find({}).exec();
|
||||
ctx.body = { data };
|
||||
});
|
||||
|
||||
router.get('/:strain_id', async (ctx) => {
|
||||
const data = await Strains.findById(ctx.params.strain_id).populate('person').exec();
|
||||
if (!data) {
|
||||
ctx.throw(StatusCodes.NOT_FOUND);
|
||||
}
|
||||
ctx.body = { data };
|
||||
});
|
||||
|
||||
router.delete('/:strain_id', async (ctx: Context) => {
|
||||
const data = await Strains.findByIdAndDelete(ctx.params.strain_id).exec();
|
||||
if (!data) {
|
||||
ctx.throw(StatusCodes.NOT_FOUND);
|
||||
}
|
||||
ctx.body = { success: true, data };
|
||||
});
|
||||
|
||||
|
||||
router.post('/', async (ctx: Context) => {
|
||||
const data = await Strains.create(ctx.request.body);
|
||||
data.save();
|
||||
ctx.body = { success: true, data };
|
||||
});
|
||||
|
||||
router.patch('/:strain_id', async (ctx) => {
|
||||
const data = await Strains.findByIdAndUpdate(ctx.params.strain_id, <Strain>ctx.request.body, { lean: true, returnDocument: 'after' });
|
||||
if (!data) {
|
||||
ctx.throw(StatusCodes.NOT_FOUND);
|
||||
}
|
||||
ctx.body = { success: true, data };
|
||||
});
|
||||
Reference in New Issue
Block a user