Compare commits
	
		
			14 Commits
		
	
	
		
			0c763a2dfd
			...
			v0.14.0
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| 
						
						
							
						
						6ff764bc34
	
				 | 
					
					
						|||
| 
						
						
							
						
						ea87cc793b
	
				 | 
					
					
						|||
| 
						
						
							
						
						92517e3653
	
				 | 
					
					
						|||
| 
						
						
							
						
						ffee887ddf
	
				 | 
					
					
						|||
| 
						
						
							
						
						3bac75e7ab
	
				 | 
					
					
						|||
| d05eddcae1 | |||
| 
						
						
							
						
						d5c689d693
	
				 | 
					
					
						|||
| 
						
						
							
						
						8fedd4ef3b
	
				 | 
					
					
						|||
| 
						
						
							
						
						e8b2e6f261
	
				 | 
					
					
						|||
| 39f3b0e01f | |||
| 
						
						
							
						
						edaf255e8f
	
				 | 
					
					
						|||
| 41c4ed4d0f | |||
| 
						
						
							
						
						f2bd88aadf
	
				 | 
					
					
						|||
| 
						
						
							
						
						67a3661448
	
				 | 
					
					
						
							
								
								
									
										34
									
								
								CHANGELOG.md
									
									
									
									
									
								
							
							
						
						
									
										34
									
								
								CHANGELOG.md
									
									
									
									
									
								
							@@ -2,10 +2,44 @@
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
All notable changes to this project will be documented in this file. Dates are displayed in UTC.
 | 
					All notable changes to this project will be documented in this file. Dates are displayed in UTC.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#### [v0.14.0](https://git.odit.services/lfk/backend/compare/v0.13.3...v0.14.0)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					- Updated default length [`ea87cc7`](https://git.odit.services/lfk/backend/commit/ea87cc793b163bf0d4405a25bbe83fbc8e31c206)
 | 
				
			||||||
 | 
					- breaking(runnercards): shorter runnercard codes (padding to 12 was a bit tooo ambitious) [`ffee887`](https://git.odit.services/lfk/backend/commit/ffee887ddf6a71102ee39533d7cd504d1fd6698f)
 | 
				
			||||||
 | 
					- Removed sqlite journal [`92517e3`](https://git.odit.services/lfk/backend/commit/92517e365393f4baac3814f5668874b5752dc7c8)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#### [v0.13.3](https://git.odit.services/lfk/backend/compare/v0.13.2...v0.13.3)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					> 15 February 2023
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					- 🚀Bumped version to v0.13.3 [`3bac75e`](https://git.odit.services/lfk/backend/commit/3bac75e7ab9f16ecab1fbfa9915a7edb923883f6)
 | 
				
			||||||
 | 
					- Merge pull request 'feature/201-no_citizen-deletion' (#202) from feature/201-no_citizen-deletion into dev [`d05eddc`](https://git.odit.services/lfk/backend/commit/d05eddcae198427ce9a334096563b3aadcff2b56)
 | 
				
			||||||
 | 
					- Updated tests [`d5c689d`](https://git.odit.services/lfk/backend/commit/d5c689d6937288df7dca14ce26fbbd4f46a8752a)
 | 
				
			||||||
 | 
					- Added delete check for citizen org [`8fedd4e`](https://git.odit.services/lfk/backend/commit/8fedd4ef3bdd48dc42abc1d53006eefc145175e3)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#### [v0.13.2](https://git.odit.services/lfk/backend/compare/v0.13.1...v0.13.2)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					> 3 February 2023
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					- 🚀Bumped version to v0.13.2 [`e8b2e6f`](https://git.odit.services/lfk/backend/commit/e8b2e6f26140a18c06b017e4461742d7e7942f08)
 | 
				
			||||||
 | 
					- Merge pull request 'move selfservice magic link endpoint to 15min rate limit' (#200) from feature/runner-selfservice-login-link-rate-limit into dev [`39f3b0e`](https://git.odit.services/lfk/backend/commit/39f3b0e01f03bfbcfcb0ea08d697268ce068e63d)
 | 
				
			||||||
 | 
					- move to 15min limit [`edaf255`](https://git.odit.services/lfk/backend/commit/edaf255e8f609185dcd6c2c0cd2e8b007b785e0c)
 | 
				
			||||||
 | 
					- Merge pull request 'Releases 0.12.0 and 0.13.0' (#199) from dev into main [`41c4ed4`](https://git.odit.services/lfk/backend/commit/41c4ed4d0faaed382801bbe480f31dafa6f3912d)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#### [v0.13.1](https://git.odit.services/lfk/backend/compare/v0.13.0...v0.13.1)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					> 2 February 2023
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					- 🚀Bumped version to v0.13.1 [`f2bd88a`](https://git.odit.services/lfk/backend/commit/f2bd88aadfcb6ffa0485ea6afac8c7664a37f5f4)
 | 
				
			||||||
 | 
					- Updated description [`67a3661`](https://git.odit.services/lfk/backend/commit/67a36614485b2ea83c2de41e0684708b95a05b32)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#### [v0.13.0](https://git.odit.services/lfk/backend/compare/v0.12.0...v0.13.0)
 | 
					#### [v0.13.0](https://git.odit.services/lfk/backend/compare/v0.12.0...v0.13.0)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					> 2 February 2023
 | 
				
			||||||
 | 
					
 | 
				
			||||||
- Added faker for testing [`e184673`](https://git.odit.services/lfk/backend/commit/e1846739638905aab6ba7e059fd2cbf8ff467bf3)
 | 
					- Added faker for testing [`e184673`](https://git.odit.services/lfk/backend/commit/e1846739638905aab6ba7e059fd2cbf8ff467bf3)
 | 
				
			||||||
- 📖New license file version [CI SKIP] [skip ci] [`2b641fa`](https://git.odit.services/lfk/backend/commit/2b641faa29c47d95f69983770dc4ab37e674604f)
 | 
					- 📖New license file version [CI SKIP] [skip ci] [`2b641fa`](https://git.odit.services/lfk/backend/commit/2b641faa29c47d95f69983770dc4ab37e674604f)
 | 
				
			||||||
 | 
					- 🚀Bumped version to v0.13.0 [`0c763a2`](https://git.odit.services/lfk/backend/commit/0c763a2dfd39607b480d9aff7d3c883791f41700)
 | 
				
			||||||
- Updated selfservice tests to prevent email duplication [`9bc80aa`](https://git.odit.services/lfk/backend/commit/9bc80aac8aab9b4dedc26c9bc3ce705d7fe9c0bf)
 | 
					- Updated selfservice tests to prevent email duplication [`9bc80aa`](https://git.odit.services/lfk/backend/commit/9bc80aac8aab9b4dedc26c9bc3ce705d7fe9c0bf)
 | 
				
			||||||
- Moved license and changelog export to releaseit hooks [`77c6303`](https://git.odit.services/lfk/backend/commit/77c6303014578edbbadeeaa790f7974bde2a9764)
 | 
					- Moved license and changelog export to releaseit hooks [`77c6303`](https://git.odit.services/lfk/backend/commit/77c6303014578edbbadeeaa790f7974bde2a9764)
 | 
				
			||||||
- Updated readme [`4cdba8b`](https://git.odit.services/lfk/backend/commit/4cdba8bc77ce543f6fb636711b8728bce794eac7)
 | 
					- Updated readme [`4cdba8b`](https://git.odit.services/lfk/backend/commit/4cdba8bc77ce543f6fb636711b8728bce794eac7)
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,6 +1,6 @@
 | 
				
			|||||||
{
 | 
					{
 | 
				
			||||||
  "name": "@odit/lfk-backend",
 | 
					  "name": "@odit/lfk-backend",
 | 
				
			||||||
  "version": "0.13.0",
 | 
					  "version": "0.14.0",
 | 
				
			||||||
  "main": "src/app.ts",
 | 
					  "main": "src/app.ts",
 | 
				
			||||||
  "repository": "https://git.odit.services/lfk/backend",
 | 
					  "repository": "https://git.odit.services/lfk/backend",
 | 
				
			||||||
  "author": {
 | 
					  "author": {
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,4 +1,4 @@
 | 
				
			|||||||
import { Authorized, Body, Delete, Get, JsonController, OnUndefined, Param, Post, Put, QueryParam } from 'routing-controllers';
 | 
					import { Authorized, BadRequestError, Body, Delete, Get, JsonController, OnUndefined, Param, Post, Put, QueryParam } from 'routing-controllers';
 | 
				
			||||||
import { OpenAPI, ResponseSchema } from 'routing-controllers-openapi';
 | 
					import { OpenAPI, ResponseSchema } from 'routing-controllers-openapi';
 | 
				
			||||||
import { getConnectionManager, Repository } from 'typeorm';
 | 
					import { getConnectionManager, Repository } from 'typeorm';
 | 
				
			||||||
import { RunnerOrganizationHasRunnersError, RunnerOrganizationHasTeamsError, RunnerOrganizationIdsNotMatchingError, RunnerOrganizationNotFoundError } from '../errors/RunnerOrganizationErrors';
 | 
					import { RunnerOrganizationHasRunnersError, RunnerOrganizationHasTeamsError, RunnerOrganizationIdsNotMatchingError, RunnerOrganizationNotFoundError } from '../errors/RunnerOrganizationErrors';
 | 
				
			||||||
@@ -114,6 +114,10 @@ export class RunnerOrganizationController {
 | 
				
			|||||||
	@OnUndefined(204)
 | 
						@OnUndefined(204)
 | 
				
			||||||
	@OpenAPI({ description: 'Delete the organsisation whose id you provided. <br> If the organization still has runners and/or teams associated this will fail. <br> To delete the organization with all associated runners and teams set the force QueryParam to true (cascading deletion might take a while). <br> This won\'t delete the associated contact. <br> If no organization with this id exists it will just return 204(no content).' })
 | 
						@OpenAPI({ description: 'Delete the organsisation whose id you provided. <br> If the organization still has runners and/or teams associated this will fail. <br> To delete the organization with all associated runners and teams set the force QueryParam to true (cascading deletion might take a while). <br> This won\'t delete the associated contact. <br> If no organization with this id exists it will just return 204(no content).' })
 | 
				
			||||||
	async remove(@Param("id") id: number, @QueryParam("force") force: boolean) {
 | 
						async remove(@Param("id") id: number, @QueryParam("force") force: boolean) {
 | 
				
			||||||
 | 
							if (id == 1) {
 | 
				
			||||||
 | 
								throw new BadRequestError("You can't delete the citizen runner org.");
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		let organization = await this.runnerOrganizationRepository.findOne({ id: id });
 | 
							let organization = await this.runnerOrganizationRepository.findOne({ id: id });
 | 
				
			||||||
		if (!organization) { return null; }
 | 
							if (!organization) { return null; }
 | 
				
			||||||
		let runnerOrganization = await this.runnerOrganizationRepository.findOne(organization, { relations: ['contact', 'runners', 'teams'] });
 | 
							let runnerOrganization = await this.runnerOrganizationRepository.findOne(organization, { relations: ['contact', 'runners', 'teams'] });
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -119,7 +119,7 @@ export class RunnerSelfServiceController {
 | 
				
			|||||||
	@Post('/runners/login')
 | 
						@Post('/runners/login')
 | 
				
			||||||
	@ResponseSchema(RunnerNotFoundError, { statusCode: 404 })
 | 
						@ResponseSchema(RunnerNotFoundError, { statusCode: 404 })
 | 
				
			||||||
	@OnUndefined(ResponseEmpty)
 | 
						@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).' })
 | 
						@OpenAPI({ description: 'Use this endpoint to reuqest a new selfservice magic-login-link to be sent to your mail address (rate limited to one mail every 15mins).' })
 | 
				
			||||||
	async requestNewToken(@QueryParam('mail') mail: string, @QueryParam("locale") locale: string = "en") {
 | 
						async requestNewToken(@QueryParam('mail') mail: string, @QueryParam("locale") locale: string = "en") {
 | 
				
			||||||
		if (!mail) {
 | 
							if (!mail) {
 | 
				
			||||||
			throw new RunnerNotFoundError();
 | 
								throw new RunnerNotFoundError();
 | 
				
			||||||
@@ -127,7 +127,7 @@ export class RunnerSelfServiceController {
 | 
				
			|||||||
		const runner = await this.runnerRepository.findOne({ email: mail });
 | 
							const runner = await this.runnerRepository.findOne({ email: mail });
 | 
				
			||||||
		if (!runner) { throw new RunnerNotFoundError(); }
 | 
							if (!runner) { throw new RunnerNotFoundError(); }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		if (runner.resetRequestedTimestamp > (Math.floor(Date.now() / 1000) - 60 * 60 * 24)) { throw new RunnerSelfserviceTimeoutError(); }
 | 
							if (runner.resetRequestedTimestamp > (Math.floor(Date.now() / 1000) - 60 * 15)) { throw new RunnerSelfserviceTimeoutError(); }
 | 
				
			||||||
		const token = JwtCreator.createSelfService(runner);
 | 
							const token = JwtCreator.createSelfService(runner);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		try {
 | 
							try {
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -67,10 +67,10 @@ export class RunnerCard {
 | 
				
			|||||||
  private get paddedId(): string {
 | 
					  private get paddedId(): string {
 | 
				
			||||||
    let id: string = this.id.toString();
 | 
					    let id: string = this.id.toString();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    if (id.length > 11) {
 | 
					    if (id.length > 6) {
 | 
				
			||||||
      throw new RunnerCardIdOutOfRangeError();
 | 
					      throw new RunnerCardIdOutOfRangeError();
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
    while (id.length < 11) { id = '0' + id; }
 | 
					    while (id.length < 6) { id = '0' + id; }
 | 
				
			||||||
    id = '2' + id;
 | 
					    id = '2' + id;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    return id;
 | 
					    return id;
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -22,6 +22,12 @@ describe('deletion (non-existant)', () => {
 | 
				
			|||||||
        expect(res2.status).toEqual(204);
 | 
					        expect(res2.status).toEqual(204);
 | 
				
			||||||
    });
 | 
					    });
 | 
				
			||||||
});
 | 
					});
 | 
				
			||||||
 | 
					describe('deletion of citizen sould fail', () => {
 | 
				
			||||||
 | 
					    it('delete', async () => {
 | 
				
			||||||
 | 
					        const res3 = await axios.delete(base + '/api/organizations/1', axios_config);
 | 
				
			||||||
 | 
					        expect(res3.status).toEqual(400);
 | 
				
			||||||
 | 
					    });
 | 
				
			||||||
 | 
					});
 | 
				
			||||||
// ---------------
 | 
					// ---------------
 | 
				
			||||||
describe('adding + deletion (successfull)', () => {
 | 
					describe('adding + deletion (successfull)', () => {
 | 
				
			||||||
    let added_org_id
 | 
					    let added_org_id
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user