diff --git a/src/controllers/RunnerController.ts b/src/controllers/RunnerController.ts index 8293f36..acee2eb 100644 --- a/src/controllers/RunnerController.ts +++ b/src/controllers/RunnerController.ts @@ -2,7 +2,8 @@ import { Body, Delete, Get, JsonController, OnUndefined, Param, Post, Put, Query import { OpenAPI, ResponseSchema } from 'routing-controllers-openapi'; import { getConnectionManager, Repository } from 'typeorm'; import { EntityFromBody, EntityFromParam } from 'typeorm-routing-controllers-extensions'; -import { RunnerGroupNeededError, RunnerGroupNotFoundError, RunnerIdsNotMatchingError, RunnerNotFoundError, RunnerOnlyOneGroupAllowedError } from '../errors/RunnerErrors'; +import { RunnerGroupNeededError, RunnerIdsNotMatchingError, RunnerNotFoundError } from '../errors/RunnerErrors'; +import { RunnerGroupNotFoundError } from '../errors/RunnerGroupErrors'; import { CreateRunner } from '../models/actions/CreateRunner'; import { Runner } from '../models/entities/Runner'; import { ResponseRunner } from '../models/responses/ResponseRunner'; @@ -43,7 +44,6 @@ export class RunnerController { @Post() @ResponseSchema(ResponseRunner) - @ResponseSchema(RunnerOnlyOneGroupAllowedError) @ResponseSchema(RunnerGroupNeededError) @ResponseSchema(RunnerGroupNotFoundError) @OpenAPI({ description: 'Create a new runner object (id will be generated automagicly).' }) diff --git a/src/controllers/UserController.ts b/src/controllers/UserController.ts index 8c2f2ea..f833f54 100644 --- a/src/controllers/UserController.ts +++ b/src/controllers/UserController.ts @@ -2,7 +2,8 @@ import { Body, Delete, Get, JsonController, OnUndefined, Param, Post, Put } from import { OpenAPI, ResponseSchema } from 'routing-controllers-openapi'; import { getConnectionManager, Repository } from 'typeorm'; import { EntityFromBody, EntityFromParam } from 'typeorm-routing-controllers-extensions'; -import { UserGroupNotFoundError, UserIdsNotMatchingError, UserNotFoundError } from '../errors/UserErrors'; +import { UserIdsNotMatchingError, UserNotFoundError } from '../errors/UserErrors'; +import { UserGroupNotFoundError } from '../errors/UserGroupErrors'; import { CreateUser } from '../models/actions/CreateUser'; import { User } from '../models/entities/User'; diff --git a/src/errors/AddressErrors.ts b/src/errors/AddressErrors.ts index c7ae8af..18cf624 100644 --- a/src/errors/AddressErrors.ts +++ b/src/errors/AddressErrors.ts @@ -1,6 +1,9 @@ import { IsString } from 'class-validator'; import { NotAcceptableError, NotFoundError } from 'routing-controllers'; +/** + * Error to throw, when to provided address doesn't belong to the accepted types. + */ export class AddressWrongTypeError extends NotAcceptableError { @IsString() name = "AddressWrongTypeError" @@ -9,6 +12,9 @@ export class AddressWrongTypeError extends NotAcceptableError { message = "The address must be an existing adress's id. \n You provided a object of another type." } +/** + * Error to throw, when a non-existant address get's loaded. + */ export class AddressNotFoundError extends NotFoundError { @IsString() name = "AddressNotFoundError" diff --git a/src/errors/AuthError.ts b/src/errors/AuthError.ts index 2c2ce5b..ebd5c00 100644 --- a/src/errors/AuthError.ts +++ b/src/errors/AuthError.ts @@ -2,7 +2,7 @@ import { IsString } from 'class-validator'; import { ForbiddenError, NotAcceptableError, NotFoundError, UnauthorizedError } from 'routing-controllers'; /** - * Error to throw when a jwt is expired + * Error to throw when a jwt is expired. */ export class ExpiredJWTError extends UnauthorizedError { @IsString() @@ -13,7 +13,7 @@ export class ExpiredJWTError extends UnauthorizedError { } /** - * Error to throw when a jwt could not be parsed + * Error to throw when a jwt could not be parsed. */ export class IllegalJWTError extends UnauthorizedError { @IsString() @@ -24,7 +24,7 @@ export class IllegalJWTError extends UnauthorizedError { } /** - * Error to throw when user is nonexistant or refreshtoken is invalid + * Error to throw when user is nonexistant or refreshtoken is invalid. */ export class UserNonexistantOrRefreshtokenInvalidError extends UnauthorizedError { @IsString() @@ -35,7 +35,7 @@ export class UserNonexistantOrRefreshtokenInvalidError extends UnauthorizedError } /** - * Error to throw when provided credentials are invalid + * Error to throw when provided credentials are invalid. */ export class InvalidCredentialsError extends UnauthorizedError { @IsString() @@ -46,7 +46,7 @@ export class InvalidCredentialsError extends UnauthorizedError { } /** - * Error to throw when a jwt does not have permission for this route/ action + * Error to throw when a jwt does not have permission for this route/action. */ export class NoPermissionError extends ForbiddenError { @IsString() @@ -57,7 +57,7 @@ export class NoPermissionError extends ForbiddenError { } /** - * Error to thow when no username and no email is set + * Error to throw when no username and no email is set. */ export class UsernameOrEmailNeededError extends NotAcceptableError { @IsString() @@ -68,7 +68,7 @@ export class UsernameOrEmailNeededError extends NotAcceptableError { } /** - * Error to thow when no password is provided + * Error to throw when no password is provided. */ export class PasswordNeededError extends NotAcceptableError { @IsString() @@ -79,7 +79,7 @@ export class PasswordNeededError extends NotAcceptableError { } /** - * Error to thow when no user could be found for provided credential + * Error to throw when no user could be found mating the provided credential. */ export class UserNotFoundError extends NotFoundError { @IsString() @@ -90,7 +90,7 @@ export class UserNotFoundError extends NotFoundError { } /** - * Error to thow when no jwt token was provided + * Error to throw when no jwt token was provided (but one had to be). */ export class JwtNotProvidedError extends NotAcceptableError { @IsString() @@ -101,7 +101,7 @@ export class JwtNotProvidedError extends NotAcceptableError { } /** - * Error to thow when user was not found or refresh token count was invalid + * Error to throw when user was not found or refresh token count was invalid. */ export class UserNotFoundOrRefreshTokenCountInvalidError extends NotAcceptableError { @IsString() diff --git a/src/errors/GroupContactErrors.ts b/src/errors/GroupContactErrors.ts index c5bf9c7..7dc19e8 100644 --- a/src/errors/GroupContactErrors.ts +++ b/src/errors/GroupContactErrors.ts @@ -1,6 +1,9 @@ import { IsString } from 'class-validator'; import { NotAcceptableError, NotFoundError } from 'routing-controllers'; +/** + * Error to throw, when a provided groupContact doesn't belong to the accepted types. + */ export class GroupContactWrongTypeError extends NotAcceptableError { @IsString() name = "GroupContactWrongTypeError" @@ -9,6 +12,9 @@ export class GroupContactWrongTypeError extends NotAcceptableError { message = "The groupContact must be an existing groupContact's id. \n You provided a object of another type." } +/** + * Error to throw, when a non-existant groupContact get's loaded. + */ export class GroupContactNotFoundError extends NotFoundError { @IsString() name = "GroupContactNotFoundError" diff --git a/src/errors/RunnerErrors.ts b/src/errors/RunnerErrors.ts index 8250d17..06dc78f 100644 --- a/src/errors/RunnerErrors.ts +++ b/src/errors/RunnerErrors.ts @@ -26,27 +26,13 @@ export class RunnerIdsNotMatchingError extends NotAcceptableError { message = "The id's don't match!! \n And if you wanted to change a runner's id: This isn't allowed" } -export class RunnerOnlyOneGroupAllowedError extends NotAcceptableError { - @IsString() - name = "RunnerOnlyOneGroupAllowedError" - - @IsString() - message = "Runner's can only be part of one group (team or organisiation)! \n You provided an id for both." -} - +/** + * Error to throw when a runner is missing his group association. + */ export class RunnerGroupNeededError extends NotAcceptableError { @IsString() name = "RunnerGroupNeededError" @IsString() message = "Runner's need to be part of one group (team or organisiation)! \n You provided neither." -} - - -export class RunnerGroupNotFoundError extends NotFoundError { - @IsString() - name = "RunnerGroupNotFoundError" - - @IsString() - message = "The group you provided couldn't be located in the system. \n Please check your request." } \ No newline at end of file diff --git a/src/errors/RunnerGroupErrors.ts b/src/errors/RunnerGroupErrors.ts new file mode 100644 index 0000000..ed9624c --- /dev/null +++ b/src/errors/RunnerGroupErrors.ts @@ -0,0 +1,14 @@ +import { IsString } from 'class-validator'; +import { NotFoundError } from 'routing-controllers'; + +/** + * Error to throw when a runner group couldn't be found. + * Implemented this ways to work with the json-schema conversion for openapi. + */ +export class RunnerGroupNotFoundError extends NotFoundError { + @IsString() + name = "RunnerGroupNotFoundError" + + @IsString() + message = "RunnerGroup not found!" +} \ No newline at end of file diff --git a/src/errors/RunnerOrganisationErrors.ts b/src/errors/RunnerOrganisationErrors.ts index 65736b1..040befb 100644 --- a/src/errors/RunnerOrganisationErrors.ts +++ b/src/errors/RunnerOrganisationErrors.ts @@ -50,6 +50,9 @@ export class RunnerOrganisationHasTeamsError extends NotAcceptableError { message = "This organisation still has teams associated with it. \n If you want to delete this organisation with all it's runners and teams ass `?force` to your query." } +/** + * Error to throw, when a provided runnerOrganisation doesn't belong to the accepted types. + */ export class RunnerOrganisationWrongTypeError extends NotAcceptableError { @IsString() name = "RunnerOrganisationWrongTypeError" diff --git a/src/errors/UserErrors.ts b/src/errors/UserErrors.ts index 4c9e98b..cfceff1 100644 --- a/src/errors/UserErrors.ts +++ b/src/errors/UserErrors.ts @@ -1,16 +1,6 @@ import { IsString } from 'class-validator'; import { NotAcceptableError, NotFoundError } from 'routing-controllers'; -/** - * Error to throw when a usergroup couldn't be found. - */ -export class UserGroupNotFoundError extends NotFoundError { - @IsString() - name = "UserGroupNotFoundError" - - @IsString() - message = "User Group not found!" -} /** * Error to throw when no username or email is set diff --git a/src/models/actions/CreateRunner.ts b/src/models/actions/CreateRunner.ts index 4e5f3e9..f3611ce 100644 --- a/src/models/actions/CreateRunner.ts +++ b/src/models/actions/CreateRunner.ts @@ -1,6 +1,6 @@ import { IsInt } from 'class-validator'; import { getConnectionManager } from 'typeorm'; -import { RunnerGroupNotFoundError } from '../../errors/RunnerErrors'; +import { RunnerGroupNotFoundError } from '../../errors/RunnerGroupErrors'; import { RunnerOrganisationWrongTypeError } from '../../errors/RunnerOrganisationErrors'; import { RunnerTeamNeedsParentError } from '../../errors/RunnerTeamErrors'; import { Runner } from '../entities/Runner'; diff --git a/src/models/actions/CreateUser.ts b/src/models/actions/CreateUser.ts index fb7841a..ff6771a 100644 --- a/src/models/actions/CreateUser.ts +++ b/src/models/actions/CreateUser.ts @@ -2,7 +2,8 @@ import * as argon2 from "argon2"; import { IsEmail, IsOptional, IsPhoneNumber, IsString } from 'class-validator'; import { getConnectionManager } from 'typeorm'; import * as uuid from 'uuid'; -import { UserGroupNotFoundError, UsernameOrEmailNeededError } from '../../errors/UserErrors'; +import { UsernameOrEmailNeededError } from '../../errors/UserErrors'; +import { UserGroupNotFoundError } from '../../errors/UserGroupErrors'; import { User } from '../entities/User'; import { UserGroup } from '../entities/UserGroup';