|
@@ -1,19 +1,23 @@
|
|
|
package com.ademicon.service;
|
|
|
|
|
|
-import java.net.ConnectException;
|
|
|
+import java.io.BufferedReader;
|
|
|
+import java.io.InputStreamReader;
|
|
|
+import java.io.OutputStream;
|
|
|
+import java.io.OutputStreamWriter;
|
|
|
+import java.io.PrintWriter;
|
|
|
+import java.io.Reader;
|
|
|
+import java.net.HttpURLConnection;
|
|
|
+import java.net.URL;
|
|
|
|
|
|
import javax.ws.rs.client.ClientBuilder;
|
|
|
import javax.ws.rs.client.Entity;
|
|
|
-import javax.ws.rs.core.Form;
|
|
|
import javax.ws.rs.core.MediaType;
|
|
|
import javax.ws.rs.core.Response;
|
|
|
|
|
|
-import com.ademicon.model.ContratoModel;
|
|
|
-import com.ademicon.model.ContratoResponse;
|
|
|
import com.ademicon.model.auth.AccessModel;
|
|
|
-import com.ademicon.repository.ContratoRepository;
|
|
|
import com.ademicon.service.auth.AccessService;
|
|
|
import com.ademicon.service.auth.TokenService;
|
|
|
+import com.fasterxml.jackson.databind.JsonNode;
|
|
|
import com.fasterxml.jackson.databind.ObjectMapper;
|
|
|
|
|
|
public class ContratoService {
|
|
@@ -22,80 +26,107 @@ public class ContratoService {
|
|
|
|
|
|
private static TokenService tokenService = new TokenService();
|
|
|
|
|
|
- private static ContratoRepository contratoRepository = new ContratoRepository();
|
|
|
-
|
|
|
- public ContratoResponse incluir(ContratoModel contrato) throws Exception {
|
|
|
+ public Response incluir(String contrato) throws Exception {
|
|
|
|
|
|
AccessModel accessModel = accessService.find();
|
|
|
|
|
|
String token = tokenService.getToken();
|
|
|
+ System.out.println("PLACE CONTRATO");
|
|
|
+ System.out.println(contrato);
|
|
|
|
|
|
Response response = ClientBuilder.newClient()
|
|
|
.target(accessModel.getPlaceti_url_base() + "/api/v1/contrato/incluir")
|
|
|
- .request(MediaType.APPLICATION_JSON).header("Authorization", "Bearer " + token)
|
|
|
+ .request(MediaType.APPLICATION_JSON)
|
|
|
+ .header("Content-Type", "application/json;charset=UTF-8")
|
|
|
+ .header("Accept", "application/json;charset=UTF-8")
|
|
|
+ .header("Authorization", "Bearer " + token)
|
|
|
.buildPost(Entity.entity(contrato, MediaType.APPLICATION_JSON)).invoke();
|
|
|
|
|
|
- int status = response.getStatus();
|
|
|
- if (status == 200) {
|
|
|
- String json = response.readEntity(String.class);
|
|
|
- ObjectMapper mapper = new ObjectMapper();
|
|
|
- return mapper.readValue(json, ContratoResponse.class);
|
|
|
-
|
|
|
- } else {
|
|
|
- throw new ConnectException();
|
|
|
-
|
|
|
- }
|
|
|
+ return response;
|
|
|
|
|
|
}
|
|
|
|
|
|
- public ContratoResponse upload(String numeroRegistroEletronico, String arquivo) throws Exception {
|
|
|
-
|
|
|
+ public Response upload(String numeroRegistroEletronico, String arquivo) throws Exception {
|
|
|
try {
|
|
|
AccessModel accessModel = accessService.find();
|
|
|
|
|
|
String token = tokenService.getToken();
|
|
|
|
|
|
- Form form = new Form();
|
|
|
- form.param("file", arquivo);
|
|
|
+ ObjectMapper mapper = new ObjectMapper();
|
|
|
+
|
|
|
+ JsonNode file = mapper.readTree(arquivo);
|
|
|
+
|
|
|
+ String boundary = "===" + System.currentTimeMillis() + "===";
|
|
|
+ URL url = new URL(
|
|
|
+ accessModel.getPlaceti_url_base() + "/api/v1/contrato/upload/numeroRegistroEletronico/"
|
|
|
+ + numeroRegistroEletronico);
|
|
|
+
|
|
|
+ HttpURLConnection conn = (HttpURLConnection) url.openConnection();
|
|
|
+ conn.setRequestMethod("PUT");
|
|
|
+ conn.setRequestProperty("Accept-Charset", "UTF-8");
|
|
|
+ conn.setUseCaches(false);
|
|
|
+ conn.setRequestProperty("Content-Type", "multipart/form-data; boundary=" + boundary);
|
|
|
+ conn.setRequestProperty("User-Agent", "CodeJava Agent");
|
|
|
+ conn.setDoInput(true);
|
|
|
+ conn.setDoOutput(true);
|
|
|
+ conn.setRequestProperty("Authorization", "Bearer " + token);
|
|
|
+
|
|
|
|
|
|
- Response response = ClientBuilder.newClient()
|
|
|
- .target(accessModel.getPlaceti_url_base()
|
|
|
- + "/api/v1/contrato/upload/numeroRegistroEletronico/:numeroRegistroEletronico")
|
|
|
- .queryParam("numeroRegistroEletronico", numeroRegistroEletronico)
|
|
|
- .request()
|
|
|
- .header("Content-Type", "multipart/form-data")
|
|
|
- .header("Accept", "application/json")
|
|
|
- .header("Authorization", "Bearer " + token)
|
|
|
- .buildPost(Entity.form(form)).invoke();
|
|
|
+
|
|
|
+ OutputStream outputStream = conn.getOutputStream();
|
|
|
+ PrintWriter writer = new PrintWriter(new OutputStreamWriter(outputStream, "UTF-8"), true);
|
|
|
|
|
|
- if (response.getStatus() >= 200 && response.getStatus() < 300) {
|
|
|
- ContratoResponse contrato = response.readEntity(ContratoResponse.class);
|
|
|
- if (!contrato.getNumeroRegistroEletronico().isEmpty()) {
|
|
|
- int i = contratoRepository.incluir(contrato);
|
|
|
- if (i == 1) {
|
|
|
- return contrato;
|
|
|
+ writer.append("--" + boundary).append("\r\n");
|
|
|
+ writer.append("Content-Disposition: form-data; name=\"file\"; filename=\"contrato.pdf\"")
|
|
|
+ .append("\r\n");
|
|
|
+ writer.append("Content-Type: application/octet-stream").append("\r\n");
|
|
|
+ writer.append("Content-Transfer-Encoding: binary").append("\r\n");
|
|
|
+ writer.append("\r\n");
|
|
|
+ writer.flush();
|
|
|
|
|
|
- } else {
|
|
|
- throw new Exception(
|
|
|
- "Falha ao gravar o número do contrato: " + contrato.getNumeroRegistroEletronico());
|
|
|
+ byte[] bytes = file.get("file").asText().getBytes("UTF-8");
|
|
|
|
|
|
- }
|
|
|
+ outputStream.write(bytes);
|
|
|
|
|
|
- } else {
|
|
|
- throw new Exception("Falha ao registrar contrato");
|
|
|
+ outputStream.flush();
|
|
|
|
|
|
- }
|
|
|
+
|
|
|
+ writer.append("\r\n");
|
|
|
+ writer.flush();
|
|
|
+
|
|
|
+
|
|
|
+ writer.append("--" + boundary + "--").append("\r\n");
|
|
|
+ writer.close();
|
|
|
+ outputStream.close();
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ conn.connect();
|
|
|
+
|
|
|
+ Reader inputCreateUser = new BufferedReader(
|
|
|
+ new InputStreamReader(conn.getInputStream(), "UTF-8"));
|
|
|
+ String retCreateUser = "";
|
|
|
+ for (int c = inputCreateUser.read(); c != -1; c = inputCreateUser.read()) {
|
|
|
+ retCreateUser += (char) c;
|
|
|
+ }
|
|
|
+
|
|
|
+ System.out.println(String.format("RESPONSE: %d - %s: data: %s", conn.getResponseCode(),
|
|
|
+ conn.getResponseMessage(), retCreateUser));
|
|
|
+
|
|
|
+ if (conn.getResponseCode() == 200) {
|
|
|
+ return Response.ok().entity(retCreateUser).build();
|
|
|
|
|
|
} else {
|
|
|
- throw new Exception("Falha de conexão");
|
|
|
+ return Response.status(conn.getResponseCode()).build();
|
|
|
|
|
|
}
|
|
|
|
|
|
} catch (Exception e) {
|
|
|
+ System.out.println("FALHA FOLDER SERVICE SAVE");
|
|
|
+ System.out.println(e);
|
|
|
+
|
|
|
throw e;
|
|
|
|
|
|
}
|
|
|
-
|
|
|
}
|
|
|
-
|
|
|
}
|