38 lines
1.2 KiB
TypeScript
38 lines
1.2 KiB
TypeScript
import { IsArray, IsNotEmpty, IsString } from 'class-validator';
|
|
import { RunnerOrganization } from '../entities/RunnerOrganization';
|
|
import { ResponseObjectType } from '../enums/ResponseObjectType';
|
|
import { IResponse } from './IResponse';
|
|
import { ResponseSelfServiceTeam } from './ResponseSelfServiceTeam';
|
|
|
|
/**
|
|
* Defines the runner selfservice organization response.
|
|
* Why? B/C runner's are not allowed to view all information available to admin users.
|
|
*/
|
|
export class ResponseSelfServiceOrganisation implements IResponse {
|
|
/**
|
|
* The responseType.
|
|
* This contains the type of class/entity this response contains.
|
|
*/
|
|
responseType: ResponseObjectType = ResponseObjectType.SELFSERVICEORGANIZATION;
|
|
|
|
/**
|
|
* The org's name.
|
|
*/
|
|
@IsNotEmpty()
|
|
@IsString()
|
|
name: string;
|
|
|
|
/**
|
|
* The org's teams (just containing name and id).
|
|
*/
|
|
@IsArray()
|
|
teams: ResponseSelfServiceTeam[];
|
|
|
|
public constructor(org: RunnerOrganization) {
|
|
this.name = org.name;
|
|
this.teams = new Array<ResponseSelfServiceTeam>();
|
|
for (let team of org.teams) {
|
|
this.teams.push(new ResponseSelfServiceTeam(team));
|
|
}
|
|
}
|
|
} |