package net.whydah.admin.users; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import javax.ws.rs.GET; import javax.ws.rs.Path; import javax.ws.rs.PathParam; import javax.ws.rs.Produces; import javax.ws.rs.core.MediaType; import javax.ws.rs.core.Response; /** * @author <a href="bard.lind@gmail.com">Bard Lind</a> */ @Path("/{applicationtokenid}/{userTokenId}/users") @Controller public class UsersResource { private static final Logger log = LoggerFactory.getLogger(UsersResource.class); //UIB interface /{applicationtokenid}/{usertokenid}/users/find/{q} private final UsersService usersService; @Autowired public UsersResource(UsersService usersService) { this.usersService = usersService; } /** * UserAdmin Find, return UserAggregate */ @GET @Path("/find/{q}") @Produces({MediaType.APPLICATION_JSON}) public Response findUsers(@PathParam("applicationtokenid") String applicationTokenId, @PathParam("userTokenId") String userTokenId, @PathParam("q") String query) { String usersJson = null; try { usersJson = usersService.findUsers(applicationTokenId, userTokenId, query); if (usersJson != null) { return Response.ok(usersJson).build(); } else { return Response.status(Response.Status.NO_CONTENT).build(); } } catch (RuntimeException e) { log.error("Unkonwn error.", e); return Response.status(Response.Status.INTERNAL_SERVER_ERROR).build(); } } /** * Directory search, return only UserIdentity */ @GET @Path("/search/{q}") @Produces({MediaType.APPLICATION_JSON}) public Response searchUsers(@PathParam("applicationtokenid") String applicationTokenId, @PathParam("userTokenId") String userTokenId, @PathParam("q") String query) { String usersJson = null; try { usersJson = usersService.searchUsers(applicationTokenId, userTokenId, query); if (usersJson != null) { return Response.ok(usersJson).build(); } else { return Response.status(Response.Status.NO_CONTENT).build(); } } catch (RuntimeException e) { log.error("Unkonwn error.", e); return Response.status(Response.Status.INTERNAL_SERVER_ERROR).build(); } } @GET @Path("/ping/pong") @Produces(MediaType.TEXT_HTML) public Response ping() { return Response.ok("pong").build(); } }