
ru.sms_activate.SMSActivateValidator Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of SMSActivateApi Show documentation
Show all versions of SMSActivateApi Show documentation
Lib for working with sms activate API.
package ru.sms_activate;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import ru.sms_activate.error.SMSActivateBannedException;
import ru.sms_activate.error.SMSActivateUnknownException;
import ru.sms_activate.error.base.SMSActivateBaseException;
import ru.sms_activate.error.base.SMSActivateBaseTypeError;
import ru.sms_activate.error.wrong_parameter.SMSActivateWrongParameter;
import ru.sms_activate.error.wrong_parameter.SMSActivateWrongParameterException;
import ru.sms_activate.listener.SMSActivateExceptionListener;
class SMSActivateValidator {
/**
* Success value status.
*/
public static final String SUCCESS_STATUS = "success";
/**
* Banned status.
*/
private static final String BANNED = "BANNED";
/**
* Status sql error.
*/
private static final String SQL = "SQL";
/**
* Error value status.
*/
private static final String ERROR_STATUS = "error";
/**
* Listener on error.
*/
private SMSActivateExceptionListener smsActivateExceptionListener;
/**
* Sets the listener on error.
*
* @param smsActivateExceptionListener listener on error.
*/
public void setSmsActivateExceptionListener(@NotNull SMSActivateExceptionListener smsActivateExceptionListener) {
this.smsActivateExceptionListener = smsActivateExceptionListener;
}
/**
* Throws WrongParameterException if name contains in wrong parameter.
*
* @param name name parameter.
* @throws SMSActivateWrongParameterException if one of parameters is incorrect.
*/
private void throwWrongParameterExceptionByName(@NotNull String name) throws SMSActivateWrongParameterException {
SMSActivateWrongParameter wrongParameter = SMSActivateWrongParameter.getWrongParameterByName(name);
if (wrongParameter != SMSActivateWrongParameter.UNKNOWN) {
if (smsActivateExceptionListener != null) {
smsActivateExceptionListener.handle(name);
}
throw new SMSActivateWrongParameterException(wrongParameter);
}
}
/**
* Throw error by name.
*
* @param name name error.
* unknown if wrong parameter not contains in enum (it's may be SQLServerException), else throw WrongParameter.
* @throws SMSActivateWrongParameterException if one of parameters is incorrect.
* @throws SMSActivateBaseException if error happened on SQL-server.
*/
public void throwCommonExceptionByName(@NotNull String name) throws SMSActivateBaseException {
throwWrongParameterExceptionByName(name);
if (name.toUpperCase().contains(SQL)) {
if (smsActivateExceptionListener != null) {
smsActivateExceptionListener.handle(name);
}
throw new SMSActivateBaseException("Error SQL-server.", "Ошибка SQL-сервера.");
}
}
/**
* Throws sms-activate exception by name.
*
* @param name name sms-activate exception.
* @throws SMSActivateWrongParameterException if one of parameters is incorrect.
* @throws SMSActivateBannedException if your account nas been banned.
* @throws SMSActivateBaseException if error happened on SQL-server.
*/
public void throwExceptionWithBan(@NotNull String name) throws SMSActivateBaseException {
throwCommonExceptionByName(name);
if (name.toUpperCase().contains(BANNED)) {
if (smsActivateExceptionListener != null) {
smsActivateExceptionListener.handle(name);
}
throw new SMSActivateBannedException("Your account has been banned", "Ваш акаунт был забанен", name.split(BANNED + ":")[1]);
}
}
/**
* Returns the smsactivate base exception by name.
*
* @param errorName name exception.
* @return smsactivate base exception.
*/
@NotNull
public SMSActivateBaseException getBaseExceptionByErrorNameOrUnknown(@NotNull String errorName, @Nullable String message) throws SMSActivateBaseException {
throwCommonExceptionByName(errorName);
SMSActivateBaseTypeError error = SMSActivateBaseTypeError.getErrorByName(errorName);
if (smsActivateExceptionListener != null) {
smsActivateExceptionListener.handle(errorName);
}
if (error != SMSActivateBaseTypeError.UNKNOWN) {
return new SMSActivateBaseException(error);
}
return new SMSActivateUnknownException(errorName, message);
}
/**
* Returns the true if data contains success status else false.
*
* @param data data from server.
* @return true if data not contains success status else false.
*/
public boolean checkOnNotContainsSuccessStatus(@NotNull String data) {
return !data.toLowerCase().contains(SUCCESS_STATUS);
}
/**
* Returns true if data contains error status else false.
*
* @param data data from server.
* @return true if data contains error status else false.
*/
public boolean checkOnContainsErrorStatus(@NotNull String data) {
return data.toLowerCase().contains(ERROR_STATUS);
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy