ec.gob.senescyt.sniese.commons.clients.ServicioArchivosCliente Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of sniese-commons Show documentation
Show all versions of sniese-commons Show documentation
Librería que contiene clases de uso comun para sniese hechos en dropwizard
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