| @@ -4,8 +4,10 @@ import { getConnectionManager, Repository } from 'typeorm'; | ||||
| import { RunnerOrganizationHasRunnersError, RunnerOrganizationHasTeamsError, RunnerOrganizationIdsNotMatchingError, RunnerOrganizationNotFoundError } from '../errors/RunnerOrganizationErrors'; | ||||
| import { CreateRunnerOrganization } from '../models/actions/create/CreateRunnerOrganization'; | ||||
| import { UpdateRunnerOrganization } from '../models/actions/update/UpdateRunnerOrganization'; | ||||
| import { Runner } from '../models/entities/Runner'; | ||||
| import { RunnerOrganization } from '../models/entities/RunnerOrganization'; | ||||
| import { ResponseEmpty } from '../models/responses/ResponseEmpty'; | ||||
| import { ResponseRunner } from '../models/responses/ResponseRunner'; | ||||
| import { ResponseRunnerOrganization } from '../models/responses/ResponseRunnerOrganization'; | ||||
| import { RunnerController } from './RunnerController'; | ||||
| import { RunnerTeamController } from './RunnerTeamController'; | ||||
| @@ -48,6 +50,22 @@ export class RunnerOrganizationController { | ||||
| 		return new ResponseRunnerOrganization(runnerOrg); | ||||
| 	} | ||||
|  | ||||
| 	@Get('/:id/runners') | ||||
| 	@Authorized(["RUNNER:GET", "SCAN:GET"]) | ||||
| 	@ResponseSchema(ResponseRunner, { isArray: true }) | ||||
| 	@ResponseSchema(RunnerOrganizationNotFoundError, { statusCode: 404 }) | ||||
| 	@OpenAPI({ description: 'Lists all runners from this org and it\'s teams (if you don\'t provide the ?onlyDirect=true param). <br> This includes the runner\'s group and distance ran.' }) | ||||
| 	async getRunners(@Param('id') id: number, @QueryParam('onlyDirect') onlyDirect: boolean) { | ||||
| 		let responseRunners: ResponseRunner[] = new Array<ResponseRunner>(); | ||||
| 		let runners: Runner[]; | ||||
| 		if (!onlyDirect) { runners = (await this.runnerOrganizationRepository.findOne({ id: id }, { relations: ['runners', 'runners.group', 'runners.scans', 'runners.scans.track', 'teams', 'teams.runners', 'teams.runners.group', 'teams.runners.scans', 'teams.runners.scans.track'] })).allRunners; } | ||||
| 		else { runners = (await this.runnerOrganizationRepository.findOne({ id: id }, { relations: ['runners', 'runners.group', 'runners.scans', 'runners.scans.track'] })).runners; } | ||||
| 		runners.forEach(runner => { | ||||
| 			responseRunners.push(new ResponseRunner(runner)); | ||||
| 		}); | ||||
| 		return responseRunners; | ||||
| 	} | ||||
|  | ||||
| 	@Post() | ||||
| 	@Authorized("ORGANIZATION:CREATE") | ||||
| 	@ResponseSchema(ResponseRunnerOrganization) | ||||
|   | ||||
		Reference in New Issue
	
	Block a user