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(); for (let team of org.teams) { this.teams.push(new ResponseSelfServiceTeam(team)); } } }