View Javadoc
1   package net.avcompris.examples.users3.core.api;
2   
3   import static net.avcompris.examples.shared3.Permission.ANY;
4   import static net.avcompris.examples.shared3.Permission.CREATE_ANY_USER;
5   import static net.avcompris.examples.shared3.Permission.DELETE_ANY_USER;
6   import static net.avcompris.examples.shared3.Permission.GET_ANY_USER;
7   import static net.avcompris.examples.shared3.Permission.GET_USER_ME;
8   import static net.avcompris.examples.shared3.Permission.QUERY_ALL_USERS;
9   import static net.avcompris.examples.shared3.Permission.UPDATE_ANY_USER;
10  import static net.avcompris.examples.shared3.Permission.UPDATE_USER_ME;
11  
12  import javax.annotation.Nullable;
13  
14  import net.avcompris.commons3.api.User;
15  import net.avcompris.commons3.api.exception.ServiceException;
16  import net.avcompris.examples.shared3.core.api.Permissions;
17  import net.avcompris.examples.users3.api.UserCreate;
18  import net.avcompris.examples.users3.api.UserInfo;
19  import net.avcompris.examples.users3.api.UserUpdate;
20  import net.avcompris.examples.users3.api.UsersInfo;
21  import net.avcompris.examples.users3.api.UsersQuery;
22  
23  public interface UsersService {
24  
25  	@Permissions(ANY)
26  	@Nullable
27  	UsersQuery validateUsersQuery(String correlationId, User user, //
28  			@Nullable String q, //
29  			@Nullable String sort, //
30  			@Nullable Integer start, //
31  			@Nullable Integer limit, //
32  			@Nullable String expand //
33  	) throws ServiceException;
34  
35  	@Permissions(QUERY_ALL_USERS)
36  	UsersInfo getUsers(String correlationId, User user, //
37  			@Nullable UsersQuery query //
38  	) throws ServiceException;
39  
40  	@Permissions(GET_ANY_USER)
41  	boolean hasUser(String correlationId, User user, //
42  			String username //
43  	) throws ServiceException;
44  
45  	@Permissions(CREATE_ANY_USER)
46  	UserInfo createUser(String correlationId, User user, //
47  			String username, //
48  			UserCreate create //
49  	) throws ServiceException;
50  
51  	@Permissions(GET_ANY_USER)
52  	UserInfo getUser(String correlationId, User user, //
53  			String username //
54  	) throws ServiceException;
55  
56  	@Permissions(UPDATE_ANY_USER)
57  	UserInfo updateUser(String correlationId, User user, //
58  			String username, //
59  			UserUpdate update //
60  	) throws ServiceException;
61  
62  	@Permissions(DELETE_ANY_USER)
63  	void deleteUser(String correlationId, User user, //
64  			String username //
65  	) throws ServiceException;
66  
67  	@Permissions(GET_USER_ME)
68  	UserInfo getUserMe(String correlationId, User user) throws ServiceException;
69  
70  	@Permissions(UPDATE_USER_ME)
71  	UserInfo updateUserMe(String correlationId, User user, //
72  			UserUpdate update //
73  	) throws ServiceException;
74  }