@ -31,10 +31,6 @@ class TeamController {
return ViewHttpResponse::twig("insert_team.html.twig", []);
return ViewHttpResponse::twig("insert_team.html.twig", []);
}
}
/**
/**
* @param SessionHandle $session
* @param SessionHandle $session
* @return ViewHttpResponse the team panel to delete a member
* @return ViewHttpResponse the team panel to delete a member
@ -137,7 +133,10 @@ class TeamController {
'team' => [
'team' => [
"info" => $result->getInfo(),
"info" => $result->getInfo(),
"members" => $result->listMembers()
"members" => $result->listMembers()
], 'isCoach' => $role]);
],
'isCoach' => $role,
'currentUserId'=>$session->getAccount()->getUser()->getId()]
);
}
}
}
}
@ -145,8 +144,8 @@ class TeamController {
* @param SessionHandle $session
* @param SessionHandle $session
* @return ViewHttpResponse the team panel to add a member
* @return ViewHttpResponse the team panel to add a member
*/
*/
public function displayAddMember(SessionHandle $session): ViewHttpResponse {
public function displayAddMember(int $idTeam, SessionHandle $session): ViewHttpResponse {
return ViewHttpResponse::twig("add_member.html.twig", []);
return ViewHttpResponse::twig("add_member.html.twig", ['idTeam'=> $idTeam ]);
}
}
/**
/**
@ -159,12 +158,21 @@ class TeamController {
$errors = [];
$errors = [];
$request = HttpRequest::from($request, $errors, [
$request = HttpRequest::from($request, $errors, [
"team" => [Validators::isInteger()],
"email" => [Validators::email(), Validators::lenBetween(5, 256)],
"email" => [Validators::email(), Validators::lenBetween(5, 256)],
]);
]);
if(!empty($errors)){
$this->model->addMember($request['email'], $idTeam, $request['role']);
return ViewHttpResponse::twig('add_member.html.twig',['badEmail' => true,'idTeam'=> $idTeam]);
return ViewHttpResponse::redirect('/team/'.$idTeam);
}
$ret = $this->model->addMember($request['email'], $idTeam, $request['role']);
switch($ret){
case -1:
return ViewHttpResponse::twig('add_member.html.twig',['notFound' => true,'idTeam'=> $idTeam]);
case -2:
return ViewHttpResponse::twig('add_member.html.twig',['alreadyExisting' => true,'idTeam'=> $idTeam]);
default:
return ViewHttpResponse::redirect('/team/'.$idTeam);
}
}
}
/**
/**
@ -173,13 +181,12 @@ class TeamController {
* @param SessionHandle $session
* @param SessionHandle $session
* @return HttpResponse
* @return HttpResponse
*/
*/
public function deleteMember(array $request, SessionHandle $session): HttpResponse {
public function deleteMember(int $idTeam,int $idMember, SessionHandle $session): HttpResponse {
$errors = [];
$ret = $this->model->deleteMember($idMember,$idTeam);
$request = HttpRequest::from($request, $errors, [
if($ret == -1 || $session->getAccount()->getUser()->getId() == $idMember ){
"team" => [Validators::isInteger()],
return ViewHttpResponse::redirect('/');
"email" => [Validators::email(), Validators::lenBetween(5, 256)],
}
]);
return $this->displayTeam($ret,$session);
return $this->displayTeam($this->model->deleteMember($request['email'], intval($request['team'])), $session);
}
}
}
}