teamModel = $teamModel; } /** * @param array $req_params * @return HttpResponse */ public function listTeams(array $req_params): HttpResponse { return APIControl::runCheckedFrom($req_params, [ 'start' => [DefaultValidators::isUnsignedInteger()], 'n' => [DefaultValidators::isUnsignedInteger()], ], function (HttpRequest $req) { $teams = $this->teamModel->listAll(intval($req['start']), intval($req['n'])); return new JsonHttpResponse([ "totalCount" => $this->teamModel->countTeam(), "teams" => $teams, ]); }); } public function addTeam(): HttpResponse { return APIControl::runChecked([ 'name' => [DefaultValidators::name()], 'picture' => [DefaultValidators::isURL()], 'mainColor' => [DefaultValidators::hexColor()], 'secondaryColor' => [DefaultValidators::hexColor()], ], function (HttpRequest $req) { $this->teamModel->createTeam($req['name'], $req['picture'], $req['mainColor'], $req['secondaryColor']); return HttpResponse::fromCode(HttpCodes::OK); }); } public function deleteTeamSelected(): HttpResponse { return APIControl::runChecked([ 'teams' => [], ], function (HttpRequest $req) { $this->teamModel->deleteTeamSelected($req['teams']); return HttpResponse::fromCode(HttpCodes::OK); }); } public function updateTeam(int $id): HttpResponse { return APIControl::runChecked([ 'name' => [DefaultValidators::name()], 'picture' => [DefaultValidators::isURL()], 'mainColor' => [DefaultValidators::hexColor()], 'secondaryColor' => [DefaultValidators::hexColor()], ], function (HttpRequest $req) { $this->teamModel->editTeam($req['id'], $req['name'], $req['picture'], $req['mainColor'], $req['secondaryColor']); return HttpResponse::fromCode(HttpCodes::OK); }); } }