- Initial commit

This commit is contained in:
2023-04-18 19:35:21 -04:00
parent 0dc91d9205
commit 4d85d11b95
21 changed files with 8428 additions and 0 deletions

View 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 };
});