package oneapi.client.impl; import oneapi.client.USSDClient; import oneapi.config.Configuration; import oneapi.model.RequestData; import oneapi.model.USSDRequest; import oneapi.model.RequestData.Method; import oneapi.model.common.InboundSMSMessage; public class USSDClientImpl extends OneAPIBaseClientImpl implements USSDClient { private static final String USSD_URL_BASE = "/ussd/outbound"; public USSDClientImpl(Configuration configuration) { super(configuration); } /** * Send an USSD over OneAPI to one mobile terminal ' * @return InboundSMSMessage */ @Override public InboundSMSMessage sendMessage(String address, String message) { RequestData requestData = new RequestData(USSD_URL_BASE, Method.POST); requestData.setFormParams(new USSDRequest(address, message)); requestData.setContentType(JSON_CONTENT_TYPE); return executeMethod(requestData, InboundSMSMessage.class); } /** * Stop USSD session */ @Override public void stopSession(String address, String message) { RequestData requestData = new RequestData(USSD_URL_BASE, Method.POST); requestData.setFormParams(new USSDRequest(address, message, true)); requestData.setContentType(JSON_CONTENT_TYPE); executeMethod(requestData); } }