package quickutils.core.rest;
import com.android.volley.Request;
import com.google.gson.Gson;
import com.google.gson.reflect.TypeToken;
import java.lang.reflect.Type;
import java.util.HashMap;
public final class NetworkCreator {
NetworkCreator() {
}
/**
* @param headers Headers request, it can be null
*/
public NetworkManager.INetworkManagerBuilder GET(Header headers) {
return new NetworkManager.Builder().setMethod(Request.Method.GET).setHeaders(headers.getHeaders());
}
/**
*
*/
public NetworkManager.INetworkManagerBuilder GET() {
return new NetworkManager.Builder().setMethod(Request.Method.GET);
}
/**
* @param headers Headers request, it can be null
* @param bodyObject Body request, it not null
* @return
*/
public NetworkManager.INetworkManagerBuilder POST(Header headers, Object bodyObject) {
return new NetworkManager.Builder().setMethod(Request.Method.POST).setBodyRequest(generateBodyRequest(bodyObject)).setHeaders(headers.getHeaders());
}
/**
* @param headers Headers request, it can be null
* @param bodyRequest Body request, it not null
* @return
*/
public NetworkManager.INetworkManagerBuilder POST(Header headers, Body bodyRequest) {
return new NetworkManager.Builder().setMethod(Request.Method.POST).setBodyRequest(bodyRequest.getBody()).setHeaders(headers.getHeaders());
}
/**
* @param bodyObject Body request, it not null
* @return
*/
public NetworkManager.INetworkManagerBuilder POST(Object bodyObject) {
return new NetworkManager.Builder().setMethod(Request.Method.POST).setBodyRequest(generateBodyRequest(bodyObject));
}
/**
* @param bodyRequest Body request, it not null
* @return
*/
public NetworkManager.INetworkManagerBuilder POST(Body bodyRequest) {
return new NetworkManager.Builder().setMethod(Request.Method.POST).setBodyRequest(bodyRequest.getBody());
}
/**
* @param headers Headers request, it can be null
* @param bodyObject Body request, it not null
* @return
*/
public NetworkManager.INetworkManagerBuilder PUT(Header headers, Object bodyObject) {
return new NetworkManager.Builder().setMethod(Request.Method.PUT).setBodyRequest(generateBodyRequest(generateBodyRequest(bodyObject))).setHeaders(headers.getHeaders());
}
/**
* @param headers Headers request, it can be null
* @param bodyRequest Body request, it not null
* @return
*/
public NetworkManager.INetworkManagerBuilder PUT(Header headers, Body bodyRequest) {
return new NetworkManager.Builder().setMethod(Request.Method.PUT).setBodyRequest(generateBodyRequest(bodyRequest.getBody())).setHeaders(headers.getHeaders());
}
/**
* @param bodyObject Body request, it not null
* @return
*/
public NetworkManager.INetworkManagerBuilder PUT(Object bodyObject) {
return new NetworkManager.Builder().setMethod(Request.Method.PUT).setBodyRequest(generateBodyRequest(bodyObject));
}
/**
* @param bodyRequest Body request, it not null
* @return
*/
public NetworkManager.INetworkManagerBuilder PUT(Body bodyRequest) {
return new NetworkManager.Builder().setMethod(Request.Method.PUT).setBodyRequest(bodyRequest.getBody());
}
/**
* @param headers Headers request, it can be null
* @return
*/
public NetworkManager.INetworkManagerBuilder DELETE(Header headers) {
return new NetworkManager.Builder().setMethod(Request.Method.DELETE).setHeaders(headers.getHeaders());
}
private HashMap<String, Object> generateBodyRequest(Object bodyRequest) {
String bodyJson = new Gson().toJson(bodyRequest);
Type type = new TypeToken<HashMap<String, String>>() {
}.getType();
return new Gson().fromJson(bodyJson, type);
}
}