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

mx.emite.sdk.clientes.ClienteJson Maven / Gradle / Ivy

Go to download

Este kit de consumo provee a los integradores de Apis de Java para construir software que consuma los diferentes servicios web publicados por Emite Facturacion

The newest version!
package mx.emite.sdk.clientes;

import java.util.Collections;

import lombok.Getter;
import lombok.extern.slf4j.Slf4j;
import mx.emite.sdk.enums.Ambiente;
import mx.emite.sdk.errores.ApiException;
import mx.emite.sdk.errores.I_Api_Errores;

@Slf4j
@Getter
public class ClienteJson {

	private final Ambiente ambiente;
	private final ClienteHttp http;
	private final Mapeador mapeador = new Mapeador();
	
	public ClienteJson(final Ambiente ambiente){
		this.ambiente=ambiente;
		this.http=new ClienteHttp();
		log.debug("cliente emite creado "+ambiente.name());
	}
	
	public  T get(final String ruta, final Class clazz) throws ApiException{
		final RespuestaHttp response = http.get(ruta);
		this.errores(response);
		return mapeador.deserializa(response, clazz);
	}
	
	public  T post(final String ruta,Object objeto, final Class clazz) throws ApiException{
		final RespuestaHttp response = http.post(ruta,mapeador.serializa(objeto));
		this.errores(response);
		return mapeador.deserializa(response, clazz);
	}
	
	
	
	private void errores(final RespuestaHttp response) throws ApiException {
        if (response.getStatusCode() >= 300) {
            if (response.isJson()) {
                ApiException error = mapeador.deserializa(response.getBody(),ApiException.class);
                error.setMensajes(Collections.singletonList(response.getBody()));
                throw error;
            } else {
                log.error("La respuesta no es Json. Code: {}, body: {} ", response.getStatusCode(), response.getBody());
                ApiException error = new ApiException(I_Api_Errores.PROCESANDO_RESPUESTA,
                		"["
                        + response.getStatusCode() + "] Internal server error");
                error.setMensajes(Collections.singletonList(response.getBody()));
                
                throw error;
            }
        }
    }

	
	
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy