Created basic endpoint for user forgotten mails

ref #154
This commit is contained in:
Nicolai Ort 2021-03-06 13:23:01 +01:00
parent 66d6023335
commit d7099717c2
1 changed files with 19 additions and 1 deletions

View File

@ -1,5 +1,5 @@
import * as jwt from "jsonwebtoken";
import { Body, Get, JsonController, OnUndefined, Param, Post } from 'routing-controllers';
import { Body, Get, JsonController, OnUndefined, Param, Post, QueryParam } from 'routing-controllers';
import { OpenAPI, ResponseSchema } from 'routing-controllers-openapi';
import { getConnectionManager, Repository } from 'typeorm';
import { config } from '../config';
@ -12,6 +12,7 @@ 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 { ResponseEmpty } from '../models/responses/ResponseEmpty';
import { ResponseSelfServiceOrganisation } from '../models/responses/ResponseSelfServiceOrganisation';
import { ResponseSelfServiceRunner } from '../models/responses/ResponseSelfServiceRunner';
import { ResponseSelfServiceScan } from '../models/responses/ResponseSelfServiceScan';
@ -53,6 +54,23 @@ export class RunnerSelfServiceController {
return responseScans;
}
@Post('/runners/me/forgot')
@ResponseSchema(ResponseSelfServiceRunner, { isArray: true })
@ResponseSchema(RunnerNotFoundError, { statusCode: 404 })
@OnUndefined(ResponseEmpty)
@OpenAPI({ description: 'TODO' })
async requestNewToken(@QueryParam('mail') mail: string) {
const runner = await this.runnerRepository.findOne({ email: mail });
if (runner.resetRequestedTimestamp > (Math.floor(Date.now() / 1000) - 15 * 60)) { throw new Error("timeout!") }
const token = JwtCreator.createSelfService(runner);
try {
//await Mailer.sendForgottenMail();
} catch (error) {
throw new Error("Mail fucked up");
}
return { token };
}
@Post('/runners/register')
@ResponseSchema(ResponseSelfServiceRunner)
@ResponseSchema(RunnerEmailNeededError, { statusCode: 406 })