List of usage examples for com.liferay.portal.kernel.json JSONFactoryUtil looseSerialize
public static String looseSerialize(Object object, JSONTransformer jsonTransformer, Class<?> clazz)
From source file:com.marcelmika.lims.portal.controller.ConversationController.java
License:Open Source License
/** * Reads Single User Conversation messages * * @param request ResourceRequest//from ww w.j av a2 s . c o m * @param response ResourceResponse */ public void readSingleUserConversation(ResourceRequest request, ResourceResponse response) { Buddy buddy; // Authorized user ReadConversationParameters parameters; // Request parameters // Deserialize try { // Buddy from request buddy = Buddy.fromResourceRequest(request); // Parameters parameters = JSONFactoryUtil.looseDeserialize(request.getParameter(RequestParameterKeys.KEY_PARAMETERS), ReadConversationParameters.class); } // Failure catch (Exception exception) { // Bad request ResponseUtil.writeResponse(HttpStatus.BAD_REQUEST, response); // Log log.debug(exception); // End here return; } // Create objects from parameters Conversation conversation = new Conversation(); conversation.setConversationId(parameters.getConversationId()); Pagination pagination = parameters.getPagination(); // Read conversations ReadSingleUserConversationResponseEvent responseEvent = conversationCoreService .readConversation(new ReadSingleUserConversationRequestEvent(buddy.toBuddyDetails(), // Buddy is participant conversation.toConversationDetails(), // Read proper conversation pagination.toPaginationDetails()) // Pagination request ); // Success if (responseEvent.isSuccess()) { conversation = Conversation.fromConversationDetails(responseEvent.getConversation()); // Client has fresh copy so there is no need to send it if (conversation.getEtag().equals(parameters.getEtag())) { ResponseUtil.writeResponse(HttpStatus.NOT_MODIFIED, response); return; } // Serialize String serialized = JSONFactoryUtil.looseSerialize(conversation, "messages", "messages.from"); // Write success to response ResponseUtil.writeResponse(serialized, HttpStatus.OK, response); } // Failure else { ReadSingleUserConversationResponseEvent.Status status = responseEvent.getStatus(); // Not found if (status == ReadSingleUserConversationResponseEvent.Status.ERROR_NOT_FOUND) { ResponseUtil.writeResponse(HttpStatus.NOT_FOUND, response); } // Forbidden else if (status == ReadSingleUserConversationResponseEvent.Status.ERROR_FORBIDDEN) { ResponseUtil.writeResponse(HttpStatus.FORBIDDEN, response); } // Unauthorized else if (status == ReadSingleUserConversationResponseEvent.Status.ERROR_NO_SESSION) { ResponseUtil.writeResponse(HttpStatus.UNAUTHORIZED, response); } // Bad request else if (status == ReadSingleUserConversationResponseEvent.Status.ERROR_WRONG_PARAMETERS) { ResponseUtil.writeResponse(HttpStatus.BAD_REQUEST, response); } // Everything else is server fault else { ResponseUtil.writeResponse(HttpStatus.INTERNAL_SERVER_ERROR, response); // Log log.error(responseEvent.getException()); } } }
From source file:com.marcelmika.lims.portal.controller.GroupController.java
License:Open Source License
/** * Fetches all groups related to the buddy. * * @param request ResourceRequest//from ww w. java 2 s .co m * @param response ResourceResponse */ public void getGroupList(ResourceRequest request, ResourceResponse response) { Buddy buddy; // Authorized user GetGroupListParameters parameters; // Parameters for the request // Deserialize try { // Parameters parameters = JSONFactoryUtil.looseDeserialize(request.getParameter(RequestParameterKeys.KEY_PARAMETERS), GetGroupListParameters.class); // Create buddy from request buddy = Buddy.fromResourceRequest(request); } // Failure catch (Exception exception) { // Bad request ResponseUtil.writeResponse(HttpStatus.BAD_REQUEST, response); // Log log.debug(exception); // End here return; } // Get groups GetGroupsResponseEvent responseEvent = groupCoreService .getGroups(new GetGroupsRequestEvent(buddy.toBuddyDetails())); // Success if (responseEvent.isSuccess()) { // Map groups from group details GroupCollection groupCollection = GroupCollection .fromGroupCollectionDetails(responseEvent.getGroupCollection()); // ... and compare it with group collection etag // Cached if (parameters.getEtag().equals(groupCollection.getEtag())) { // Etags equal which means that nothing has changed. // Write only the group collection without groups and buddies (no extra traffic needed) ResponseUtil.writeResponse(HttpStatus.NOT_MODIFIED, response); } // Not cached else { // Serialize String serialized = JSONFactoryUtil.looseSerialize(groupCollection, "groups", "groups.buddies"); // Etags are different which means that groups were modified // Send the whole package to the client ResponseUtil.writeResponse(serialized, HttpStatus.OK, response); } } // Failure else { GetGroupsResponseEvent.Status status = responseEvent.getStatus(); // Bad request if (status == GetGroupsResponseEvent.Status.ERROR_WRONG_PARAMETERS) { ResponseUtil.writeResponse(HttpStatus.BAD_REQUEST, response); } // Everything else is server fault else { ResponseUtil.writeResponse(HttpStatus.INTERNAL_SERVER_ERROR, response); // Log log.error(responseEvent.getException()); } } }