Changeset 4217 for DASISH/t5.6/backend/annotator-backend/trunk/annotator-backend/src/main/java/eu/dasish/annotation/backend/rest/UserResource.java
- Timestamp:
- 01/06/14 17:20:05 (10 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
DASISH/t5.6/backend/annotator-backend/trunk/annotator-backend/src/main/java/eu/dasish/annotation/backend/rest/UserResource.java
r4207 r4217 27 27 import java.util.UUID; 28 28 import javax.servlet.http.HttpServletRequest; 29 import javax.servlet.http.HttpServletResponse; 29 30 import javax.ws.rs.Consumes; 30 31 import javax.ws.rs.GET; … … 51 52 @Component 52 53 @Path("/users") 53 @Transactional(rollbackFor ={Exception.class, SQLException.class, IOException.class, ParserConfigurationException.class})54 @Transactional(rollbackFor = {Exception.class, SQLException.class, IOException.class, ParserConfigurationException.class}) 54 55 public class UserResource { 56 55 57 @Autowired 56 58 private DBIntegrityService dbIntegrityService; 57 59 @Context 58 60 private HttpServletRequest httpServletRequest; 61 @Context 62 private HttpServletResponse httpServletResponse; 59 63 @Context 60 64 private UriInfo uriInfo; … … 66 70 public UserResource() { 67 71 } 68 72 69 73 @GET 70 74 @Produces(MediaType.TEXT_XML) 71 75 @Path("{userid: " + BackendConstants.regExpIdentifier + "}") 72 @Secured("ROLE_USER") 73 @Transactional(readOnly =true)74 public JAXBElement<User> getUser(@PathParam("userid") String ExternalIdentifier) throws SQLException {75 76 @Secured("ROLE_USER") 77 @Transactional(readOnly = true) 78 public JAXBElement<User> getUser(@PathParam("userid") String ExternalIdentifier) throws SQLException, IOException { 79 dbIntegrityService.setServiceURI(uriInfo.getBaseUri().toString()); 76 80 final Number userID = dbIntegrityService.getUserInternalIdentifier(UUID.fromString(ExternalIdentifier)); 77 final User user = dbIntegrityService.getUser(userID); 78 return new ObjectFactory().createUser(user); 81 if (userID != null) { 82 final User user = dbIntegrityService.getUser(userID); 83 return new ObjectFactory().createUser(user); 84 } else { 85 httpServletResponse.sendError(HttpServletResponse.SC_NOT_FOUND, "The user with the given id is not found in the database"); 86 return null; 87 } 79 88 } 80 89 81 90 @GET 82 91 @Produces(MediaType.TEXT_XML) 83 92 @Path("/info") 84 @Secured("ROLE_USER") 85 @Transactional(readOnly =true)86 public JAXBElement<User> getUserByInfo(@QueryParam("email") String email) throws SQLException {93 @Secured("ROLE_USER") 94 @Transactional(readOnly = true) 95 public JAXBElement<User> getUserByInfo(@QueryParam("email") String email) throws SQLException, IOException { 87 96 dbIntegrityService.setServiceURI(uriInfo.getBaseUri().toString()); 88 97 final User user = dbIntegrityService.getUserByInfo(email); 89 return new ObjectFactory().createUser(user); 98 if (user != null) { 99 return new ObjectFactory().createUser(user); 100 } else { 101 httpServletResponse.sendError(HttpServletResponse.SC_NOT_FOUND, "The user with the given info is not found in the database"); 102 return null; 103 } 90 104 } 91 105 92 106 @GET 93 107 @Produces(MediaType.TEXT_XML) 94 108 @Path("{userid: " + BackendConstants.regExpIdentifier + "}/current") 95 @Secured("ROLE_USER") 96 @Transactional(readOnly =true)97 public JAXBElement<CurrentUserInfo> getCurrentUserInfo(@PathParam("userid") String ExternalIdentifier) {109 @Secured("ROLE_USER") 110 @Transactional(readOnly = true) 111 public JAXBElement<CurrentUserInfo> getCurrentUserInfo(@PathParam("userid") String ExternalIdentifier) throws IOException { 98 112 dbIntegrityService.setServiceURI(uriInfo.getBaseUri().toString()); 99 113 final Number userID = dbIntegrityService.getUserInternalIdentifier(UUID.fromString(ExternalIdentifier)); 100 final CurrentUserInfo userInfo = new CurrentUserInfo(); 101 userInfo.setRef(dbIntegrityService.getUserURI(userID)); 102 userInfo.setCurrentUser(ifLoggedIn(userID)); 103 return new ObjectFactory().createCurrentUserInfo(userInfo); 114 if (userID != null) { 115 final CurrentUserInfo userInfo = new CurrentUserInfo(); 116 userInfo.setRef(dbIntegrityService.getUserURI(userID)); 117 userInfo.setCurrentUser(ifLoggedIn(userID)); 118 return new ObjectFactory().createCurrentUserInfo(userInfo); 119 } else { 120 httpServletResponse.sendError(HttpServletResponse.SC_NOT_FOUND, "The user with the given id is not found in the database"); 121 return null; 122 } 104 123 } 105 124 106 125 @POST 107 126 @Consumes(MediaType.TEXT_XML) … … 110 129 @Secured("ROLE_ADMIN") 111 130 public JAXBElement<User> addUser(@PathParam("userid") String remoteId, User user) throws SQLException { 112 dbIntegrityService.setServiceURI(uriInfo.getBaseUri().toString()); 131 dbIntegrityService.setServiceURI(uriInfo.getBaseUri().toString()); 113 132 final Number userID = dbIntegrityService.addUser(user, remoteId); 114 133 final User addedUser = dbIntegrityService.getUser(userID); 115 134 return new ObjectFactory().createUser(addedUser); 116 135 } 117 136 118 137 @PUT 119 138 @Consumes(MediaType.TEXT_XML) … … 121 140 @Path("") 122 141 @Secured("ROLE_ADMIN") 123 public JAXBElement<User> updateUser(User user) {124 dbIntegrityService.setServiceURI(uriInfo.getBaseUri().toString()); 142 public JAXBElement<User> updateUser(User user) throws IOException{ 143 dbIntegrityService.setServiceURI(uriInfo.getBaseUri().toString()); 125 144 final Number userID = dbIntegrityService.updateUser(user); 126 final User addedUser = dbIntegrityService.getUser(userID); 127 return new ObjectFactory().createUser(addedUser); 145 if (userID != null) { 146 final User addedUser = dbIntegrityService.getUser(userID); 147 return new ObjectFactory().createUser(addedUser); 148 } else { 149 httpServletResponse.sendError(HttpServletResponse.SC_NOT_FOUND, "The user with the given id is not found in the database"); 150 return null; 151 } 128 152 } 129 130 131 132 private boolean ifLoggedIn(Number userID){ 153 154 private boolean ifLoggedIn(Number userID) { 133 155 return httpServletRequest.getRemoteUser().equals(dbIntegrityService.getUserRemoteID(userID)); 134 156 }
Note: See TracChangeset
for help on using the changeset viewer.