Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
74 changes: 70 additions & 4 deletions src/main/java/com/culqi/apioperation/ResponseHelper.java
Original file line number Diff line number Diff line change
Expand Up @@ -48,10 +48,19 @@ public ResponseCulqi list(String url, String params) {
}
}

String env = Config.X_CULQI_ENV_TEST;
if(Culqi.secret_key.contains("live")) {
env = Config.X_CULQI_ENV_LIVE;
}

HttpUrl urlquery = builder.build();
Request request = new Request.Builder()
.url(urlquery)
.header("Authorization","Bearer " + Culqi.secret_key)
.header("x-culqi-env", env)
.header("x-culqi-client", Config.X_CULQI_CLIENT)
.header("x-culqi-client-version", Config.X_CULQI_CLIENT_VERSION)
.header("x-api-version", Config.X_API_VERSION)
.build();

Response response = client.newCall(request).execute();
Expand All @@ -67,11 +76,19 @@ public ResponseCulqi list(String url, String params) {
String result = "";
try {
String api_key = url.contains("tokens") || url.contains("confirm") ? Culqi.public_key : Culqi.secret_key;
String env = Config.X_CULQI_ENV_TEST;
if(api_key.contains("live")) {
env = Config.X_CULQI_ENV_LIVE;
}
String base_url = url.contains("tokens") ? config.API_SECURE : config.API_BASE;
RequestBody body = RequestBody.create(JSON, jsonData);
Request request = new Request.Builder()
.url(base_url+url)
.header("Authorization","Bearer " + api_key)
.header("x-culqi-env", env)
.header("x-culqi-client", Config.X_CULQI_CLIENT)
.header("x-culqi-client-version", Config.X_CULQI_CLIENT_VERSION)
.header("x-api-version", Config.X_API_VERSION)
.post(body)
.build();
Response response = client.newCall(request).execute();
Expand All @@ -86,12 +103,20 @@ public ResponseCulqi create(String url, String jsonData, String rsaId) {
String result = "";
try {
String api_key = url.contains("tokens") || url.contains("confirm") ? Culqi.public_key : Culqi.secret_key;
String env = Config.X_CULQI_ENV_TEST;
if(api_key.contains("live")) {
env = Config.X_CULQI_ENV_LIVE;
}
String base_url = url.contains("tokens") ? config.API_SECURE : config.API_BASE;
RequestBody body = RequestBody.create(JSON, jsonData);
Request request = new Request.Builder()
.url(base_url+url)
.header("Authorization","Bearer " + api_key)
.header("x-culqi-rsa-id", rsaId)
.header("x-culqi-env", env)
.header("x-culqi-client", Config.X_CULQI_CLIENT)
.header("x-culqi-client-version", Config.X_CULQI_CLIENT_VERSION)
.header("x-api-version", Config.X_API_VERSION)
.post(body)
.build();
Response response = client.newCall(request).execute();
Expand All @@ -104,11 +129,20 @@ public ResponseCulqi create(String url, String jsonData, String rsaId) {

public ResponseCulqi update(String url, String jsonData, String id) {
String result = "";
try {System.out.println(config.API_BASE+url+id);
try {
String env = Config.X_CULQI_ENV_TEST;
if(Culqi.secret_key.contains("live")) {
env = Config.X_CULQI_ENV_LIVE;
}
System.out.println(config.API_BASE+url+id);
RequestBody body = RequestBody.create(JSON, jsonData);
Request request = new Request.Builder()
.url(config.API_BASE+url+id)
.header("Authorization","Bearer " + Culqi.secret_key)
.header("x-culqi-env", env)
.header("x-culqi-client", Config.X_CULQI_CLIENT)
.header("x-culqi-client-version", Config.X_CULQI_CLIENT_VERSION)
.header("x-api-version", Config.X_API_VERSION)
.patch(body)
.build();
Response response = client.newCall(request).execute();
Expand All @@ -122,11 +156,19 @@ public ResponseCulqi update(String url, String jsonData, String id) {
public ResponseCulqi update(String url, String jsonData, String id, String rsaId) {
String result = "";
try {
String env = Config.X_CULQI_ENV_TEST;
if(Culqi.secret_key.contains("live")) {
env = Config.X_CULQI_ENV_LIVE;
}
RequestBody body = RequestBody.create(JSON, jsonData);
Request request = new Request.Builder()
.url(config.API_BASE+url+id)
.header("Authorization","Bearer " + Culqi.secret_key)
.header("x-culqi-rsa-id", rsaId)
.header("x-culqi-env", env)
.header("x-culqi-client", Config.X_CULQI_CLIENT)
.header("x-culqi-client-version", Config.X_CULQI_CLIENT_VERSION)
.header("x-api-version", Config.X_API_VERSION)
.patch(body)
.build();
Response response = client.newCall(request).execute();
Expand All @@ -140,10 +182,18 @@ public ResponseCulqi update(String url, String jsonData, String id, String rsaI
public ResponseCulqi get_or_delete(String url, String id, boolean delete) {
String result = "";
try {
String env = Config.X_CULQI_ENV_TEST;
if(Culqi.secret_key.contains("live")) {
env = Config.X_CULQI_ENV_LIVE;
}
Request.Builder builder = new Request.Builder();
builder.url(config.API_BASE + url + id);
System.out.println(config.API_BASE + url + id);
builder.header("Authorization","Bearer " + Culqi.secret_key);
builder.header("Authorization","Bearer " + Culqi.secret_key)
.header("x-culqi-env", env)
.header("x-culqi-client", Config.X_CULQI_CLIENT)
.header("x-culqi-client-version", Config.X_CULQI_CLIENT_VERSION)
.header("x-api-version", Config.X_API_VERSION);
if (delete) {
builder.delete();
}
Expand All @@ -159,10 +209,18 @@ public ResponseCulqi get_or_delete(String url, String id, boolean delete) {
public ResponseCulqi capture(String url, String id) throws Exception {
String result = "";
try {
String env = Config.X_CULQI_ENV_TEST;
if(Culqi.secret_key.contains("live")) {
env = Config.X_CULQI_ENV_LIVE;
}
RequestBody body = RequestBody.create(JSON, "");
Request.Builder builder = new Request.Builder();
builder.url(config.API_BASE + url + id + "/capture/");
builder.header("Authorization", "Bearer " + Culqi.secret_key);
builder.header("Authorization", "Bearer " + Culqi.secret_key)
.header("x-culqi-env", env)
.header("x-culqi-client", Config.X_CULQI_CLIENT)
.header("x-culqi-client-version", Config.X_CULQI_CLIENT_VERSION)
.header("x-api-version", Config.X_API_VERSION);
builder.post(body);
Request request = builder.build();
Response response = client.newCall(request).execute();
Expand All @@ -176,10 +234,18 @@ public ResponseCulqi capture(String url, String id) throws Exception {
public ResponseCulqi confirm(String url, String id) throws Exception {
String result = "";
try {
String env = Config.X_CULQI_ENV_TEST;
if(Culqi.public_key.contains("live")) {
env = Config.X_CULQI_ENV_LIVE;
}
RequestBody body = RequestBody.create(JSON, "");
Request.Builder builder = new Request.Builder();
builder.url(config.API_BASE+url+id+"/confirm/");
builder.header("Authorization","Bearer " + Culqi.public_key);
builder.header("Authorization","Bearer " + Culqi.public_key)
.header("x-culqi-env", env)
.header("x-culqi-client", Config.X_CULQI_CLIENT)
.header("x-culqi-client-version", Config.X_CULQI_CLIENT_VERSION)
.header("x-api-version", Config.X_API_VERSION);
builder.post(body);
Request request = builder.build();
Response response = client.newCall(request).execute();
Expand Down
143 changes: 143 additions & 0 deletions src/main/java/com/culqi/apioperation/service/Generic.java
Original file line number Diff line number Diff line change
@@ -1,12 +1,15 @@
package com.culqi.apioperation.service;

import java.io.IOException;
import java.util.Map;

import com.culqi.apioperation.All;
import com.culqi.apioperation.Create;
import com.culqi.apioperation.Find;
import com.culqi.apioperation.ObjectResult;
import com.culqi.model.ResponseCulqi;
import com.culqi.util.validation.*;
import com.fasterxml.jackson.databind.ObjectMapper;

public class Generic implements All, Create, Find {

Expand All @@ -16,8 +19,17 @@ public Generic(String url) {
this.URL = url;
}

ObjectMapper mapper = new ObjectMapper();

public ResponseCulqi list(Map<String, Object> params) throws Exception {
params = (params == null || params.size() == 0) ? null : params;
Map<String, String> validationResponse = verifyClassValidationList(params, this.URL);
if (validationResponse != null) {
ResponseCulqi response = new ResponseCulqi();
response.setStatusCode(400);
response.setBody(mapper.writeValueAsString(validationResponse));
return response;
}
return new ObjectResult().list(this.URL.replace("/",""), params);
}

Expand All @@ -26,6 +38,13 @@ public ResponseCulqi list() throws Exception {
}

public ResponseCulqi create(Map<String, Object> body) throws Exception {
Map<String, String> validationResponse = verifyClassValidationCreate(body, this.URL);
if (validationResponse != null) {
ResponseCulqi response = new ResponseCulqi();
response.setStatusCode(400);
response.setBody(mapper.writeValueAsString(validationResponse));
return response;
}
return new ObjectResult().create(body, this.URL);
}

Expand All @@ -34,19 +53,143 @@ public ResponseCulqi create(Map<String, Object> body, String rsaPublicKey, Strin
}

public ResponseCulqi get(String id) throws Exception {
Map<String, String> validationResponse = verifyClassValidationUpdate(id, this.URL);
if (validationResponse != null) {
ResponseCulqi response = new ResponseCulqi();
response.setStatusCode(400);
response.setBody(mapper.writeValueAsString(validationResponse));
return response;
}
return new ObjectResult().get_or_delete(this.URL, id, false);
}

public ResponseCulqi update(Map<String, Object> body, String id) throws Exception {
Map<String, String> validationResponse = verifyClassValidationUpdate(id, this.URL);
if (validationResponse != null) {
ResponseCulqi response = new ResponseCulqi();
response.setStatusCode(400);
response.setBody(mapper.writeValueAsString(validationResponse));
return response;
}
return new ObjectResult().update(body, this.URL, id);
}

public ResponseCulqi update(Map<String, Object> body, String id, String rsaPublicKey, String rsaId) throws Exception {
Map<String, String> validationResponse = verifyClassValidationUpdate(id, this.URL);
if (validationResponse != null) {
ResponseCulqi response = new ResponseCulqi();
response.setStatusCode(400);
response.setBody(mapper.writeValueAsString(validationResponse));
return response;
}
return new ObjectResult().update(body, this.URL, id, rsaPublicKey, rsaId);
}

public ResponseCulqi delete(String id) throws Exception {
Map<String, String> validationResponse = verifyClassValidationUpdate(id, this.URL);
if (validationResponse != null) {
ResponseCulqi response = new ResponseCulqi();
response.setStatusCode(400);
response.setBody(mapper.writeValueAsString(validationResponse));
return response;
}
return new ObjectResult().get_or_delete(this.URL, id, true);
}

private static Map<String, String> verifyClassValidationCreate(Map<String, Object> body, String url) throws Exception {
try {
if (url.contains("tokens")) {
TokenValidation.create(body);
}
if (url.contains("charges")) {
ChargeValidation.create(body);
}
if (url.contains("refunds")) {
RefundValidation.create(body);
}
if (url.contains("plans")) {
PlanValidation.create(body);
}
if (url.contains("customers")) {
CustomerValidation.create(body);
}
if (url.contains("cards")) {
CardValidation.create(body);
}
if (url.contains("subscriptions")) {
SubscriptionValidation.create(body);
}
if (url.contains("orders")) {
OrderValidation.create(body);
}
} catch (CustomException e) {
return e.getErrorData();
}
return null;
}

private static Map<String, String> verifyClassValidationUpdate(String id, String url) throws Exception {
try {
if (url.contains("tokens")) {
Helper.validateStringStart(id, "tkn");
}
if (url.contains("charges")) {
Helper.validateStringStart(id, "chr");
}
if (url.contains("refunds")) {
Helper.validateStringStart(id, "ref");
}
if (url.contains("plans")) {
Helper.validateStringStart(id, "pln");
}
if (url.contains("customers")) {
Helper.validateStringStart(id, "cus");
}
if (url.contains("cards")) {
Helper.validateStringStart(id, "crd");
}
if (url.contains("subscriptions")) {
Helper.validateStringStart(id, "sxn");
}
if (url.contains("orders")) {
Helper.validateStringStart(id, "ord");
}
} catch (CustomException e) {
return e.getErrorData();
}
return null;
}

private static Map<String, String> verifyClassValidationList(Map<String, Object> params, String url) throws Exception {
try {
if (url.contains("tokens")) {
TokenValidation.list(params);
}
if (url.contains("charges")) {
ChargeValidation.list(params);
}
if (url.contains("refunds")) {
RefundValidation.list(params);
}
if (url.contains("plans")) {
PlanValidation.list(params);
}
if (url.contains("customers")) {
CustomerValidation.list(params);
}
if (url.contains("cards")) {
CardValidation.list(params);
}
if (url.contains("subscriptions")) {
SubscriptionValidation.list(params);
}
if (url.contains("orders")) {
OrderValidation.list(params);
}
} catch (CustomException e) {
return e.getErrorData();
}
return null; // No validation errors
}

}
Loading