diff --git a/src/main/java/org/soapService/Domain/AccountVerificationRequest.java b/src/main/java/org/soapService/Domain/AccountVerificationRequest.java index 398519e31904c869a0ccf7344acd5585bd67f8f2..fd163272b207add6bd7a44310984e7d5a5e816ea 100644 --- a/src/main/java/org/soapService/Domain/AccountVerificationRequest.java +++ b/src/main/java/org/soapService/Domain/AccountVerificationRequest.java @@ -16,4 +16,4 @@ public class AccountVerificationRequest { private String status; private String createdAt; private String updatedAt; -} +} \ No newline at end of file diff --git a/src/main/java/org/soapService/Repository/AccountVerificationRequestRepository.java b/src/main/java/org/soapService/Repository/AccountVerificationRequestRepository.java index 6bf7e5a0ebb4a496668f455fe4143231bb358033..44f1e5e0d3a71f2d6c71fae481f5dbb916b36865 100644 --- a/src/main/java/org/soapService/Repository/AccountVerificationRequestRepository.java +++ b/src/main/java/org/soapService/Repository/AccountVerificationRequestRepository.java @@ -1,20 +1,41 @@ package org.soapService.Repository; +import org.soapService.Config.Database; import org.soapService.Domain.AccountVerificationRequest; +import java.sql.Connection; +import java.sql.PreparedStatement; import java.sql.SQLException; import java.util.List; +import java.util.UUID; public class AccountVerificationRequestRepository implements BaseRepository<AccountVerificationRequest> { + private static Connection conn = Database.getConnection(); + public int add(AccountVerificationRequest data) throws SQLException { - return 0; + String query = "INSERT INTO account_verification_requests(user_id, status, uuid) VALUES (?, ?, ?)"; + PreparedStatement ps = conn.prepareStatement(query); + ps.setString(1, data.getUserId()); + ps.setString(2, "PENDING"); + ps.setString(3, UUID.randomUUID().toString()); + + return ps.executeUpdate(); } public List<AccountVerificationRequest> getAll() throws SQLException { + String query = "SELECT id, uuid, user_id, status, created_at, updated_at FROM account_verification_requests"; + PreparedStatement ps = conn.prepareStatement(query); + + System.out.println(ps.executeQuery()); return null; } public AccountVerificationRequest getById(int id) throws SQLException { + String query = "SELECT id, uuid, user_id, status, created_at, updated_at FROM account_verification_requests WHERE id = ?"; + PreparedStatement ps = conn.prepareStatement(query); + ps.setInt(1, id); + + System.out.println(ps.executeQuery()); return null; } diff --git a/src/main/java/org/soapService/Services/AccountVerificationRequestService.java b/src/main/java/org/soapService/Services/AccountVerificationRequestService.java index 2e996e42223e7b7ac706fa6b3abe6f7da209e6fa..c77dd47119934af35ed5ac32b27e22781043974b 100644 --- a/src/main/java/org/soapService/Services/AccountVerificationRequestService.java +++ b/src/main/java/org/soapService/Services/AccountVerificationRequestService.java @@ -1,16 +1,19 @@ package org.soapService.Services; +import org.soapService.Common.ServiceResponse; import org.soapService.Domain.AccountVerificationRequest; import javax.jws.HandlerChain; import javax.jws.WebMethod; import javax.jws.WebParam; import javax.jws.WebService; +import javax.xml.bind.annotation.XmlSeeAlso; import javax.xml.ws.RequestWrapper; import javax.xml.ws.soap.SOAPFaultException; import java.util.List; @WebService +@XmlSeeAlso({ ServiceResponse.class }) @HandlerChain(file = "handler-chain.xml") public interface AccountVerificationRequestService { @WebMethod(operationName = "GetRequests") @@ -19,7 +22,8 @@ public interface AccountVerificationRequestService { @WebMethod(operationName = "CreateRequest") @RequestWrapper(className = "AccountVerificationRequestService.CreateRequest") - public boolean createRequest() throws SOAPFaultException; + public ServiceResponse<AccountVerificationRequest> createRequest(@WebParam(name = "userId") String userId) + throws SOAPFaultException; @WebMethod(operationName = "AcceptRequest") @RequestWrapper(className = "AccountVerificationRequestService.AcceptRequest") diff --git a/src/main/java/org/soapService/Services/AccountVerificationRequestServiceImpl.java b/src/main/java/org/soapService/Services/AccountVerificationRequestServiceImpl.java index 2672038520e1732a58c7f39717b4c420adbef170..bba6aa7e84aa94fc2eb38aa0315b1a336826c89b 100644 --- a/src/main/java/org/soapService/Services/AccountVerificationRequestServiceImpl.java +++ b/src/main/java/org/soapService/Services/AccountVerificationRequestServiceImpl.java @@ -1,19 +1,56 @@ package org.soapService.Services; +import org.soapService.Common.HTTPStatusCode; +import org.soapService.Common.ServiceResponse; import org.soapService.Domain.AccountVerificationRequest; +import org.soapService.Exceptions.RequestException; +import org.soapService.Exceptions.ValidationException; +import org.soapService.Repository.AccountVerificationRequestRepository; +import org.soapService.Validations.AccountVerificationRequestValidation; import javax.jws.WebService; import javax.xml.ws.soap.SOAPFaultException; + +import java.sql.SQLException; +import java.util.ArrayList; import java.util.List; @WebService(endpointInterface = "org.soapService.Services.AccountVerificationRequestService") public class AccountVerificationRequestServiceImpl extends BaseService implements AccountVerificationRequestService { + private static AccountVerificationRequestRepository accountVerificationRepository = new AccountVerificationRequestRepository(); + private static AccountVerificationRequestValidation accountVerificationServiceValidation = new AccountVerificationRequestValidation(); + public List<AccountVerificationRequest> getRequests() throws SOAPFaultException { return null; } - public boolean createRequest() throws SOAPFaultException { - return false; + public ServiceResponse<AccountVerificationRequest> createRequest(String userId) throws SOAPFaultException { + List<AccountVerificationRequest> lru = new ArrayList<>(); + try { + accountVerificationServiceValidation.validateCreateVerificationRequest(userId); + + AccountVerificationRequest accountVerificationRequest = new AccountVerificationRequest(); + accountVerificationRequest.setUserId(userId); + + lru.add(accountVerificationRequest); + accountVerificationRepository.add(accountVerificationRequest); + } catch (ValidationException e) { + System.out.println(e.getMessage()); + new RequestException(HTTPStatusCode.BAD_REQUEST.getCodeStr(), e.getMessage()); + } + catch (SQLException e) { + System.out.println(e.getMessage()); + new RequestException(HTTPStatusCode.INTERNAL_SERVER_ERROR.getCodeStr(), + "Something went wrong, please try again later"); + } + + ServiceResponse<AccountVerificationRequest> response = new ServiceResponse<>(); + response.setStatus(HTTPStatusCode.OK.getCodeStr()); + response.setMessage("Report successfully created"); + response.setData(lru); + + System.out.println(response.toString()); + return response; } public boolean acceptRequest(int userId) throws SOAPFaultException { diff --git a/src/main/java/org/soapService/Validations/AccountVerificationRequestValidation.java b/src/main/java/org/soapService/Validations/AccountVerificationRequestValidation.java new file mode 100644 index 0000000000000000000000000000000000000000..3556edd64ab00a6ac5c7fb94ded30884c856aa6a --- /dev/null +++ b/src/main/java/org/soapService/Validations/AccountVerificationRequestValidation.java @@ -0,0 +1,12 @@ +package org.soapService.Validations; + +import org.soapService.Common.HTTPStatusCode; +import org.soapService.Exceptions.ValidationException; + +public class AccountVerificationRequestValidation { + public void validateCreateVerificationRequest(String userId) throws ValidationException { + if (userId == null || userId.trim().equals("")) { + throw new ValidationException(HTTPStatusCode.BAD_REQUEST.getCodeStr(), "User ID is required"); + } + } +}