stub out get endpoints, built list endpoint
This commit is contained in:
32
mod.ts
32
mod.ts
@@ -16,8 +16,8 @@ discordHeaders.append('Accept', 'application/json');
|
||||
const zohoHeaders = new Headers(discordHeaders);
|
||||
let zohoAuthExpireDT = new Date().getTime();
|
||||
|
||||
const genericResponse = (status: StatusCode, customText = '') =>
|
||||
new Response(customText || STATUS_TEXT[status], { status: status, statusText: STATUS_TEXT[status] });
|
||||
const genericResponse = (status: StatusCode, customText = '', customHeaders = new Headers()) =>
|
||||
new Response(customText || STATUS_TEXT[status], { status: status, statusText: STATUS_TEXT[status], headers: customHeaders });
|
||||
|
||||
Deno.serve({ port: config.api.port }, async (req) => {
|
||||
try {
|
||||
@@ -29,7 +29,31 @@ Deno.serve({ port: config.api.port }, async (req) => {
|
||||
|
||||
let failed = false;
|
||||
if (req.method === 'GET') {
|
||||
// handle all gets
|
||||
if (path === '/home') {
|
||||
// SSR "login page"
|
||||
return genericResponse(STATUS_CODE.Unauthorized, 'Please sign in.');
|
||||
} else if (path.startsWith('/home/')) {
|
||||
// SSR "home page"
|
||||
return genericResponse(STATUS_CODE.NotImplemented, 'WIP');
|
||||
} else if (path.startsWith('/read/')) {
|
||||
return genericResponse(STATUS_CODE.NotImplemented, 'WIP');
|
||||
} else if (path.startsWith('/list/')) {
|
||||
const userId = path.replace('/list/', '');
|
||||
const userMatch = await dbClient.query('SELECT id FROM users WHERE id = ?', [userId]).catch(() => {
|
||||
failed = true;
|
||||
});
|
||||
if (failed) return genericResponse(STATUS_CODE.InternalServerError, "Couldn't read DB.");
|
||||
if (!userMatch.length) return genericResponse(STATUS_CODE.NotFound, 'User ID does not exist.');
|
||||
|
||||
const plans = await dbClient.query('SELECT id, name, folder FROM plans WHERE ownerId = ?', [userId]).catch(() => {
|
||||
failed = true;
|
||||
});
|
||||
if (failed) return genericResponse(STATUS_CODE.InternalServerError, "Couldn't read DB.");
|
||||
|
||||
return genericResponse(STATUS_CODE.OK, JSON.stringify(plans));
|
||||
} else if (path.startsWith('/export/')) {
|
||||
return genericResponse(STATUS_CODE.NotImplemented, 'WIP');
|
||||
}
|
||||
} else if (req.method === 'POST' && path === '/enroll') {
|
||||
const body = await req.json();
|
||||
|
||||
@@ -42,7 +66,7 @@ Deno.serve({ port: config.api.port }, async (req) => {
|
||||
if (body.name.length < 4 || body.name.length > 20)
|
||||
return genericResponse(STATUS_CODE.BadRequest, `Name too ${body.name.length < 4 ? 'short' : 'long'}.`);
|
||||
if (body.pin.length < 4 || body.pin.length > 20) return genericResponse(STATUS_CODE.BadRequest, `PIN too ${body.pin.length < 4 ? 'short' : 'long'}.`);
|
||||
if (body.email.length > 255) return genericResponse(STATUS_CODE.BadRequest, `Email too long.`);
|
||||
if (body.email.length > 255) return genericResponse(STATUS_CODE.BadRequest, 'Email too long.');
|
||||
|
||||
const id = nanoid();
|
||||
|
||||
|
||||
Reference in New Issue
Block a user