feat(backend): enhance error handling and optimize routes

This commit is contained in:
DCsunset 2020-07-14 01:54:56 -07:00
parent 0b2efb515b
commit 2dcfca8107
4 changed files with 20 additions and 11 deletions

View file

@ -1519,9 +1519,9 @@
}
},
"taskwarrior-lib": {
"version": "0.2.0",
"resolved": "https://registry.npmjs.org/taskwarrior-lib/-/taskwarrior-lib-0.2.0.tgz",
"integrity": "sha512-QVd0fFlWx9wB5ixBmjTwHgsjstDd8EZYnX25G/QZ2eRvPS/GJBVSWNzrJFnc7mvhLK0+Y5gQBwMbRIGijapJRQ=="
"version": "0.4.0",
"resolved": "https://registry.npmjs.org/taskwarrior-lib/-/taskwarrior-lib-0.4.0.tgz",
"integrity": "sha512-DKQoAK/SgM4wYNtesOI0Fl3ggwv6q7P6br8jY5gi7M24SHzwN57bJMxs6CS43uexv6mzZoY7Rgt+cE0vP9KbkQ=="
},
"text-table": {
"version": "0.2.0",

View file

@ -14,7 +14,7 @@
"koa-bodyparser": "^4.3.0",
"koa-logger": "^3.2.1",
"koa-qs": "^3.0.0",
"taskwarrior-lib": "^0.2.0"
"taskwarrior-lib": "^0.4.0"
},
"devDependencies": {
"@types/koa": "^2.11.3",

View file

@ -5,6 +5,7 @@ import * as logger from 'koa-logger';
import * as qs from 'koa-qs';
import tasksRouter from './tasks';
import { TaskError } from 'taskwarrior-lib';
const app = new Koa();
@ -12,6 +13,19 @@ qs(app);
app.use(bodyParser());
app.use(logger());
app.use(async (ctx, next) => {
try {
await next();
}
catch (err) {
if (err instanceof TaskError) {
(err as any).expose = true;
(err as any).status = 400;
}
throw err;
}
});
const router = new Router();
router.use('/tasks', tasksRouter.routes());

View file

@ -9,14 +9,9 @@ router.get('/', async ctx => {
ctx.body = tasks;
});
router.post('/', async ctx => {
const msg = taskwarrior.update(ctx.body);
console.log(msg);
ctx.status = 200;
});
router.put('/', async ctx => {
const msg = taskwarrior.update(ctx.body);
console.log(ctx.request.body.tasks);
const msg = taskwarrior.update(ctx.request.body.tasks);
console.log(msg);
ctx.status = 200;
});