|
@@ -23,6 +23,7 @@
|
|
|
|
|
|
package password.pwm.resttest;
|
|
|
|
|
|
+import com.google.gson.Gson;
|
|
|
import org.apache.commons.io.IOUtils;
|
|
|
|
|
|
import javax.servlet.ServletException;
|
|
@@ -33,28 +34,74 @@ import javax.servlet.http.HttpServletResponse;
|
|
|
import java.io.IOException;
|
|
|
import java.io.InputStream;
|
|
|
import java.io.PrintWriter;
|
|
|
+import java.util.Date;
|
|
|
|
|
|
@WebServlet(
|
|
|
name = "NewUserServlet",
|
|
|
- urlPatterns = { "/external/macro1" }
|
|
|
+ urlPatterns = { "/sms", "/macro" }
|
|
|
)
|
|
|
|
|
|
public class ExternalMacroServlet extends HttpServlet
|
|
|
{
|
|
|
+ private static final String USERNAME_PARAMETER = "username";
|
|
|
+ private static final String SUCCESSFUL = "true";
|
|
|
+ private static final String UNSUCCESSFUL = "false";
|
|
|
+
|
|
|
@Override
|
|
|
protected void doPost( final HttpServletRequest req, final HttpServletResponse resp ) throws ServletException, IOException
|
|
|
{
|
|
|
+ if ( req.getServletPath().equals( "/sms" ) )
|
|
|
+ {
|
|
|
+ final SmsResponse instance = SmsResponse.getInstance();
|
|
|
+ final InputStream inputStream = req.getInputStream();
|
|
|
+ final String body = IOUtils.toString( inputStream );
|
|
|
+
|
|
|
+ final String[] messageContent = body.split( "=" );
|
|
|
+ final String message = messageContent[messageContent.length - 1];
|
|
|
+ final String username = message.split( "\\+" )[0];
|
|
|
+ final Date currentDate = new Date();
|
|
|
+ final SmsPostResponseBody messageBody = new SmsPostResponseBody( message, currentDate );
|
|
|
+
|
|
|
+ instance.addToMap( username, messageBody );
|
|
|
+
|
|
|
+ System.out.println( "input POST body: " + body );
|
|
|
|
|
|
- final InputStream inputStream = req.getInputStream();
|
|
|
- final String body = IOUtils.toString( inputStream );
|
|
|
+ resp.setHeader( "Content-Type", "application/json" );
|
|
|
|
|
|
- System.out.println( "input POST body: " + body );
|
|
|
+ final PrintWriter writer = resp.getWriter();
|
|
|
+ writer.write( "{\"output\":\"Message Received\"}" );
|
|
|
+ writer.close();
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ protected void doGet( final HttpServletRequest req, final HttpServletResponse resp ) throws IOException
|
|
|
+ {
|
|
|
+ if ( req.getServletPath().equals( "/sms" ) )
|
|
|
+ {
|
|
|
+ //Check request
|
|
|
+ final SmsResponse instance = SmsResponse.getInstance();
|
|
|
+ final String requestUsername = req.getParameter( USERNAME_PARAMETER );
|
|
|
+ final SmsGetResponseBody responseBody;
|
|
|
|
|
|
+ //Get body
|
|
|
+ if ( instance.getRecentSmsMessages().containsKey( requestUsername ) )
|
|
|
+ {
|
|
|
+ final SmsPostResponseBody body = instance.getRecentFromMap( requestUsername );
|
|
|
+ responseBody = new SmsGetResponseBody( SUCCESSFUL, body.getMessageContent() );
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ responseBody = new SmsGetResponseBody( UNSUCCESSFUL, "" );
|
|
|
+ }
|
|
|
|
|
|
- resp.setHeader( "Content-Type", "application/json" );
|
|
|
+ //Send response
|
|
|
+ final Gson gson = new Gson();
|
|
|
+ resp.setHeader( "Content-Type", "application/json" );
|
|
|
+ final PrintWriter writer = resp.getWriter();
|
|
|
+ writer.write( gson.toJson( responseBody ) );
|
|
|
+ writer.close();
|
|
|
|
|
|
- final PrintWriter writer = resp.getWriter();
|
|
|
- writer.write( "{\"output\":\"macro api output SPLAT!\"}" );
|
|
|
- writer.close();
|
|
|
+ }
|
|
|
}
|
|
|
}
|