diff --git a/pom.xml b/pom.xml index 6f4b0a2ebe09d5ad28f0ef1ef2ba6bef1a8685e3..e8cc47535a8dbf02a353c4f18818c22ab385f948 100644 --- a/pom.xml +++ b/pom.xml @@ -43,6 +43,13 @@ <artifactId>bcrypt</artifactId> <version>0.10.2</version> </dependency> + <!-- https://mvnrepository.com/artifact/com.google.code.gson/gson --> + <dependency> + <groupId>com.google.code.gson</groupId> + <artifactId>gson</artifactId> + <version>2.10.1</version> + </dependency> + </dependencies> <build> diff --git a/src/main/java/org/soapService/Models/CatalogRequest/AcceptRequest.java b/src/main/java/org/soapService/Models/CatalogRequest/AcceptRequest.java new file mode 100644 index 0000000000000000000000000000000000000000..fef7036efca13aafa79ec5b726aaaee3a8aa5f0e --- /dev/null +++ b/src/main/java/org/soapService/Models/CatalogRequest/AcceptRequest.java @@ -0,0 +1,17 @@ +package org.soapService.Models.CatalogRequest; + + +import lombok.AllArgsConstructor; +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.Setter; + +// This is just an example +@Getter +@Setter +@AllArgsConstructor +@NoArgsConstructor +public class AcceptRequest { + private String title; + private String description; +} diff --git a/src/main/java/org/soapService/Services/CatalogRequestServiceImpl.java b/src/main/java/org/soapService/Services/CatalogRequestServiceImpl.java index 515a9c386e6bfd8457f2f9ee13c88b0e2803c9d7..1f14bd446bb0072f94ad7a204db804b62a7d1d7b 100644 --- a/src/main/java/org/soapService/Services/CatalogRequestServiceImpl.java +++ b/src/main/java/org/soapService/Services/CatalogRequestServiceImpl.java @@ -1,15 +1,23 @@ package org.soapService.Services; +import com.google.gson.Gson; import org.soapService.Common.HTTPStatusCode; import org.soapService.Common.ServiceResponse; import org.soapService.Domain.CatalogRequest; import org.soapService.Exceptions.RequestException; +import org.soapService.Models.CatalogRequest.AcceptRequest; import org.soapService.Utils.FileType; import org.soapService.Utils.FileUploader; +import org.soapService.Utils.HTTPRequest; +import org.soapService.Utils.HTTPRequestMethod; import javax.activation.DataHandler; import javax.jws.WebService; import javax.xml.ws.soap.SOAPFaultException; +import java.io.BufferedReader; +import java.io.InputStreamReader; +import java.io.OutputStream; +import java.net.HttpURLConnection; import java.util.List; @WebService(endpointInterface = "org.soapService.Services.CatalogRequestService") @@ -31,6 +39,40 @@ public class CatalogRequestServiceImpl extends BaseService implements CatalogReq } public boolean acceptRequest(int requestId) throws SOAPFaultException { + // Example of sending http request to php + try { + HttpURLConnection conn = HTTPRequest.getConnection("/catalog", HTTPRequestMethod.POST); + conn.setRequestProperty("Content-Type", "application/json"); + conn.setRequestProperty("Accept", "application/json"); + conn.setDoOutput(true); + + Gson gson = new Gson(); + String requestBody = gson.toJson(new AcceptRequest("title", "description")); + + try (OutputStream os = conn.getOutputStream()) { + byte[] input = requestBody.getBytes("utf-8"); + os.write(input, 0, input.length); + } + + int responseCode = conn.getResponseCode(); + if (responseCode == HttpURLConnection.HTTP_OK) { + BufferedReader in = new BufferedReader(new InputStreamReader(conn.getInputStream())); + String inputLine; + StringBuffer response = new StringBuffer(); + + while ((inputLine = in.readLine()) != null) { + response.append(inputLine); + } + + in.close(); + + System.out.println(response.toString()); + } else { + System.out.println(responseCode); + } + } catch (Exception e) { + new RequestException(HTTPStatusCode.INTERNAL_SERVER_ERROR.getCodeStr(), e.getMessage()); + } return false; } diff --git a/src/main/java/org/soapService/Utils/HTTPRequest.java b/src/main/java/org/soapService/Utils/HTTPRequest.java new file mode 100644 index 0000000000000000000000000000000000000000..410b3bde27663573a61cdc29ee4cbeb81eb48da9 --- /dev/null +++ b/src/main/java/org/soapService/Utils/HTTPRequest.java @@ -0,0 +1,22 @@ +package org.soapService.Utils; + +import io.github.cdimascio.dotenv.Dotenv; +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.Setter; + +import java.net.HttpURLConnection; +import java.net.URL; + +@Getter +@Setter +@NoArgsConstructor +public class HTTPRequest { + public static HttpURLConnection getConnection(String endpoint, HTTPRequestMethod method) throws Exception { + Dotenv dotenv = Dotenv.load(); + URL url = new URL(dotenv.get("PHP_SERVICE_BASE_URL") + endpoint); + HttpURLConnection conn = (HttpURLConnection) url.openConnection(); + conn.setRequestMethod(method.name()); + return conn; + } +} diff --git a/src/main/java/org/soapService/Utils/HTTPRequestMethod.java b/src/main/java/org/soapService/Utils/HTTPRequestMethod.java new file mode 100644 index 0000000000000000000000000000000000000000..988895f247fa86e9d78474b713c1d1ea39870d38 --- /dev/null +++ b/src/main/java/org/soapService/Utils/HTTPRequestMethod.java @@ -0,0 +1,13 @@ +package org.soapService.Utils; + + +import lombok.AllArgsConstructor; + +@AllArgsConstructor +public enum HTTPRequestMethod { + GET, + POST, + DELETE, + PATCH, + PUT; +}