35 lines
1001 B
TypeScript
35 lines
1001 B
TypeScript
import { IsInt, IsNotEmpty, IsOptional, IsString } from 'class-validator';
|
|
import { getConnectionManager } from 'typeorm';
|
|
import { GroupContactNotFoundError } from '../../../errors/GroupContactErrors';
|
|
import { GroupContact } from '../../entities/GroupContact';
|
|
|
|
/**
|
|
* This classed is used to create a new RunnerGroup entity from a json body (post request).
|
|
*/
|
|
export abstract class CreateRunnerGroup {
|
|
/**
|
|
* The new group's name.
|
|
*/
|
|
@IsNotEmpty()
|
|
@IsString()
|
|
name: string;
|
|
|
|
/**
|
|
* The new group's contact's id.
|
|
* Optional
|
|
*/
|
|
@IsInt()
|
|
@IsOptional()
|
|
contact?: number;
|
|
|
|
/**
|
|
* Gets the new group's contact by it's id.
|
|
*/
|
|
public async getContact(): Promise<GroupContact> {
|
|
if (!this.contact) { return null; }
|
|
let contact = await getConnectionManager().get().getRepository(GroupContact).findOne({ id: this.contact });
|
|
if (!contact) { throw new GroupContactNotFoundError; }
|
|
return contact;
|
|
|
|
}
|
|
} |