From 2dc9ab66d4849e64696322d7bf9bc08efd9507b5 Mon Sep 17 00:00:00 2001 From: Roberto Tonino Date: Sat, 24 Apr 2021 20:59:32 +0200 Subject: [PATCH] feat(server): implemented login via ARL --- server/src/routes/api/get/login.ts | 0 server/src/routes/api/post/index.ts | 4 +-- server/src/routes/api/post/login-arl.ts | 39 +++++++++++++++++++++++++ 3 files changed, 41 insertions(+), 2 deletions(-) delete mode 100644 server/src/routes/api/get/login.ts create mode 100644 server/src/routes/api/post/login-arl.ts diff --git a/server/src/routes/api/get/login.ts b/server/src/routes/api/get/login.ts deleted file mode 100644 index e69de29..0000000 diff --git a/server/src/routes/api/post/index.ts b/server/src/routes/api/post/index.ts index a24ea15..569ec2e 100644 --- a/server/src/routes/api/post/index.ts +++ b/server/src/routes/api/post/index.ts @@ -1,3 +1,3 @@ -import { ApiHandler } from '../../../types' +import loginArl from './login-arl' -export default [] as ApiHandler[] +export default [loginArl] diff --git a/server/src/routes/api/post/login-arl.ts b/server/src/routes/api/post/login-arl.ts new file mode 100644 index 0000000..dfef45d --- /dev/null +++ b/server/src/routes/api/post/login-arl.ts @@ -0,0 +1,39 @@ +import { RequestHandler } from 'express' +import { ApiHandler } from '../../../types' +import { dz } from '../../../main' + +export interface RawLoginArlQuery { + arl: string + child?: number +} + +const path: ApiHandler['path'] = '/login-arl/' + +const handler: RequestHandler<{}, {}, {}, RawLoginArlQuery> = async (req, res, next) => { + if (!req.query) { + res.status(400).send() + return next() + } + + if (!req.query.arl) { + res.status(400).send() + return next() + } + + const loginParams: (string | number)[] = [req.query.arl] + + // TODO Handle the child === 0 case, don't want to rely on the login_via_arl default param (it may change in the + // future) + if (req.query.child) { + loginParams.push(req.query.child) + } + + const response = await dz.login_via_arl(...loginParams) + + res.status(200).send(response) + next() +} + +const apiHandler = { path, handler } + +export default apiHandler