All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.payu.sdk.api.Mobile Maven / Gradle / Ivy

The newest version!
package com.payu.sdk.api;

import com.payu.sdk.api.exceptions.AuthenticationException;
import com.payu.sdk.api.exceptions.HttpException;
import com.payu.sdk.api.exceptions.InvalidParametersException;
import com.payu.sdk.api.exceptions.NetworkException;
import com.payu.sdk.api.exceptions.PayUException;
import com.payu.sdk.api.model.CreditCard;
import com.payu.sdk.api.model.mobile.DeviceIdentifierResponse;
import com.payu.sdk.api.model.mobile.SenderIdResponse;
import java.util.List;
import java.util.Map;

import static com.payu.sdk.api.constants.Parameters.AUTHORIZE_PARAMS;
import static com.payu.sdk.api.constants.Parameters.REGISTER_PARAMS;
import static com.payu.sdk.api.constants.Resources.PATH_MOBILE_APPS_AUTHORIZE;
import static com.payu.sdk.api.constants.Resources.PATH_MOBILE_APPS_CREDIT_CARD;
import static com.payu.sdk.api.constants.Resources.PATH_MOBILE_APPS_REGISTER;
import static com.payu.sdk.api.constants.Resources.PATH_MOBILE_APPS_SENDER_ID;
import static com.payu.sdk.api.util.CallbackUtils.checkCallback;
import static com.payu.sdk.api.util.ParametersUtils.validateParameters;

public final class Mobile {

  private final RawApi rawApi;
  private final RequestCreator requestCreator;

  Mobile(RawApi rawApi, RequestCreator requestCreator) {
    this.rawApi = rawApi;
    this.requestCreator = requestCreator;
  }

  void registerInstallation(Map parameters,
      Callback callback) {
    checkCallback(callback);
    try {
      callback.success(registerInstallation(parameters));
    } catch (HttpException e) {
      callback.httpError(e);
    } catch (PayUException e) {
      callback.callApiError(e);
    } catch (NetworkException e) {
      callback.networkError(e);
    } catch (AuthenticationException e) {
      callback.authenticationError(e);
    } catch (InvalidParametersException e) {
      callback.invalidParametersError(e);
    }
  }

  void authorizeInstallation(Map parameters,
      Callback callback) {
    checkCallback(callback);
    try {
      callback.success(authorizeInstallation(parameters));
    } catch (HttpException e) {
      callback.httpError(e);
    } catch (PayUException e) {
      callback.callApiError(e);
    } catch (NetworkException e) {
      callback.networkError(e);
    } catch (AuthenticationException e) {
      callback.authenticationError(e);
    } catch (InvalidParametersException e) {
      callback.invalidParametersError(e);
    }
  }

  void findDeviceTokens(Map parameters, Callback> callback) {
    checkCallback(callback);
    try {
      callback.success(findDeviceTokens(parameters));
    } catch (InvalidParametersException e) {
      callback.invalidParametersError(e);
    } catch (HttpException e) {
      callback.httpError(e);
    } catch (PayUException e) {
      callback.callApiError(e);
    } catch (NetworkException e) {
      callback.networkError(e);
    } catch (AuthenticationException e) {
      callback.authenticationError(e);
    }
  }

  void getSenderId(Callback callback) {
    checkCallback(callback);
    try {
      callback.success(getSenderId());
    } catch (HttpException e) {
      callback.httpError(e);
    } catch (PayUException e) {
      callback.callApiError(e);
    } catch (NetworkException e) {
      callback.networkError(e);
    } catch (AuthenticationException e) {
      callback.authenticationError(e);
    }
  }

  private DeviceIdentifierResponse registerInstallation(Map parameters)
      throws HttpException, PayUException, NetworkException, AuthenticationException,
      InvalidParametersException {
    validateParameters(parameters, REGISTER_PARAMS);

    return rawApi.mobileServices()
        .registerInstallation(PATH_MOBILE_APPS_REGISTER,
            requestCreator.buildDeviceIdentifierRequest(parameters));
  }

  private DeviceIdentifierResponse authorizeInstallation(Map parameters)
      throws HttpException, PayUException, NetworkException, AuthenticationException,
      InvalidParametersException {
    validateParameters(parameters, AUTHORIZE_PARAMS);

    return rawApi.mobileServices()
        .authorizeInstallation(PATH_MOBILE_APPS_AUTHORIZE,
            requestCreator.buildDeviceAuthorizationRequest(parameters));
  }

  private List findDeviceTokens(Map parameters)
      throws InvalidParametersException, HttpException, PayUException, NetworkException,
      AuthenticationException {
    validateParameters(parameters, AUTHORIZE_PARAMS);
    return rawApi.mobileServices()
        .findDeviceTokens(PATH_MOBILE_APPS_CREDIT_CARD,
            requestCreator.buildDeviceAuthorizationRequest(parameters))
        .getCreditCardList();
  }

  private SenderIdResponse getSenderId()
      throws HttpException, PayUException, NetworkException, AuthenticationException {
    return rawApi.mobileServices().getSenderId(PATH_MOBILE_APPS_SENDER_ID);
  }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy