Moved to a "cleaner" directory structure

ref #11
This commit is contained in:
Nicolai Ort 2020-12-03 20:38:47 +01:00
parent 3a04bb54bd
commit e8727ca922
27 changed files with 145 additions and 145 deletions

View File

@ -8,5 +8,5 @@ export default {
username: process.env.DB_USER, username: process.env.DB_USER,
password: process.env.DB_PASSWORD, password: process.env.DB_PASSWORD,
database: process.env.DB_NAME, database: process.env.DB_NAME,
entities: ["src/models/*.ts"] entities: ["src/models/entities/*.ts"]
}; };

View File

@ -2,9 +2,9 @@ import { JsonController, Param, Body, Get, Post, Put, Delete, OnUndefined } from
import { getConnectionManager, Repository } from 'typeorm'; import { getConnectionManager, Repository } from 'typeorm';
import { EntityFromBody } from 'typeorm-routing-controllers-extensions'; import { EntityFromBody } from 'typeorm-routing-controllers-extensions';
import { OpenAPI, ResponseSchema } from 'routing-controllers-openapi'; import { OpenAPI, ResponseSchema } from 'routing-controllers-openapi';
import { Runner } from '../models/Runner'; import { Runner } from '../models/entities/Runner';
import { RunnerGroupNeededError, RunnerGroupNotFoundError, RunnerIdsNotMatchingError, RunnerNotFoundError, RunnerOnlyOneGroupAllowedError } from '../errors/RunnerErrors'; import { RunnerGroupNeededError, RunnerGroupNotFoundError, RunnerIdsNotMatchingError, RunnerNotFoundError, RunnerOnlyOneGroupAllowedError } from '../errors/RunnerErrors';
import { CreateRunner } from '../models/CreateRunner'; import { CreateRunner } from '../models/creation/CreateRunner';
@JsonController('/runners') @JsonController('/runners')

View File

@ -2,10 +2,10 @@ import { JsonController, Param, Body, Get, Post, Put, Delete, OnUndefined } from
import { getConnectionManager, Repository } from 'typeorm'; import { getConnectionManager, Repository } from 'typeorm';
import { EntityFromBody } from 'typeorm-routing-controllers-extensions'; import { EntityFromBody } from 'typeorm-routing-controllers-extensions';
import { OpenAPI, ResponseSchema } from 'routing-controllers-openapi'; import { OpenAPI, ResponseSchema } from 'routing-controllers-openapi';
import { RunnerOrganisation } from '../models/RunnerOrganisation'; import { RunnerOrganisation } from '../models/entities/RunnerOrganisation';
import { RunnerOrganisationIdsNotMatchingError, RunnerOrganisationNotFoundError } from '../errors/RunnerOrganisationErrors'; import { RunnerOrganisationIdsNotMatchingError, RunnerOrganisationNotFoundError } from '../errors/RunnerOrganisationErrors';
import { CreateRunnerOrganisation } from '../models/CreateRunnerOrganisation'; import { CreateRunnerOrganisation } from '../models/creation/CreateRunnerOrganisation';
import { RunnerGroup } from '../models/RunnerGroup'; import { RunnerGroup } from '../models/entities/RunnerGroup';
@JsonController('/organisations') @JsonController('/organisations')

View File

@ -2,10 +2,10 @@ import { JsonController, Param, Body, Get, Post, Put, Delete, NotFoundError, OnU
import { getConnectionManager, Repository } from 'typeorm'; import { getConnectionManager, Repository } from 'typeorm';
import { EntityFromBody } from 'typeorm-routing-controllers-extensions'; import { EntityFromBody } from 'typeorm-routing-controllers-extensions';
import { OpenAPI, ResponseSchema } from 'routing-controllers-openapi'; import { OpenAPI, ResponseSchema } from 'routing-controllers-openapi';
import { Track } from '../models/Track'; import { Track } from '../models/entities/Track';
import { IsInt, IsNotEmpty, IsPositive, IsString } from 'class-validator'; import { IsInt, IsNotEmpty, IsPositive, IsString } from 'class-validator';
import { TrackIdsNotMatchingError, TrackNotFoundError } from "../errors/TrackErrors"; import { TrackIdsNotMatchingError, TrackNotFoundError } from "../errors/TrackErrors";
import { CreateTrack } from '../models/CreateTrack'; import { CreateTrack } from '../models/creation/CreateTrack';
@JsonController('/tracks') @JsonController('/tracks')
//@Authorized("TRACKS:read") //@Authorized("TRACKS:read")

View File

@ -1,11 +1,11 @@
import { IsEmail, IsInt, IsNotEmpty, IsOptional, IsPhoneNumber, IsPositive, IsString } from 'class-validator'; import { IsEmail, IsInt, IsNotEmpty, IsOptional, IsPhoneNumber, IsPositive, IsString } from 'class-validator';
import { Runner } from '../models/Runner'; import { Runner } from '../entities/Runner';
import { getConnectionManager, Repository } from 'typeorm'; import { getConnectionManager, Repository } from 'typeorm';
import { group } from 'console'; import { group } from 'console';
import { RunnerOnlyOneGroupAllowedError, RunnerGroupNeededError, RunnerGroupNotFoundError } from '../errors/RunnerErrors'; import { RunnerOnlyOneGroupAllowedError, RunnerGroupNeededError, RunnerGroupNotFoundError } from '../../errors/RunnerErrors';
import { RunnerOrganisation } from './RunnerOrganisation'; import { RunnerOrganisation } from '../entities/RunnerOrganisation';
import { RunnerTeam } from './RunnerTeam'; import { RunnerTeam } from '../entities/RunnerTeam';
import { RunnerGroup } from './RunnerGroup'; import { RunnerGroup } from '../entities/RunnerGroup';
import { Address } from 'cluster'; import { Address } from 'cluster';
export class CreateRunner { export class CreateRunner {

View File

@ -1,5 +1,5 @@
import { IsString } from 'class-validator'; import { IsString } from 'class-validator';
import { RunnerOrganisation } from './RunnerOrganisation'; import { RunnerOrganisation } from '../entities/RunnerOrganisation';
export class CreateRunnerOrganisation { export class CreateRunnerOrganisation {
@IsString() @IsString()

View File

@ -1,5 +1,5 @@
import { IsInt, IsNotEmpty, IsPositive, IsString } from 'class-validator'; import { IsInt, IsNotEmpty, IsPositive, IsString } from 'class-validator';
import { Track } from './Track'; import { Track } from '../entities/Track';
export class CreateTrack { export class CreateTrack {
/** /**

View File

@ -1,130 +1,130 @@
import { Entity, Column, OneToMany, ManyToOne, PrimaryGeneratedColumn, Generated, Unique, JoinTable, ManyToMany } from "typeorm"; import { Entity, Column, OneToMany, ManyToOne, PrimaryGeneratedColumn, Generated, Unique, JoinTable, ManyToMany } from "typeorm";
import { IsBoolean, IsEmail, IsInt, IsNotEmpty, IsOptional, IsPhoneNumber, IsString, isUUID, } from "class-validator"; import { IsBoolean, IsEmail, IsInt, IsNotEmpty, IsOptional, IsPhoneNumber, IsString, isUUID, } from "class-validator";
import { UserGroup } from './UserGroup'; import { UserGroup } from './UserGroup';
import { Permission } from './Permission'; import { Permission } from './Permission';
import { UserAction } from './UserAction'; import { UserAction } from './UserAction';
/** /**
* Defines a admin user. * Defines a admin user.
*/ */
@Entity() @Entity()
export class User { export class User {
/** /**
* autogenerated unique id (primary key). * autogenerated unique id (primary key).
*/ */
@PrimaryGeneratedColumn() @PrimaryGeneratedColumn()
@IsOptional() @IsOptional()
@IsInt() @IsInt()
id: number; id: number;
/** /**
* autogenerated uuid * autogenerated uuid
*/ */
@IsOptional() @IsOptional()
@IsInt() @IsInt()
@Generated("uuid") @Generated("uuid")
uuid: string; uuid: string;
/** /**
* user email * user email
*/ */
@IsEmail() @IsEmail()
email: string; email: string;
/** /**
* user phone * user phone
*/ */
@IsPhoneNumber("ZZ") @IsPhoneNumber("ZZ")
@IsOptional() @IsOptional()
phone: string; phone: string;
/** /**
* username * username
*/ */
@IsString() @IsString()
username: string; username: string;
/** /**
* firstname * firstname
*/ */
@IsString() @IsString()
@IsNotEmpty() @IsNotEmpty()
firstname: string; firstname: string;
/** /**
* middlename * middlename
*/ */
@IsString() @IsString()
@IsOptional() @IsOptional()
middlename: string; middlename: string;
/** /**
* lastname * lastname
*/ */
@IsString() @IsString()
@IsNotEmpty() @IsNotEmpty()
lastname: string; lastname: string;
/** /**
* password * password
*/ */
@IsString() @IsString()
@IsNotEmpty() @IsNotEmpty()
password: string; password: string;
/** /**
* permissions * permissions
*/ */
@ManyToOne(() => Permission, permission => permission.users, { nullable: true }) @ManyToOne(() => Permission, permission => permission.users, { nullable: true })
permissions: Permission[]; permissions: Permission[];
/** /**
* groups * groups
*/ */
@ManyToMany(() => UserGroup) @ManyToMany(() => UserGroup)
@JoinTable() @JoinTable()
groups: UserGroup[]; groups: UserGroup[];
/** /**
* is user enabled? * is user enabled?
*/ */
@IsBoolean() @IsBoolean()
enabled: boolean; enabled: boolean;
/** /**
* jwt refresh count * jwt refresh count
*/ */
@IsInt() @IsInt()
@Column({ default: 1 }) @Column({ default: 1 })
refreshTokenCount: number; refreshTokenCount: number;
/** /**
* profilepic * profilepic
*/ */
@IsString() @IsString()
profilepic: string; profilepic: string;
/** /**
* actions * actions
*/ */
@OneToMany(() => UserAction, action => action.user) @OneToMany(() => UserAction, action => action.user)
actions: UserAction actions: UserAction
/** /**
* calculate all permissions * calculate all permissions
*/ */
public get calc_permissions(): Permission[] { public get calc_permissions(): Permission[] {
let final_permissions = [] let final_permissions = []
this.groups.forEach((permission) => { this.groups.forEach((permission) => {
if (!final_permissions.includes(permission)) { if (!final_permissions.includes(permission)) {
final_permissions.push(permission) final_permissions.push(permission)
} }
}) })
this.permissions.forEach((permission) => { this.permissions.forEach((permission) => {
if (!final_permissions.includes(permission)) { if (!final_permissions.includes(permission)) {
final_permissions.push(permission) final_permissions.push(permission)
} }
}) })
return final_permissions return final_permissions
} }
} }