Package org.gsm.oneapi.server.sms

Source Code of org.gsm.oneapi.server.sms.SendSMSServlet

package org.gsm.oneapi.server.sms;

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.ResourceReference;
import org.gsm.oneapi.server.OneAPIServlet;
import org.gsm.oneapi.server.ValidationRule;

/**
* Servlet implementing the OneAPI function for sending an SMS message
*/
public class SendSMSServlet extends OneAPIServlet {
  private static final long serialVersionUID = 6553586905656923326L;

  static Logger logger=Logger.getLogger(SendSMSServlet.class);

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

  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("SendSMS - url appears correctly formatted");
      /*
       * Decode the service parameters - in this case it is an HTTP POST request
       */
      String[] addresses=request.getParameterValues("address")// Note there can be multiple addresses specified
      String senderAddress=nullOrTrimmed(request.getParameter("senderAddress"));
      String message=nullOrTrimmed(request.getParameter("message"));
      String clientCorrelator=nullOrTrimmed(request.getParameter("clientCorrelator"));
      String notifyURL=nullOrTrimmed(request.getParameter("notifyURL"));
      String callbackData=nullOrTrimmed(request.getParameter("callbackData"));
      String senderName=nullOrTrimmed(request.getParameter("senderName"));

      logger.debug("senderAddress = "+senderAddress);
      logger.debug("message = "+message);
      logger.debug("clientCorrelator = "+clientCorrelator);
      logger.debug("notifyURL = "+notifyURL);
      logger.debug("senderName = "+senderName);     
      logger.debug("callbackData = "+callbackData);
     
      if (addresses!=null) for (String add:addresses) logger.debug("address = "+add);   
     
      String resourceURL=null;

      ValidationRule[] rules={
          new ValidationRule(ValidationRule.VALIDATION_TYPE_MANDATORY_TEL, "senderAddress", senderAddress),
          new ValidationRule(ValidationRule.VALIDATION_TYPE_MANDATORY_TEL, "address", addresses),
          new ValidationRule(ValidationRule.VALIDATION_TYPE_MANDATORY, "message", message),
          new ValidationRule(ValidationRule.VALIDATION_TYPE_OPTIONAL, "clientCorrelator", clientCorrelator),
          new ValidationRule(ValidationRule.VALIDATION_TYPE_OPTIONAL, "senderName", senderName),
          new ValidationRule(ValidationRule.VALIDATION_TYPE_OPTIONAL_URL, "notifyURL", notifyURL),
          new ValidationRule(ValidationRule.VALIDATION_TYPE_OPTIONAL, "callbackData", callbackData),         
      };

      if (checkRequestParameters(response, rules)) {     
        resourceURL=getRequestHostnameAndContext(request)+request.getServletPath()+"/1/smsmessaging/outbound/"+urlEncode(senderAddress)+"/requests/"+urlEncode(clientCorrelator);
       
        ResourceReference resourceReference=new ResourceReference();
        resourceReference.setResourceURL(resourceURL);
       
        ObjectMapper mapper=new ObjectMapper();

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

}
TOP

Related Classes of org.gsm.oneapi.server.sms.SendSMSServlet

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.