Kenmegne
7 days ago 23a46b4be35277e06ec89f48730eeb694e686be8
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
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<User, UserDto, Long, User>,
        AbstractReadWithCriteriaEntityIFaces<User, UserDto, Long>, 
        AbstractGenericReportingIFaces<CriteriaFormRequest, Long> {
    
    @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<CriteriaFormRequest> 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<CriteriaFormRequest> 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<CriteriaFormRequest> 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<CriteriaFormRequest> reportConfiguration);
    
}