parent
63f9523766
commit
e29c17a29a
36
src/models/RunnerGroup.ts
Normal file
36
src/models/RunnerGroup.ts
Normal file
@ -0,0 +1,36 @@
|
||||
import { IsInt, IsNotEmpty, IsObject, IsOptional, IsString } from "class-validator";
|
||||
|
||||
/**
|
||||
* Defines the runner group class - a simplified version of the backend's ResponseRunnerTeam/-Organization
|
||||
*/
|
||||
export abstract class RunnerGroup {
|
||||
/**
|
||||
* The group's id.
|
||||
*/
|
||||
@IsInt()
|
||||
@IsNotEmpty()
|
||||
id: number;;
|
||||
|
||||
/**
|
||||
* The group's name.
|
||||
*/
|
||||
@IsString()
|
||||
@IsNotEmpty()
|
||||
name: string;
|
||||
|
||||
/**
|
||||
* The group's parent group.
|
||||
* If it is set this implies that the object is a team.
|
||||
*/
|
||||
@IsObject()
|
||||
@IsOptional()
|
||||
parentGroup?: RunnerGroup
|
||||
|
||||
/**
|
||||
* Returns the groups full name in the format: org.name/team.name (or just org).
|
||||
*/
|
||||
public get fullName(): string {
|
||||
if (!this.parentGroup) { return this.name; }
|
||||
return `${this.name}/${this.parentGroup.fullName}`;
|
||||
}
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user