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

net.hexonet.apiconnector.SocketConfig Maven / Gradle / Ivy

package net.hexonet.apiconnector;

import java.io.UnsupportedEncodingException;
import java.net.URLEncoder;

/**
 * SocketConfig is the base class to configure the socket for API communication
 * 
 * @author Kai Schwarz
 * @version %I%, %G%
 * @since 2.0
 */
public class SocketConfig {
    /** backend system entity */
    private String entity = "";
    /** user account */
    private String login = "";
    /** one time password (2FA) */
    private String otp = "";
    /** user password */
    private String pw = "";
    /** used ip address to communicate */
    private String remoteaddr = "";
    /** backend system session id */
    private String session = "";
    /** subuser account */
    private String user = "";

    /**
     * Class constructor.
     */
    public SocketConfig() {}

    /**
     * Method to use to encode data to be ready for POST request
     * 
     * @return the ready to use, encoded POST request payload
     */
    public String getPOSTData() {
        try {
            StringBuilder data = new StringBuilder("");
            if (this.entity.length() > 0) {
                data.append(URLEncoder.encode("s_entity", "UTF-8"));
                data.append("=");
                data.append(URLEncoder.encode(this.entity, "UTF-8"));
                data.append("&");
            }
            if (this.login.length() > 0) {
                data.append(URLEncoder.encode("s_login", "UTF-8"));
                data.append("=");
                data.append(URLEncoder.encode(this.login, "UTF-8"));
                data.append("&");
            }
            if (this.otp.length() > 0) {
                data.append(URLEncoder.encode("s_otp", "UTF-8"));
                data.append("=");
                data.append(URLEncoder.encode(this.otp, "UTF-8"));
                data.append("&");
            }
            if (this.pw.length() > 0) {
                data.append(URLEncoder.encode("s_pw", "UTF-8"));
                data.append("=");
                data.append(URLEncoder.encode(this.pw, "UTF-8"));
                data.append("&");
            }
            if (this.remoteaddr.length() > 0) {
                data.append(URLEncoder.encode("s_remoteaddr", "UTF-8"));
                data.append("=");
                data.append(URLEncoder.encode(this.remoteaddr, "UTF-8"));
                data.append("&");
            }
            if (this.session.length() > 0) {
                data.append(URLEncoder.encode("s_session", "UTF-8"));
                data.append("=");
                data.append(URLEncoder.encode(this.session, "UTF-8"));
                data.append("&");
            }
            if (this.user.length() > 0) {
                data.append(URLEncoder.encode("s_user", "UTF-8"));
                data.append("=");
                data.append(URLEncoder.encode(this.user, "UTF-8"));
                data.append("&");
            }
            return data.toString();
        } catch (UnsupportedEncodingException e) {
            return "";
        }
    }

    /**
     * Method to use to get the underlying backend api session id
     * 
     * @return the backend api session id (empty string if not set)
     */
    public String getSession() {
        return this.session;
    }

    /**
     * Method to use to get the configured backend system entity. Use "54cd" for LIVE System and
     * "1234" for OT&E System
     * 
     * @return the backend system entity
     */
    public String getSystemEntity() {
        return this.entity;
    }

    /**
     * Setter method for login
     * 
     * @param value user name
     * @return current SocketConfig instance to reuse for method chaining
     */
    public SocketConfig setLogin(String value) {
        this.session = "";
        this.login = value;
        return this;
    }

    /**
     * Setter method for one time password (otp)
     * 
     * @param value otp
     * @return current SocketConfig instance to reuse for method chaining
     */
    public SocketConfig setOTP(String value) {
        this.session = "";
        this.otp = value;
        return this;
    }

    /**
     * Setter method for user password
     * 
     * @param value password
     * @return current SocketConfig instance to reuse for method chaining
     */
    public SocketConfig setPassword(String value) {
        this.session = "";
        this.pw = value;
        return this;
    }

    /**
     * Setter method for used remote ip address
     * 
     * @param value ip address
     * @return current SocketConfig instance to reuse for method chaining
     */
    public SocketConfig setRemoteAddress(String value) {
        this.remoteaddr = value;
        return this;
    }

    /**
     * Setter method for backend api session id
     * 
     * @param value session id
     * @return current SocketConfig instance to reuse for method chaining
     */
    public SocketConfig setSession(String value) {
        this.session = value;
        this.login = "";
        this.pw = "";
        this.otp = "";
        return this;
    }

    /**
     * Setter method for backend system entity. Use "54cd" for LIVE System and "1234" for OT&E
     * System
     * 
     * @param value system entity
     * @return current SocketConfig instance to reuse for method chaining
     */
    public SocketConfig setSystemEntity(String value) {
        this.entity = value;
        return this;
    }

    /**
     * Setter method for subuser account name
     * 
     * @param value subuser account name
     * @return current SocketConfig instance to reuse for method chaining
     */
    public SocketConfig setUser(String value) {
        this.user = value;
        return this;
    }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy