package oneapi.client.impl;
import oneapi.client.CustomerProfileClient;
import oneapi.client.HLRClient;
import oneapi.client.SMSMessagingClient;
import oneapi.client.USSDClient;
import oneapi.config.Configuration;
import oneapi.listener.LoginListener;
import oneapi.listener.LogoutListener;
import oneapi.model.Authentication.AuthType;
import oneapi.model.common.LoginResponse;
public class SMSClient {
protected static final String VERSION = "1.0.0";
private CustomerProfileClient customerProfileClient = null;
private SMSMessagingClient smsMessagingClient = null;
private HLRClient hlrClient = null;
private USSDClient ussdClient = null;
private LoginListener loginListener = null;
private LogoutListener logoutListener = null;
private Configuration configuration = null;
//*************************SMSClient initialization***********************************************************************************************************************************************
/**
* Initialize SMS client using specified 'configuration' parameter
* @param configuration - parameter containing OneAPI configuration data
*/
public SMSClient(Configuration configuration) {
this.configuration = configuration;
//Set Login and Logout listeners so that authorization mode can be switched to IBSSO
setLoginListener();
setLogoutListener();
//Initialize Clients
customerProfileClient = new CustomerProfileClientImpl(configuration, loginListener, logoutListener);
smsMessagingClient = new SMSMessagingClientImpl(configuration);
hlrClient = new HLRClientImpl(configuration);
ussdClient = new USSDClientImpl(configuration);
}
//*************************SMSClient public***********************************************************************************************************************************************
/**
* Get Customer Profile client
* @return CustomerProfileClient
*/
public CustomerProfileClient getCustomerProfileClient() {
return customerProfileClient;
}
/**
* Get SMS Messaging client
* @return SMSMessagingClient
*/
public SMSMessagingClient getSMSMessagingClient() {
return smsMessagingClient;
}
/**
* Get HLR client
* @return HLRClient
*/
public HLRClient getHLRClient() {
return hlrClient;
}
/**
* Get USSD client
* @return USSDClient
*/
public USSDClient getUSSDClient() {
return ussdClient;
}
//*************************SMSClient private***********************************************************************************************************************************************
private void setLoginListener() {
loginListener = new LoginListener() {
@Override
public void onLogin(LoginResponse response) {
if ((response != null) && (response.getIbAuthCookie().length() != 0)) {
configuration.getAuthentication().setType(AuthType.IBSSO);
configuration.getAuthentication().setIbssoToken(response.getIbAuthCookie());
}
}
};
}
private void setLogoutListener() {
logoutListener = new LogoutListener() {
@Override
public void onLogout() {
configuration.getAuthentication().setIbssoToken("");
}
};
}
}