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

cloud.genesys.webmessaging.sdk.api.WebMessagingApi Maven / Gradle / Ivy

package cloud.genesys.webmessaging.sdk.api;

import com.fasterxml.jackson.core.type.TypeReference;

import cloud.genesys.webmessaging.sdk.WebMessagingException;
import cloud.genesys.webmessaging.sdk.ApiClient;
import cloud.genesys.webmessaging.sdk.ApiRequest;
import cloud.genesys.webmessaging.sdk.ApiResponse;
import cloud.genesys.webmessaging.sdk.Configuration;
import cloud.genesys.webmessaging.sdk.model.*;
import cloud.genesys.webmessaging.sdk.Pair;

import cloud.genesys.webmessaging.sdk.model.ErrorBody;
import cloud.genesys.webmessaging.sdk.model.WebMessagingMessageEntityList;


import cloud.genesys.webmessaging.sdk.api.request.GetWebmessagingMessagesRequest;

import java.io.IOException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;


public class WebMessagingApi {
  private final ApiClient gcapiClient;

  public WebMessagingApi() {
    this(Configuration.getDefaultApiClient());
  }

  public WebMessagingApi(ApiClient apiClient) {
    this.gcapiClient = apiClient;
  }

  /**
   * Get the messages for a web messaging session.
   * 
   * @param pageSize Page size (optional, default to 25)
   * @param pageNumber Page number (optional, default to 1)
   * @return WebMessagingMessageEntityList
   * @throws WebMessagingException if the request fails on the server
   * @throws IOException if the request fails to be processed
   */
  public WebMessagingMessageEntityList getWebmessagingMessages(Integer pageSize, Integer pageNumber) throws IOException, WebMessagingException {
    return  getWebmessagingMessages(createGetWebmessagingMessagesRequest(pageSize, pageNumber));
  }

  /**
   * Get the messages for a web messaging session.
   * 
   * @param pageSize Page size (optional, default to 25)
   * @param pageNumber Page number (optional, default to 1)
   * @return WebMessagingMessageEntityList
   * @throws IOException if the request fails to be processed
   */
  public ApiResponse getWebmessagingMessagesWithHttpInfo(Integer pageSize, Integer pageNumber) throws IOException {
    return getWebmessagingMessages(createGetWebmessagingMessagesRequest(pageSize, pageNumber).withHttpInfo());
  }

  private GetWebmessagingMessagesRequest createGetWebmessagingMessagesRequest(Integer pageSize, Integer pageNumber) {
    return GetWebmessagingMessagesRequest.builder()
            .withPageSize(pageSize)

            .withPageNumber(pageNumber)
            .build();
  }

  /**
   * Get the messages for a web messaging session.
   * 
   * @param request The request object
   * @return WebMessagingMessageEntityList
   * @throws WebMessagingException if the request fails on the server
   * @throws IOException if the request fails to be processed
   */
  public WebMessagingMessageEntityList getWebmessagingMessages(GetWebmessagingMessagesRequest request) throws IOException, WebMessagingException {
    try {
      ApiResponse response = gcapiClient.invoke(request.withHttpInfo(), new TypeReference() {});
      return response.getBody();
    }
    catch (WebMessagingException | IOException exception) {
      if (gcapiClient.getShouldThrowErrors()) throw exception;
      return null;
    }
  }

  /**
   * Get the messages for a web messaging session.
   * 
   * @param request The request object
   * @return the response
   * @throws IOException if the request fails to be processed
   */
  public ApiResponse getWebmessagingMessages(ApiRequest request) throws IOException {
    try {
      return gcapiClient.invoke(request, new TypeReference() {});
    }
    catch (WebMessagingException exception) {
      @SuppressWarnings("unchecked")
      ApiResponse response = (ApiResponse)(ApiResponse)exception;
      return response;
    }
    catch (Throwable exception) {
      if (gcapiClient.getShouldThrowErrors()) {
        if (exception instanceof IOException) {
          throw (IOException)exception;
        }
        throw new RuntimeException(exception);
      }
      @SuppressWarnings("unchecked")
      ApiResponse response = (ApiResponse)(ApiResponse)(new WebMessagingException(exception));
      return response;
    }
  }

}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy