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

ec.gob.senescyt.sniese.commons.clients.ServicioArchivosCliente Maven / Gradle / Ivy

There is a newer version: 2.0.5
Show newest version
package ec.gob.senescyt.sniese.commons.clients;

import com.fasterxml.jackson.databind.JsonNode;
import com.sun.jersey.api.client.ClientResponse;
import com.sun.jersey.core.util.MultivaluedMapImpl;
import com.sun.jersey.multipart.FormDataMultiPart;
import com.sun.jersey.multipart.file.StreamDataBodyPart;
import ec.gob.senescyt.sniese.commons.security.PrincipalProvider;

import javax.ws.rs.core.MultivaluedMap;
import java.io.InputStream;
import java.util.List;

public class ServicioArchivosCliente extends AbstractServicioCliente implements ServicioCliente {
    private static final String URL_PARA_OBTENER_ARCHIVOS = "archivos";
    private static final String URL_PARA_SUBIR_ARCHIVOS = "archivos/subir";

    public ServicioArchivosCliente(ServicioFactory factory, PrincipalProvider principalProvider) {
        super(factory, principalProvider);
    }

    public JsonNode obtenerArchivosConId(List ids) {
        MultivaluedMap parametros = construirParametrosConIds(ids);
        JsonNode node = obtenerArchivosConParametros(parametros);
        return node.get("elementos");
    }

    private MultivaluedMap construirParametrosConIds(List ids) {
        MultivaluedMap parametros = new MultivaluedMapImpl();
        for (Integer id : ids) {
            parametros.add("id", String.valueOf(id));
        }
        return parametros;
    }

    private JsonNode obtenerArchivosConParametros(MultivaluedMap parametros) {
        return get(URL_PARA_OBTENER_ARCHIVOS, parametros).getEntity(JsonNode.class);
    }

    public JsonNode obtenerArchivosConId(List ids, String hash) {
        MultivaluedMap parametros = construirParametrosConIds(ids);
        parametros.add("hash", hash);
        JsonNode node = obtenerArchivosConParametros(parametros);
        return node.get("elementos");
    }

    public Long subirArchivo(InputStream inputStream, String nombreDeArchivo) {
        FormDataMultiPart multiPart = new FormDataMultiPart();
        multiPart.bodyPart(new StreamDataBodyPart("file", inputStream, nombreDeArchivo));
        ClientResponse response = multipartPost(URL_PARA_SUBIR_ARCHIVOS, multiPart);
        return response.getEntity(Long.class);
    }

}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy