diff --git a/.bruno/Plan Endpoints/create plan.bru b/.bruno/Plan Endpoints/create plan.bru new file mode 100644 index 0000000..65bb189 --- /dev/null +++ b/.bruno/Plan Endpoints/create plan.bru @@ -0,0 +1,26 @@ +meta { + name: create plan + type: http + seq: 1 +} + +post { + url: http://localhost:14014/api/create + body: json + auth: inherit +} + +body:json { + { + "name": "test", + "pin": "1234", + "planName": "test plan", + "folder": "", + "data": "data string" + } +} + +settings { + encodeUrl: true + timeout: 0 +} diff --git a/.bruno/Plan Endpoints/delete plan.bru b/.bruno/Plan Endpoints/delete plan.bru index 3f624bc..e18478f 100644 --- a/.bruno/Plan Endpoints/delete plan.bru +++ b/.bruno/Plan Endpoints/delete plan.bru @@ -1,7 +1,7 @@ meta { name: delete plan type: http - seq: 1 + seq: 2 } delete { diff --git a/.bruno/Plan Endpoints/undelete plan.bru b/.bruno/Plan Endpoints/undelete plan.bru index 34e8cdc..c3be850 100644 --- a/.bruno/Plan Endpoints/undelete plan.bru +++ b/.bruno/Plan Endpoints/undelete plan.bru @@ -1,7 +1,7 @@ meta { name: undelete plan type: http - seq: 2 + seq: 3 } put { diff --git a/mod.ts b/mod.ts index fec7612..433c612 100644 --- a/mod.ts +++ b/mod.ts @@ -75,6 +75,18 @@ Deno.serve({ port: config.api.port }, async (req) => { case 'POST': if (path === '/auth') { return genericResponse(STATUS_CODE.OK, JSON.stringify({ id, hasEmail })); + } else if (path === '/create') { + if (body.planName.trim().length > 200) return genericResponse(STATUS_CODE.BadRequest, 'Name too long.'); + if (body.folder.trim() && body.folder.trim().length > 200) return genericResponse(STATUS_CODE.BadRequest, 'Folder name too long.'); + const newPlanId = nanoid(); + + await dbClient + .execute('INSERT INTO plans(id,ownerId,name,folder,data) values(?,?,?,?,?)', [newPlanId, id, body.planName.trim(), body.folder.trim(), body.data]) + .catch(() => { + failed = true; + }); + if (failed) return genericResponse(STATUS_CODE.InternalServerError, "Couldn't write DB."); + return genericResponse(STATUS_CODE.OK, JSON.stringify({ id: newPlanId, name: body.planName.trim() })); } break; case 'PUT':