Package org.gsm.oneapi.server.mms

Source Code of org.gsm.oneapi.server.mms.MMSDeliveryReportSubscriptionServlet

package org.gsm.oneapi.server.mms;

import java.io.IOException;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.apache.log4j.Logger;
import org.codehaus.jackson.map.ObjectMapper;
import org.gsm.oneapi.responsebean.mms.DeliveryReceiptSubscription;
import org.gsm.oneapi.server.OneAPIServlet;
import org.gsm.oneapi.server.ValidationRule;

/**
* Servlet implementing the OneAPI function for creating an MMS delivery report subscription
*/
public class MMSDeliveryReportSubscriptionServlet extends OneAPIServlet {
 
  private static final long serialVersionUID = -7359556423074788912L;
 
  static Logger logger=Logger.getLogger(MMSDeliveryReportSubscriptionServlet.class);

  public void init() throws ServletException {
    logger.debug("MMSDeliveryReportSubscriptionServlet initialised");
    }
 
  private final String[] validationRules={"1", "messaging", "outbound", "*", "subscriptions"};

  public void doPost(HttpServletRequest request,HttpServletResponse response) throws IOException, ServletException{
    dumpRequestDetails(request, logger);
   
    String[] requestParts=getRequestParts(request);
   
    if (validateRequest(request, response, requestParts, validationRules)) {

      logger.debug("MMS Delivery Report Subscriptions - url appears correctly formatted");
     
      String senderAddress=requestParts[3];

      /*
       * Decode the service parameters - in this case it is an HTTP POST request
       */
      String clientCorrelator=nullOrTrimmed(request.getParameter("clientCorrelator"));
      String notifyURL=nullOrTrimmed(request.getParameter("notifyURL"));
      String callbackData=nullOrTrimmed(request.getParameter("callbackData"));

      logger.debug("senderAddress = "+senderAddress);
      logger.debug("clientCorrelator = "+clientCorrelator);
      logger.debug("notifyURL = "+notifyURL);
      logger.debug("callbackData = "+callbackData);     
     
      String resourceURL=null;
     
      ValidationRule[] rules={
          new ValidationRule(ValidationRule.VALIDATION_TYPE_MANDATORY_TEL, "senderAddress", senderAddress),
          new ValidationRule(ValidationRule.VALIDATION_TYPE_MANDATORY_URL, "notifyURL", notifyURL),
          new ValidationRule(ValidationRule.VALIDATION_TYPE_OPTIONAL, "clientCorrelator", clientCorrelator),
          new ValidationRule(ValidationRule.VALIDATION_TYPE_OPTIONAL, "callbackData", callbackData),         
      };

     
      if (checkRequestParameters(response, rules)) {
        resourceURL=getRequestHostnameAndContext(request)+request.getServletPath()+"/1/messaging/outbound/subscriptions/sub789";
       
        DeliveryReceiptSubscription receiptSubscription=new DeliveryReceiptSubscription();
        receiptSubscription.setResourceURL(resourceURL);
       
        DeliveryReceiptSubscription.CallbackReference callbackReference=new DeliveryReceiptSubscription.CallbackReference();
        callbackReference.setNotifyURL(notifyURL);
        callbackReference.setCallbackData(callbackData);
       
        receiptSubscription.setCallbackReference(callbackReference);
       
        ObjectMapper mapper=new ObjectMapper();

        String jsonResponse="{\"deliveryReceiptSubscription\":"+mapper.writeValueAsString(receiptSubscription)+"}";
       
        logger.debug("Sending response. ResourceURL="+resourceURL);
       
        sendJSONResponse(response, jsonResponse, CREATED, resourceURL);
      }
    }
   
  }

}
TOP

Related Classes of org.gsm.oneapi.server.mms.MMSDeliveryReportSubscriptionServlet

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.