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

com.fedapay.net.Retrieve Maven / Gradle / Ivy

package com.fedapay.net;

import com.fasterxml.jackson.databind.DeserializationFeature;
import com.fasterxml.jackson.databind.MapperFeature;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fedapay.exception.ApiError;
import com.fedapay.model.FedaPay;
import com.fedapay.utile.Serializer;
import com.squareup.okhttp.OkHttpClient;
import com.squareup.okhttp.Request;
import com.squareup.okhttp.Response;

public class Retrieve {
	
	public static String lastRequestResponse;
	
	public static  T retrieve( T cls, String serviceUrl, String id) throws Exception {

		Request request = new Request.Builder().url(UrlMaker.getUrl(serviceUrl) + "/" + id)
				.addHeader("Authorization", "Bearer " + FedaPay.apiKey)
				.addHeader("Content-Type", "application/json")
				.addHeader("Accept", "application/json")
				.get().build();

		OkHttpClient client = new OkHttpClient();

		Response response = client.newCall(request).execute();
		String responseString = response.body().string();
		if (response.isSuccessful()) {
			lastRequestResponse = responseString;
			return (T) Serializer.allSerializer(cls, responseString);
		} else {
			if (responseString.contains("message")) {

				ObjectMapper mapper = new ObjectMapper();
				mapper.configure(MapperFeature.ACCEPT_CASE_INSENSITIVE_PROPERTIES, true);
				mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
				
				ApiError error = mapper.readValue(responseString, ApiError.class);
				throw new java.lang.Exception("An error occured : " + error.getMessage());
			} else {
				throw new java.lang.Exception("An error occured : " + responseString);
			}
		}

	}

}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy