package com.psddev.cms.tool.page;
import com.psddev.cms.tool.CmsTool;
import com.psddev.cms.tool.PageServlet;
import com.psddev.cms.tool.ToolPageContext;
import com.psddev.dari.db.Application;
import com.psddev.dari.util.RoutingFilter;
import com.psddev.dari.util.SmsProvider;
import com.psddev.dari.util.StringUtils;
import javax.servlet.ServletException;
import java.io.IOException;
/**
* Servlet to handle test sms requests to the phone number provided.
*/
@RoutingFilter.Path(application = "cms", value = "/testSms")
public class TestSms extends PageServlet {
@Override
protected String getPermissionId() {
return null;
}
@Override
protected void doService(ToolPageContext page) throws IOException, ServletException {
if (page.isAjaxRequest()) {
String number = page.param(String.class, "number");
if (number == null) {
page.writeStart("div", "class", "Sms-error").writeHtml(page.localize(TestSms.class, "message.error")).writeEnd();
return;
}
String sms = "This is a test message.";
String url = Application.Static.getInstance(CmsTool.class).getDefaultToolUrl();
if (!StringUtils.isBlank(url)) {
sms += "\nCMS Url: " + url;
}
try {
SmsProvider.Static.getDefault().send(null, number, sms);
page.writeStart("div", "class", "Sms-success").writeHtml(page.localize(TestSms.class, "message.success")).writeEnd();
} catch (IllegalStateException error) {
page.writeStart("div", "class", "Sms-error").writeHtml(page.localize(TestSms.class, "message.error")).writeEnd();
}
} else {
throw new IllegalArgumentException("Request must be ajax!");
}
}
}