ArenMg/src/main/java/fr/lirmm/aren/ws/rest/VMTeamRESTFacade.java

91 lines
1.9 KiB
Java

package fr.lirmm.aren.ws.rest;
import fr.lirmm.aren.model.Team;
import fr.lirmm.aren.model.User;
import fr.lirmm.aren.model.vm.VMTeam;
import fr.lirmm.aren.service.UserService;
import fr.lirmm.aren.service.vm.VMTeamService;
import javax.annotation.security.PermitAll;
import javax.annotation.security.RolesAllowed;
import javax.enterprise.context.RequestScoped;
import javax.inject.Inject;
import javax.ws.rs.PUT;
import javax.ws.rs.Path;
import javax.ws.rs.PathParam;
import java.util.Set;
import java.util.SortedSet;
/**
* @author ANDRIAMBOLAHARIMIHANTA Havana on 11/07/2021
* @project aren-1
*/
@RequestScoped
@Path("vm/teams")
public class VMTeamRESTFacade extends AbstractRESTFacade<VMTeam>{
@Inject
VMTeamService teamService ;
@Inject
UserService userService ;
/**
*
* @return
*/
@Override
protected VMTeamService getService(){
return teamService ;
}
/**
*
* @param team
* @return
*/
@Override
@PermitAll
public VMTeam create(VMTeam team){
SortedSet<User> members=team.getMembers() ;
VMTeam teamRes= teamService.insert(team) ;
members.forEach(member->{
teamRes.addUser(userService.getReference(member.getId()));
teamService.edit(teamRes);
});
return teamRes ;
}
/**
*
* @param id of the Entity to update
* @param team
* @return
*/
@Override
public VMTeam edit(Long id, VMTeam team){
return super.edit(id,team) ;
}
/**
*
* @return
*/
@Override
@PermitAll
public Set<VMTeam> findAll() {
Set<VMTeam> teams= teamService.findAll();
return teams ;
}
/**
*
* @param id of the Entity to fetch
* @return
*/
@Override
@PermitAll
public VMTeam find(Long id) {
return teamService.find(id);
}
}