package com.megatim.fdxconsultation.service.impl.documents; import com.megatim.fdxconsultation.core.ifaces.administration.UserManager; import com.megatim.fdxconsultation.core.ifaces.documents.CategoryManager; import com.megatim.fdxconsultation.model.administration.User; import com.megatim.fdxconsultation.model.documents.Category; import com.megatim.fdxconsultation.model.mappers.MapStructMapper; import com.megatim.fdxconsultation.service.ifaces.documents.CategoryRS; import com.megatim.fdxconsultation.tools.context.AppCommonContext; import com.mgt.rs.security.core.common.AuthenticatedUser; import com.mgt.rs.security.core.common.SecuredClass; import java.util.List; import java.util.stream.Collectors; import javax.enterprise.event.Observes; import javax.inject.Inject; import javax.ws.rs.Path; import javax.ws.rs.core.HttpHeaders; import javax.ws.rs.core.Response; /** * * @author Gabuntu */ @SecuredClass(module = AppCommonContext.MODULE_DOCUMENTATION, path = "Catégories", description = "Catégories") @Path("category") public class CategoryRSImpl implements CategoryRS { @Inject private CategoryManager categoryManager; @Inject private UserManager userManager; @Inject private MapStructMapper mapper; private User connectedUser; public void handleAuthenticationEvent(@Observes @AuthenticatedUser String username) { connectedUser = userManager.recuperUtilisateur(username); } @Override public Response save(HttpHeaders headers, Category entity) { Category c = categoryManager.add(entity, connectedUser); return Response.ok(mapper.categoryToCategorySlimDto(c)).build(); } @Override public Response update(HttpHeaders headers, Long id, Category entity) { Category c = categoryManager.update(id, entity, connectedUser); return Response.ok(mapper.categoryToCategorySlimDto(c)).build(); } @Override public void delete(HttpHeaders headers, Long id) { Category c = categoryManager.delete(id, connectedUser); } @Override public Response all(HttpHeaders headers) { List categories = categoryManager.loadAll(); return Response.ok(categories.stream().map(c -> mapper.categoryToCategoryDto(c)).collect(Collectors.toList())).build(); } }