Compare commits
No commits in common. "19a290c3a931ead0d9ae9ebb0985bfbaac54df59" and "6fd246f43cb3f4d0ccb6e017ee699889ba17daac" have entirely different histories.
19a290c3a9
...
6fd246f43c
@ -51,7 +51,6 @@
|
||||
"validator": "13.5.2"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@faker-js/faker": "^7.6.0",
|
||||
"@odit/license-exporter": "0.0.9",
|
||||
"@types/cors": "2.8.9",
|
||||
"@types/csvtojson": "1.1.5",
|
||||
|
@ -1,6 +1,6 @@
|
||||
import { Request } from "express";
|
||||
import * as jwt from "jsonwebtoken";
|
||||
import { BadRequestError, Body, Delete, Get, JsonController, OnUndefined, Param, Post, QueryParam, Req, UseBefore } from 'routing-controllers';
|
||||
import { Body, Delete, Get, JsonController, OnUndefined, Param, Post, QueryParam, Req, UseBefore } from 'routing-controllers';
|
||||
import { OpenAPI, ResponseSchema } from 'routing-controllers-openapi';
|
||||
import { getConnectionManager, Repository } from 'typeorm';
|
||||
import { config } from '../config';
|
||||
@ -116,7 +116,7 @@ export class RunnerSelfServiceController {
|
||||
return scan.toResponse();
|
||||
}
|
||||
|
||||
@Post('/runners/login')
|
||||
@Post('/runners/forgot')
|
||||
@ResponseSchema(RunnerNotFoundError, { statusCode: 404 })
|
||||
@OnUndefined(ResponseEmpty)
|
||||
@OpenAPI({ description: 'Use this endpoint to reuqest a new selfservice token/link to be sent to your mail address (rate limited to one mail every 24hrs).' })
|
||||
@ -148,11 +148,8 @@ export class RunnerSelfServiceController {
|
||||
@OpenAPI({ description: 'Create a new selfservice runner in the citizen org. <br> This endpoint shoud be used to allow "everyday citizen" to register themselves. <br> You have to provide a mail address, b/c the future we\'ll implement email verification.' })
|
||||
async registerRunner(@Body({ validate: true }) createRunner: CreateSelfServiceCitizenRunner, @QueryParam("locale") locale: string = "en") {
|
||||
let runner = await createRunner.toEntity();
|
||||
if (await this.getRunnerExistsByMail(runner.email)) {
|
||||
throw new BadRequestError("E-Mail already registered")
|
||||
}
|
||||
runner = await this.runnerRepository.save(runner);
|
||||
|
||||
runner = await this.runnerRepository.save(runner);
|
||||
let response = new ResponseSelfServiceRunner(await this.runnerRepository.findOne(runner, { relations: ['scans', 'group', 'group.parentGroup', 'scans.track', 'cards', 'distanceDonations', 'distanceDonations.donor', 'distanceDonations.runner', 'distanceDonations.runner.scans', 'distanceDonations.runner.scans.track'] }));
|
||||
response.token = JwtCreator.createSelfService(runner);
|
||||
|
||||
@ -173,9 +170,6 @@ export class RunnerSelfServiceController {
|
||||
const org = await this.getOrgansisation(token);
|
||||
|
||||
let runner = await createRunner.toEntity(org);
|
||||
if (await this.getRunnerExistsByMail(runner.email)) {
|
||||
throw new BadRequestError("E-Mail already registered")
|
||||
}
|
||||
runner = await this.runnerRepository.save(runner);
|
||||
|
||||
let response = new ResponseSelfServiceRunner(await this.runnerRepository.findOne(runner, { relations: ['scans', 'group', 'group.parentGroup', 'scans.track', 'cards', 'distanceDonations', 'distanceDonations.donor', 'distanceDonations.runner', 'distanceDonations.runner.scans', 'distanceDonations.runner.scans.track'] }));
|
||||
@ -231,14 +225,4 @@ export class RunnerSelfServiceController {
|
||||
|
||||
return organization;
|
||||
}
|
||||
|
||||
/**
|
||||
* Checks if a runner already exists
|
||||
* @param email The runner's email address
|
||||
* @returns Boolean (true if exists, false if not)
|
||||
*/
|
||||
private async getRunnerExistsByMail(email: string): Promise<boolean> {
|
||||
const runner = await this.runnerRepository.findOne({ email });
|
||||
return runner != undefined
|
||||
}
|
||||
}
|
@ -1,7 +1,5 @@
|
||||
import { faker } from '@faker-js/faker';
|
||||
import axios from 'axios';
|
||||
import { config } from '../../config';
|
||||
|
||||
const base = "http://localhost:" + config.internal_port
|
||||
|
||||
let access_token;
|
||||
@ -23,7 +21,7 @@ describe('delete selfservice runner invalid', () => {
|
||||
const res = await axios.post(base + '/api/runners/register', {
|
||||
"firstname": "string",
|
||||
"lastname": "string",
|
||||
"email": faker.internet.exampleEmail(),
|
||||
"email": "user@example.com"
|
||||
}, axios_config);
|
||||
added_runner = res.data;
|
||||
expect(res.status).toEqual(200);
|
||||
@ -52,7 +50,7 @@ describe('delete selfservice runner valid', () => {
|
||||
const res = await axios.post(base + '/api/runners/register', {
|
||||
"firstname": "string",
|
||||
"lastname": "string",
|
||||
"email": faker.internet.exampleEmail(),
|
||||
"email": "user@example.com"
|
||||
}, axios_config);
|
||||
added_runner = res.data;
|
||||
expect(res.status).toEqual(200);
|
||||
|
@ -1,4 +1,3 @@
|
||||
import { faker } from '@faker-js/faker';
|
||||
import axios from 'axios';
|
||||
import { config } from '../../config';
|
||||
const base = "http://localhost:" + config.internal_port
|
||||
@ -31,7 +30,7 @@ describe('register + get should return 200', () => {
|
||||
"firstname": "string",
|
||||
"middlename": "string",
|
||||
"lastname": "string",
|
||||
"email": faker.internet.exampleEmail(),
|
||||
"email": "user@example.com"
|
||||
}, axios_config);
|
||||
expect(res.status).toEqual(200);
|
||||
expect(res.headers['content-type']).toContain("application/json");
|
||||
|
@ -1,4 +1,3 @@
|
||||
import { faker } from '@faker-js/faker';
|
||||
import axios from 'axios';
|
||||
import { config } from '../../config';
|
||||
const base = "http://localhost:" + config.internal_port
|
||||
@ -40,7 +39,7 @@ describe('register invalid citizen', () => {
|
||||
const res = await axios.post(base + '/api/runners/register', {
|
||||
"middlename": "string",
|
||||
"lastname": "string",
|
||||
"email": faker.internet.exampleEmail(),
|
||||
"email": "user@example.com"
|
||||
}, axios_config);
|
||||
expect(res.status).toEqual(400);
|
||||
expect(res.headers['content-type']).toContain("application/json");
|
||||
@ -49,7 +48,7 @@ describe('register invalid citizen', () => {
|
||||
const res = await axios.post(base + '/api/runners/register', {
|
||||
"firstname": "string",
|
||||
"middlename": "string",
|
||||
"email": faker.internet.exampleEmail(),
|
||||
"email": "user@example.com"
|
||||
}, axios_config);
|
||||
expect(res.status).toEqual(400);
|
||||
expect(res.headers['content-type']).toContain("application/json");
|
||||
@ -60,26 +59,7 @@ describe('register invalid citizen', () => {
|
||||
"middlename": "string",
|
||||
"lastname": "string",
|
||||
"phone": "peter",
|
||||
"email": faker.internet.exampleEmail(),
|
||||
}, axios_config);
|
||||
expect(res.status).toEqual(400);
|
||||
expect(res.headers['content-type']).toContain("application/json");
|
||||
});
|
||||
it('registering as citizen with duplicate mail should return 400', async () => {
|
||||
const mail = faker.internet.exampleEmail();
|
||||
await axios.post(base + '/api/runners/register', {
|
||||
"firstname": "string",
|
||||
"middlename": "string",
|
||||
"lastname": "string",
|
||||
"phone": "peter",
|
||||
"email": mail,
|
||||
}, axios_config);
|
||||
const res = await axios.post(base + '/api/runners/register', {
|
||||
"firstname": "string",
|
||||
"middlename": "string",
|
||||
"lastname": "string",
|
||||
"phone": "peter",
|
||||
"email": mail,
|
||||
"email": "user@example.com"
|
||||
}, axios_config);
|
||||
expect(res.status).toEqual(400);
|
||||
expect(res.headers['content-type']).toContain("application/json");
|
||||
@ -91,7 +71,7 @@ describe('register citizen valid', () => {
|
||||
const res = await axios.post(base + '/api/runners/register', {
|
||||
"firstname": "string",
|
||||
"lastname": "string",
|
||||
"email": faker.internet.exampleEmail(),
|
||||
"email": "user@example.com"
|
||||
}, axios_config);
|
||||
expect(res.status).toEqual(200);
|
||||
expect(res.headers['content-type']).toContain("application/json");
|
||||
@ -101,7 +81,7 @@ describe('register citizen valid', () => {
|
||||
"firstname": "string",
|
||||
"middlename": "string",
|
||||
"lastname": "string",
|
||||
"email": faker.internet.exampleEmail(),
|
||||
"email": "user@example.com",
|
||||
"phone": "+4909132123456",
|
||||
"address": {
|
||||
address1: "Teststreet 1",
|
||||
@ -207,7 +187,7 @@ describe('register valid company', () => {
|
||||
"firstname": "string",
|
||||
"middlename": "string",
|
||||
"lastname": "string",
|
||||
"email": faker.internet.exampleEmail(),
|
||||
"email": "user@example.com",
|
||||
"phone": "+4909132123456",
|
||||
"address": {
|
||||
address1: "Teststreet 1",
|
||||
@ -234,7 +214,7 @@ describe('register valid company', () => {
|
||||
"firstname": "string",
|
||||
"middlename": "string",
|
||||
"lastname": "string",
|
||||
"email": faker.internet.exampleEmail(),
|
||||
"email": "user@example.com",
|
||||
"phone": "+4909132123456",
|
||||
"address": {
|
||||
address1: "Teststreet 1",
|
||||
@ -252,7 +232,7 @@ describe('register valid company', () => {
|
||||
"firstname": "string",
|
||||
"middlename": "string",
|
||||
"lastname": "string",
|
||||
"email": faker.internet.exampleEmail(),
|
||||
"email": "user@example.com",
|
||||
"phone": "+4909132123456",
|
||||
"address": {
|
||||
address1: "Teststreet 1",
|
||||
|
Loading…
x
Reference in New Issue
Block a user