package com.megatim.fdxconsultation.service.ifaces.administration; import com.megatim.fdxcommons.core.ifaces.interceptor.LoggingInterceptorBinding; import com.megatim.fdxcommons.model.pojo.CriteriaFormRequest; import com.megatim.fdxconsultation.model.administration.User; import com.megatim.fdxconsultation.model.dto.EditPasswordDto; import com.megatim.fdxconsultation.model.dto.UserDto; import com.megatim.fdxconsultation.service.ifaces.abstracts.AbstractGenericCrudResourceIFaces; import com.megatim.fdxconsultation.service.ifaces.abstracts.AbstractGenericReportingIFaces; import com.megatim.fdxconsultation.service.ifaces.abstracts.AbstractReadWithCriteriaEntityIFaces; import com.megatim.reporting.adhoc.dto.ReportConfiguration; import com.mgt.rs.security.core.common.Secured; import javax.servlet.http.HttpServletRequest; import javax.validation.Valid; import javax.ws.rs.Consumes; import javax.ws.rs.GET; import javax.ws.rs.POST; import javax.ws.rs.Path; import javax.ws.rs.PathParam; import javax.ws.rs.Produces; import javax.ws.rs.core.Context; import javax.ws.rs.core.HttpHeaders; import javax.ws.rs.core.MediaType; import javax.ws.rs.core.Response; /** * Interface du service JAX-RS * * @since Fri Sep 27 08:15:34 GMT+01:00 2019 * */ public interface UserRS extends AbstractGenericCrudResourceIFaces, AbstractReadWithCriteriaEntityIFaces, AbstractGenericReportingIFaces { @POST @Consumes({MediaType.APPLICATION_JSON}) @Produces({MediaType.APPLICATION_JSON}) @Path("add") @Secured(action = "ajouter") @LoggingInterceptorBinding(message = "Enregistrement d'un nouvel utilisateur : [1.userName]") @Override public Response save(@Context HttpHeaders headers, @Valid User entity); @POST @Consumes({MediaType.APPLICATION_JSON}) @Produces({MediaType.APPLICATION_JSON}) @Path("update/{id}") @Secured(action = "modifier") @LoggingInterceptorBinding(message = "Mise à jour de l'utilisateur : [2.userName]") @Override public Response update(@Context HttpHeaders headers, @PathParam("id") Long id, @Valid User entity); @POST @Consumes({MediaType.APPLICATION_JSON}) @Produces({MediaType.APPLICATION_JSON}) @Path("delete/{id}") @Secured(action = "supprimer") @LoggingInterceptorBinding(message = "Suppression de l'utilisateur : [2.userName]") @Override public Response delete(@Context HttpHeaders headers, @PathParam("id") Long id); @POST @Consumes({MediaType.APPLICATION_JSON}) @Produces({MediaType.APPLICATION_JSON}) @Path("edit-password/{username}") @Secured(actions = {"ajouter", "modifier", "supprimer", "consulter"}) @LoggingInterceptorBinding(message = "Modification du mot de passe de l'utilisateur : {username}") public Response editPassword(@Context HttpHeaders headers, @PathParam("username") String username, @Valid EditPasswordDto editPasswordDto); @POST @Produces({MediaType.APPLICATION_JSON}) @Path("findwithpagination/{pageNumber}/{pagesize}") @Secured(actions = {"ajouter", "modifier", "supprimer", "consulter"}) @LoggingInterceptorBinding(message = "Consultation liste des utilisateurs") @Override public Response findWithPagination(@Context HttpHeaders headers, @PathParam("pageNumber") Integer pageNumber, @PathParam("pagesize") Integer pageSize, CriteriaFormRequest criteriaFormRequest); @POST @Produces({MediaType.APPLICATION_JSON}) @Path("count") @Secured(actions = {"ajouter", "modifier", "supprimer", "consulter"}) @Override public Long count(@Context HttpHeaders headers, CriteriaFormRequest criteriaFormRequest); @GET @Produces({MediaType.APPLICATION_JSON}) @Path("search-columns") @Secured(actions = {"ajouter", "modifier", "supprimer", "consulter"}) @Override public Response getSearchColumns(@Context HttpHeaders headers); @POST @Produces({MediaType.APPLICATION_JSON}) @Secured(actions = {"ajouter", "modifier", "supprimer", "consulter"}) @Path("find-all") @Override public Response findAll(@Context HttpHeaders headers, CriteriaFormRequest criteriaFormRequest); @POST @Produces(MediaType.APPLICATION_OCTET_STREAM) @Path("export/pdf/all") @Secured(action = "exporter") @LoggingInterceptorBinding(message = "Export pdf liste des utilisateurs") @Override public Response printAll(@Context HttpHeaders headers, ReportConfiguration reportConfiguration); @POST @Consumes({MediaType.APPLICATION_JSON}) @Produces(MediaType.APPLICATION_OCTET_STREAM) @Path("export/pdf/detail/{id}") @Secured(action = "exporter") //@LoggingInterceptorBinding(message = "Impression détail utilisateur") @Override public Response printOne(@Context HttpHeaders headers, @Context HttpServletRequest request, @PathParam("id")Long id, ReportConfiguration reportConfiguration); @POST @Produces(MediaType.APPLICATION_OCTET_STREAM) @Path("export/excel/all") @Secured(action = "exporter") @LoggingInterceptorBinding(message = "Export excel liste des utilisateurs") @Override public Response exportExcelAll(@Context HttpHeaders headers, ReportConfiguration reportConfiguration); @POST @Produces(MediaType.APPLICATION_OCTET_STREAM) @Path("export/excel/detail/{id}") @Secured(action = "exporter") @Override public Response exportExcelOne(@Context HttpHeaders headers, @Context HttpServletRequest request, @PathParam("id") Long id, ReportConfiguration reportConfiguration); }