package com.sudosaints.excusepro.util;
import java.io.File;
import java.io.InputStream;
import java.io.Serializable;
import java.util.Properties;
public class ApiRequest implements Serializable {
public enum RequestMethod {GET, POST, POST_RAW, FILE_UPLOAD};
public enum RequestName {
GET_CATEGORIES,
GET_EXCUSES
}
RequestName requestName;
RequestMethod requestMethod;
String url;
Properties reqParams = new Properties();
//Used for FileName
private String fileName;
private boolean isUrlAbsolute = false;
private boolean useBasicAuth = false;
private String[] pathVariables;
private InputStream postDataStream;
private File postFile;
private int apiVersion;
public ApiRequest() {
apiVersion = 1;
requestMethod = RequestMethod.GET;
}
public ApiRequest(RequestName reqName, String[] pathVariables) {
this();
this.pathVariables = pathVariables;
setRequestName(reqName);
}
public ApiRequest setParam (String name, String value) {
if (null!=value) {
reqParams.setProperty(name, value);
}
return this;
}
public Properties getParams() {
return reqParams;
}
public ApiRequest setUrl (String url) {
this.url = url;
return this;
}
public ApiRequest setRequestMethod (RequestMethod method) {
this.requestMethod = method;
return this;
}
public RequestMethod getRequestMethod() {
return requestMethod;
}
public String getUrl() {
return url;
}
public RequestName getRequestName() {
return requestName;
}
public ApiRequest setRequestName(RequestName requestName) {
this.requestName = requestName;
switch (requestName) {
case GET_CATEGORIES:
url = "/api/getCategories";
break;
case GET_EXCUSES:
url = "/api/getExcuses";
break;
default:
break;
}
return this;
}
public boolean isUrlAbsolute() {
return isUrlAbsolute;
}
public ApiRequest setUrlAbsolute(boolean isUrlAbsolute) {
this.isUrlAbsolute = isUrlAbsolute;
return this;
}
public InputStream getPostDataStream() {
return postDataStream;
}
public ApiRequest setPostDataStream(InputStream postDataStream) {
this.postDataStream = postDataStream;
return this;
}
public File getPostFile() {
return postFile;
}
public ApiRequest setPostFile(File postFile) {
this.postFile = postFile;
return this;
}
public int getApiVersion() {
return apiVersion;
}
public boolean useBasicAuth() {
return useBasicAuth;
}
public void useBasicAuth(boolean useBasicAuth) {
this.useBasicAuth = useBasicAuth;
}
public String getFileName() {
return fileName;
}
public void setFileName(String fileName) {
this.fileName = fileName;
}
}