From 656f63dfd5fdbe13554fc98440e416be7e56d909 Mon Sep 17 00:00:00 2001 From: Nicolai Ort Date: Wed, 24 Feb 2021 18:23:08 +0100 Subject: [PATCH] Added selfservice org info endpoint ref #146 --- .../RunnerSelfServiceController.ts | 20 +++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) diff --git a/src/controllers/RunnerSelfServiceController.ts b/src/controllers/RunnerSelfServiceController.ts index eb35f48..324f9c1 100644 --- a/src/controllers/RunnerSelfServiceController.ts +++ b/src/controllers/RunnerSelfServiceController.ts @@ -12,10 +12,11 @@ import { CreateSelfServiceRunner } from '../models/actions/create/CreateSelfServ import { Runner } from '../models/entities/Runner'; import { RunnerGroup } from '../models/entities/RunnerGroup'; import { RunnerOrganization } from '../models/entities/RunnerOrganization'; +import { ResponseSelfServiceOrganisation } from '../models/responses/ResponseSelfServiceOrganisation'; import { ResponseSelfServiceRunner } from '../models/responses/ResponseSelfServiceRunner'; -@JsonController('/runners') +@JsonController() export class RunnerSelfServiceController { private runnerRepository: Repository; private orgRepository: Repository; @@ -28,7 +29,7 @@ export class RunnerSelfServiceController { this.orgRepository = getConnectionManager().get().getRepository(RunnerOrganization); } - @Get('/me/:jwt') + @Get('/runners/me/:jwt') @ResponseSchema(ResponseSelfServiceRunner) @ResponseSchema(RunnerNotFoundError, { statusCode: 404 }) @OnUndefined(RunnerNotFoundError) @@ -37,7 +38,7 @@ export class RunnerSelfServiceController { return (new ResponseSelfServiceRunner(await this.getRunner(token))); } - @Post('/register') + @Post('/runners/register') @ResponseSchema(ResponseSelfServiceRunner) @ResponseSchema(RunnerEmailNeededError, { statusCode: 406 }) @OpenAPI({ description: 'Create a new selfservice runner in the citizen org.
This endpoint shoud be used to allow "everyday citizen" to register themselves.
You have to provide a mail address, b/c the future we\'ll implement email verification.' }) @@ -50,7 +51,7 @@ export class RunnerSelfServiceController { return response; } - @Post('/register/:token') + @Post('/runners/register/:token') @ResponseSchema(ResponseSelfServiceRunner) @ResponseSchema(RunnerOrganizationNotFoundError, { statusCode: 404 }) @OpenAPI({ description: 'Create a new selfservice runner in a provided org.
The orgs get provided and authorized via api tokens that can be optained via the /organizations endpoint.' }) @@ -65,6 +66,17 @@ export class RunnerSelfServiceController { return response; } + @Get('/organizations/selfservice/:token') + @ResponseSchema(ResponseSelfServiceOrganisation, { isArray: false }) + @ResponseSchema(RunnerOrganizationNotFoundError, { statusCode: 404 }) + @OpenAPI({ description: 'Get the basic info and teams for a org.' }) + async getSelfserviceOrg(@Param('token') token: string) { + const orgid = (await this.getOrgansisation(token)).id; + const org = await this.orgRepository.findOne({ id: orgid }, { relations: ['teams'] }) + + return new ResponseSelfServiceOrganisation(org); + } + /** * Get's a runner by a provided jwt token. * @param token The runner jwt provided by the runner to identitfy themselves.