diff --git a/backend/package-lock.json b/backend/package-lock.json index d48b177..fb3903a 100644 --- a/backend/package-lock.json +++ b/backend/package-lock.json @@ -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", diff --git a/backend/package.json b/backend/package.json index 4b5b735..8d58e2a 100644 --- a/backend/package.json +++ b/backend/package.json @@ -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", diff --git a/backend/src/app.ts b/backend/src/app.ts index 2218d27..7b02ef2 100644 --- a/backend/src/app.ts +++ b/backend/src/app.ts @@ -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()); diff --git a/backend/src/tasks.ts b/backend/src/tasks.ts index 9347a6e..f57e224 100644 --- a/backend/src/tasks.ts +++ b/backend/src/tasks.ts @@ -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; });