
com.contentstack.sdk.CSConnectionRequest Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of java Show documentation
Show all versions of java Show documentation
Java SDK for Contentstack Content Delivery API
package com.contentstack.sdk;
import org.json.JSONObject;
import java.util.HashMap;
import java.util.LinkedHashMap;
import java.util.List;
import static com.contentstack.sdk.Constants.*;
class CSConnectionRequest implements IRequestModelHTTP {
protected String endpoint;
private String urlToCall;
private String controller;
private String requestInfo;
private LinkedHashMap header;
private HashMap urlQueries;
private ResultCallBack resultCallBack;
private INotifyClass notifyClass;
private AssetLibrary assetLibrary;
private APIService service;
private Config config;
private Entry entryInstance;
private Asset assetInstance;
private Stack stackInstance;
public CSConnectionRequest(Query queryInstance) {
notifyClass = queryInstance;
this.endpoint = queryInstance.contentTypeInstance.stackInstance.config.getEndpoint();
}
public CSConnectionRequest(Entry entryInstance) {
this.entryInstance = entryInstance;
this.endpoint = this.entryInstance.contentType.stackInstance.config.getEndpoint();
}
public CSConnectionRequest(AssetLibrary assetLibrary) {
this.assetLibrary = assetLibrary;
this.endpoint = this.assetLibrary.stackInstance.config.getEndpoint();
}
public CSConnectionRequest(Asset asset) {
this.assetInstance = asset;
this.endpoint = this.assetInstance.stackInstance.config.getEndpoint();
}
public CSConnectionRequest(Stack stack) {
this.stackInstance = stack;
}
public CSConnectionRequest(ContentType contentType) {
this.endpoint = contentType.stackInstance.config.getEndpoint();
}
public void setQueryInstance(Query queryInstance) {
this.endpoint = queryInstance.contentTypeInstance.stackInstance.config.getEndpoint();
}
public void setURLQueries(HashMap urlQueries) {
this.urlQueries = urlQueries;
}
public void setStackInstance(Stack stackInstance) {
this.endpoint = this.stackInstance.config.getEndpoint();
this.stackInstance = stackInstance;
}
public void setParams(Object... objects) {
this.urlToCall = (String) objects[0];
this.header = (LinkedHashMap) objects[1];
this.controller = (String) objects[2];
this.requestInfo = (String) objects[3];
if (objects[4] != null) {
resultCallBack = (ResultCallBack) objects[4];
}
this.service = (APIService) objects[5];
if (objects.length > 6) {
this.stackInstance = (Stack) objects[6];
this.config = this.stackInstance.config;
}
sendRequest();
}
@Override
public void sendRequest() {
CSHttpConnection connection = new CSHttpConnection(urlToCall, this);
connection.setController(controller);
connection.setHeaders(header);
connection.setInfo(requestInfo);
connection.setAPIService(this.service);
connection.setConfig(this.config);
connection.setStack(this.stackInstance);
connection.setCallBackObject(resultCallBack);
if (urlQueries != null && urlQueries.size() > 0) {
connection.setFormParams(urlQueries);
}
connection.send();
}
@Override
public void onRequestFailed(JSONObject error, int statusCode, ResultCallBack callBackObject) {
Error errResp = new Error();
if (error.has(ERROR_MESSAGE)) {
String errMsg = error.optString(ERROR_MESSAGE);
errResp.setErrorMessage(errMsg);
}
if (error.has(ERROR_CODE)) {
int errCode = error.optInt(ERROR_CODE);
errResp.setErrorCode(errCode);
}
if (error.has(ERRORS)) {
String errorDetail = (String) error.opt(ERRORS);
errResp.setErrorDetail(errorDetail);
}
if (this.resultCallBack != null) {
this.resultCallBack.onRequestFail(ResponseType.NETWORK, errResp);
}
}
@Override
public void onRequestFinished(CSHttpConnection request) {
JSONObject jsonResponse = request.getResponse();
if (request.getController().equalsIgnoreCase(Constants.QUERYOBJECT)) {
EntriesModel model = new EntriesModel(jsonResponse);
notifyClass.getResultObject(model.objectList, jsonResponse, false);
} else if (request.getController().equalsIgnoreCase(Constants.SINGLEQUERYOBJECT)) {
EntriesModel model = new EntriesModel(jsonResponse);
notifyClass.getResultObject(model.objectList, jsonResponse, true);
} else if (request.getController().equalsIgnoreCase(Constants.FETCHENTRY)) {
EntryModel model = new EntryModel(jsonResponse);
entryInstance.resultJson = model.jsonObject;
entryInstance.title = model.title;
entryInstance.url = model.url;
entryInstance.language = model.language;
entryInstance.uid = model.uid;
entryInstance.setTags(model.tags);
if (request.getCallBackObject() != null) {
((EntryResultCallBack) request.getCallBackObject()).onRequestFinish(ResponseType.NETWORK);
}
} else if (request.getController().equalsIgnoreCase(Constants.FETCHALLASSETS)) {
AssetsModel assetsModel = new AssetsModel(jsonResponse);
List
© 2015 - 2025 Weber Informatics LLC | Privacy Policy