From d8f600b673b22f4c8f93e6228e05ae435ceee9c2 Mon Sep 17 00:00:00 2001 From: Mahmoud Gaber <89939442+MahmoudHosamGaber@users.noreply.github.com> Date: Sun, 5 May 2024 20:52:25 +0300 Subject: [PATCH] feat: Add all freelancer profile CRUD operations (#54) * feat: Add freelancer skills CRUD * feat: Add Freelancer language CRUD * feat: Add freelancer education CRUD * feat: Add freelancer experiences CRUD * feat: Add freelancer achievement CRUD * fix: Add db repositories * fix: Add repositories to the user command and add document collections * lint: Use linting * fix: Change withSuccess to withStatusCode * Payments `GetWallet` and `CreateWallet` unit testing (#58) * Added `GetWallet` request and response * Added `CreatePaymentRequest` request/response * Added inheritance from the Command Request and Response class to the * Added request/response * Added `createWallet` and `getWallet` unit testing --------- Co-authored-by: AhmedNasserG Co-authored-by: Abdulaziz-Hassan * fix: Update user profile CRUD Update the user profile CRUD for better information hiding and move the requests and responses into the shared folder * fix: Remove duplicate files --------- Co-authored-by: Abdullah Ahmad Fouad <57245606+Abdullah204@users.noreply.github.com> Co-authored-by: AhmedNasserG Co-authored-by: Abdulaziz-Hassan --- .../com/workup/payments/RabbitMQListener.java | 16 +++++ .../payments/PaymentsApplicationTests.java | 62 ++++++++++++++++ services/users/.mvn/jvm.config | 1 + services/users/pom.xml | 2 +- .../AddFreelancerAchievementCommand.java | 36 ++++++++++ .../AddFreelancerEducationCommand.java | 39 +++++++++++ .../AddFreelancerExperienceCommand.java | 36 ++++++++++ .../AddFreelancerLanguageCommand.java | 25 +++++++ .../commands/AddFreelancerSkillCommand.java | 28 ++++++++ .../commands/ClientGetProfileCommand.java | 2 +- .../commands/ClientSetProfileCommand.java | 28 ++++---- .../commands/FreelancerGetPhotoCommand.java | 4 +- .../FreelancerGetProfileBriefCommand.java | 2 +- .../commands/FreelancerGetProfileCommand.java | 2 +- .../commands/FreelancerSetProfileCommand.java | 1 - .../commands/FreelancerSetResumeCommand.java | 4 +- .../GetFreelancerAchievementsCommand.java | 29 ++++++++ .../GetFreelancerEducationsCommand.java | 28 ++++++++ .../GetFreelancerExperiencesCommand.java | 30 ++++++++ .../GetFreelancerLanguagesCommand.java | 27 +++++++ .../commands/GetFreelancerSkillsCommand.java | 28 ++++++++ .../RemoveFreelancerAchievementCommand.java | 35 ++++++++++ .../RemoveFreelancerEducationCommand.java | 36 ++++++++++ .../RemoveFreelancerExperienceCommand.java | 35 ++++++++++ .../RemoveFreelancerLanguageCommand.java | 24 +++++++ .../RemoveFreelancerSkillCommand.java | 24 +++++++ .../UpdateFreelancerAchievementCommand.java | 53 ++++++++++++++ .../UpdateFreelancerEducationCommand.java | 70 +++++++++++++++++++ .../UpdateFreelancerExperienceCommand.java | 61 ++++++++++++++++ .../workup/users/commands/UserCommand.java | 6 ++ .../GetFreelancerAchievementsResponse.java | 15 ++++ .../GetFreelancerEducationsResponse.java | 15 ++++ .../GetFreelancerExperiencesResponse.java | 15 ++++ .../java/com/workup/users/db/Achievement.java | 2 +- .../java/com/workup/users/db/Education.java | 2 +- .../java/com/workup/users/db/Experience.java | 2 +- .../java/com/workup/users/db/Freelancer.java | 2 +- .../repositories/AchievementRepository.java | 6 ++ .../repositories/EducationRepository.java | 6 ++ shared/.mvn/jvm.config | 1 + .../AddFreelancerAchievementRequest.java | 18 +++++ .../AddFreelancerEducationRequest.java | 22 ++++++ .../AddFreelancerExperienceRequest.java | 20 ++++++ .../AddFreelancerLanguageRequest.java | 14 ++++ .../requests/AddFreelancerSkillRequest.java | 14 ++++ .../GetFreelancerAchievementsRequest.java | 13 ++++ .../GetFreelancerEducationsRequest.java | 13 ++++ .../GetFreelancerExperiencesRequest.java | 13 ++++ .../GetFreelancerLanguagesRequest.java | 13 ++++ .../requests/GetFreelancerSkillsRequest.java | 13 ++++ .../RemoveFreelancerAchievementRequest.java | 14 ++++ .../RemoveFreelancerEducationRequest.java | 14 ++++ .../RemoveFreelancerExperienceRequest.java | 14 ++++ .../RemoveFreelancerLanguageRequest.java | 14 ++++ .../RemoveFreelancerSkillRequest.java | 14 ++++ .../UpdateFreelancerAchievementRequest.java | 19 +++++ .../UpdateFreelancerEducationRequest.java | 23 ++++++ .../UpdateFreelancerExperienceRequest.java | 21 ++++++ .../AddFreelancerAchievementResponse.java | 11 +++ .../AddFreelancerEducationResponse.java | 11 +++ .../AddFreelancerExperienceResponse.java | 11 +++ .../AddFreelancerLanguageResponse.java | 11 +++ .../responses/AddFreelancerSkillResponse.java | 11 +++ .../GetFreelancerLanguagesResponse.java | 14 ++++ .../GetFreelancerSkillsResponse.java | 14 ++++ .../RemoveFreelancerAchievementResponse.java | 11 +++ .../RemoveFreelancerEducationResponse.java | 11 +++ .../RemoveFreelancerExperienceResponse.java | 11 +++ .../RemoveFreelancerLanguageResponse.java | 11 +++ .../RemoveFreelancerSkillResponse.java | 11 +++ .../UpdateFreelancerAchievementResponse.java | 11 +++ .../UpdateFreelancerEducationResponse.java | 11 +++ .../UpdateFreelancerExperienceResponse.java | 11 +++ 73 files changed, 1270 insertions(+), 27 deletions(-) create mode 100644 services/users/.mvn/jvm.config create mode 100644 services/users/src/main/java/com/workup/users/commands/AddFreelancerAchievementCommand.java create mode 100644 services/users/src/main/java/com/workup/users/commands/AddFreelancerEducationCommand.java create mode 100644 services/users/src/main/java/com/workup/users/commands/AddFreelancerExperienceCommand.java create mode 100644 services/users/src/main/java/com/workup/users/commands/AddFreelancerLanguageCommand.java create mode 100644 services/users/src/main/java/com/workup/users/commands/AddFreelancerSkillCommand.java create mode 100644 services/users/src/main/java/com/workup/users/commands/GetFreelancerAchievementsCommand.java create mode 100644 services/users/src/main/java/com/workup/users/commands/GetFreelancerEducationsCommand.java create mode 100644 services/users/src/main/java/com/workup/users/commands/GetFreelancerExperiencesCommand.java create mode 100644 services/users/src/main/java/com/workup/users/commands/GetFreelancerLanguagesCommand.java create mode 100644 services/users/src/main/java/com/workup/users/commands/GetFreelancerSkillsCommand.java create mode 100644 services/users/src/main/java/com/workup/users/commands/RemoveFreelancerAchievementCommand.java create mode 100644 services/users/src/main/java/com/workup/users/commands/RemoveFreelancerEducationCommand.java create mode 100644 services/users/src/main/java/com/workup/users/commands/RemoveFreelancerExperienceCommand.java create mode 100644 services/users/src/main/java/com/workup/users/commands/RemoveFreelancerLanguageCommand.java create mode 100644 services/users/src/main/java/com/workup/users/commands/RemoveFreelancerSkillCommand.java create mode 100644 services/users/src/main/java/com/workup/users/commands/UpdateFreelancerAchievementCommand.java create mode 100644 services/users/src/main/java/com/workup/users/commands/UpdateFreelancerEducationCommand.java create mode 100644 services/users/src/main/java/com/workup/users/commands/UpdateFreelancerExperienceCommand.java create mode 100644 services/users/src/main/java/com/workup/users/commands/responses/GetFreelancerAchievementsResponse.java create mode 100644 services/users/src/main/java/com/workup/users/commands/responses/GetFreelancerEducationsResponse.java create mode 100644 services/users/src/main/java/com/workup/users/commands/responses/GetFreelancerExperiencesResponse.java create mode 100644 services/users/src/main/java/com/workup/users/repositories/AchievementRepository.java create mode 100644 services/users/src/main/java/com/workup/users/repositories/EducationRepository.java create mode 100644 shared/.mvn/jvm.config create mode 100644 shared/src/main/java/com/workup/shared/commands/users/requests/AddFreelancerAchievementRequest.java create mode 100644 shared/src/main/java/com/workup/shared/commands/users/requests/AddFreelancerEducationRequest.java create mode 100644 shared/src/main/java/com/workup/shared/commands/users/requests/AddFreelancerExperienceRequest.java create mode 100644 shared/src/main/java/com/workup/shared/commands/users/requests/AddFreelancerLanguageRequest.java create mode 100644 shared/src/main/java/com/workup/shared/commands/users/requests/AddFreelancerSkillRequest.java create mode 100644 shared/src/main/java/com/workup/shared/commands/users/requests/GetFreelancerAchievementsRequest.java create mode 100644 shared/src/main/java/com/workup/shared/commands/users/requests/GetFreelancerEducationsRequest.java create mode 100644 shared/src/main/java/com/workup/shared/commands/users/requests/GetFreelancerExperiencesRequest.java create mode 100644 shared/src/main/java/com/workup/shared/commands/users/requests/GetFreelancerLanguagesRequest.java create mode 100644 shared/src/main/java/com/workup/shared/commands/users/requests/GetFreelancerSkillsRequest.java create mode 100644 shared/src/main/java/com/workup/shared/commands/users/requests/RemoveFreelancerAchievementRequest.java create mode 100644 shared/src/main/java/com/workup/shared/commands/users/requests/RemoveFreelancerEducationRequest.java create mode 100644 shared/src/main/java/com/workup/shared/commands/users/requests/RemoveFreelancerExperienceRequest.java create mode 100644 shared/src/main/java/com/workup/shared/commands/users/requests/RemoveFreelancerLanguageRequest.java create mode 100644 shared/src/main/java/com/workup/shared/commands/users/requests/RemoveFreelancerSkillRequest.java create mode 100644 shared/src/main/java/com/workup/shared/commands/users/requests/UpdateFreelancerAchievementRequest.java create mode 100644 shared/src/main/java/com/workup/shared/commands/users/requests/UpdateFreelancerEducationRequest.java create mode 100644 shared/src/main/java/com/workup/shared/commands/users/requests/UpdateFreelancerExperienceRequest.java create mode 100644 shared/src/main/java/com/workup/shared/commands/users/responses/AddFreelancerAchievementResponse.java create mode 100644 shared/src/main/java/com/workup/shared/commands/users/responses/AddFreelancerEducationResponse.java create mode 100644 shared/src/main/java/com/workup/shared/commands/users/responses/AddFreelancerExperienceResponse.java create mode 100644 shared/src/main/java/com/workup/shared/commands/users/responses/AddFreelancerLanguageResponse.java create mode 100644 shared/src/main/java/com/workup/shared/commands/users/responses/AddFreelancerSkillResponse.java create mode 100644 shared/src/main/java/com/workup/shared/commands/users/responses/GetFreelancerLanguagesResponse.java create mode 100644 shared/src/main/java/com/workup/shared/commands/users/responses/GetFreelancerSkillsResponse.java create mode 100644 shared/src/main/java/com/workup/shared/commands/users/responses/RemoveFreelancerAchievementResponse.java create mode 100644 shared/src/main/java/com/workup/shared/commands/users/responses/RemoveFreelancerEducationResponse.java create mode 100644 shared/src/main/java/com/workup/shared/commands/users/responses/RemoveFreelancerExperienceResponse.java create mode 100644 shared/src/main/java/com/workup/shared/commands/users/responses/RemoveFreelancerLanguageResponse.java create mode 100644 shared/src/main/java/com/workup/shared/commands/users/responses/RemoveFreelancerSkillResponse.java create mode 100644 shared/src/main/java/com/workup/shared/commands/users/responses/UpdateFreelancerAchievementResponse.java create mode 100644 shared/src/main/java/com/workup/shared/commands/users/responses/UpdateFreelancerEducationResponse.java create mode 100644 shared/src/main/java/com/workup/shared/commands/users/responses/UpdateFreelancerExperienceResponse.java diff --git a/services/payments/src/main/java/com/workup/payments/RabbitMQListener.java b/services/payments/src/main/java/com/workup/payments/RabbitMQListener.java index 3aec1870..9bc796e8 100644 --- a/services/payments/src/main/java/com/workup/payments/RabbitMQListener.java +++ b/services/payments/src/main/java/com/workup/payments/RabbitMQListener.java @@ -2,8 +2,14 @@ import com.workup.payments.commands.PaymentCommandMap; import com.workup.payments.commands.paymentrequest.CreatePaymentRequestCommand; +import com.workup.payments.commands.wallet.CreateWalletCommand; +import com.workup.payments.commands.wallet.GetWalletCommand; import com.workup.shared.commands.payments.paymentrequest.requests.CreatePaymentRequestRequest; import com.workup.shared.commands.payments.paymentrequest.responses.CreatePaymentRequestResponse; +import com.workup.shared.commands.payments.wallet.requests.CreateWalletRequest; +import com.workup.shared.commands.payments.wallet.requests.GetWalletRequest; +import com.workup.shared.commands.payments.wallet.responses.CreateWalletResponse; +import com.workup.shared.commands.payments.wallet.responses.GetWalletResponse; import com.workup.shared.enums.ServiceQueueNames; import org.springframework.amqp.rabbit.annotation.RabbitHandler; import org.springframework.amqp.rabbit.annotation.RabbitListener; @@ -20,4 +26,14 @@ public class RabbitMQListener { public CreatePaymentRequestResponse receive(CreatePaymentRequestRequest in) throws Exception { return ((CreatePaymentRequestCommand) commandMap.getCommand("CreatePaymentRequest")).Run(in); } + + @RabbitHandler + public CreateWalletResponse receive(CreateWalletRequest in) throws Exception { + return ((CreateWalletCommand) commandMap.getCommand("CreateWallet")).Run(in); + } + + @RabbitHandler + public GetWalletResponse receive(GetWalletRequest in) throws Exception { + return ((GetWalletCommand) commandMap.getCommand("GetWallet")).Run(in); + } } diff --git a/services/payments/src/test/java/com/workup/payments/PaymentsApplicationTests.java b/services/payments/src/test/java/com/workup/payments/PaymentsApplicationTests.java index 288094a5..b5917eca 100644 --- a/services/payments/src/test/java/com/workup/payments/PaymentsApplicationTests.java +++ b/services/payments/src/test/java/com/workup/payments/PaymentsApplicationTests.java @@ -8,6 +8,10 @@ import com.workup.payments.repositories.WalletTransactionRepository; import com.workup.shared.commands.payments.paymentrequest.requests.CreatePaymentRequestRequest; import com.workup.shared.commands.payments.paymentrequest.responses.CreatePaymentRequestResponse; +import com.workup.shared.commands.payments.wallet.requests.CreateWalletRequest; +import com.workup.shared.commands.payments.wallet.requests.GetWalletRequest; +import com.workup.shared.commands.payments.wallet.responses.CreateWalletResponse; +import com.workup.shared.commands.payments.wallet.responses.GetWalletResponse; import com.workup.shared.enums.HttpStatusCode; import com.workup.shared.enums.ServiceQueueNames; import java.util.UUID; @@ -98,4 +102,62 @@ void testCreatePaymentRequest() { }, () -> fail("Payment request not found")); } + + @Test + void testCreateWalletCommand() { + + CreateWalletRequest createWalletRequest = + CreateWalletRequest.builder().withFreelancerId("1").build(); + CreateWalletResponse response = + (CreateWalletResponse) + template.convertSendAndReceive(ServiceQueueNames.PAYMENTS, createWalletRequest); + assertNotNull(response); + assertEquals(HttpStatusCode.CREATED, response.getStatusCode()); + } + + @Test + void testCreateDuplicateWalletIsInvalid() { + CreateWalletRequest createWalletRequest = + CreateWalletRequest.builder().withFreelancerId("1").build(); + CreateWalletResponse response = + (CreateWalletResponse) + template.convertSendAndReceive(ServiceQueueNames.PAYMENTS, createWalletRequest); + assertNotNull(response); + assertEquals(HttpStatusCode.CREATED, response.getStatusCode()); + + CreateWalletResponse response2 = + (CreateWalletResponse) + template.convertSendAndReceive(ServiceQueueNames.PAYMENTS, createWalletRequest); + assertNotNull(response2); + assertEquals(HttpStatusCode.BAD_REQUEST, response2.getStatusCode()); + } + + @Test + void testGetValidWallet() { + CreateWalletRequest createWalletRequest = + CreateWalletRequest.builder().withFreelancerId("1").build(); + CreateWalletResponse response = + (CreateWalletResponse) + template.convertSendAndReceive(ServiceQueueNames.PAYMENTS, createWalletRequest); + assertNotNull(response); + assertEquals(HttpStatusCode.CREATED, response.getStatusCode()); + + GetWalletRequest getWalletRequest = GetWalletRequest.builder().withFreelancerId("1").build(); + GetWalletResponse getWalletResponse = + (GetWalletResponse) + template.convertSendAndReceive(ServiceQueueNames.PAYMENTS, getWalletRequest); + assertNotNull(getWalletResponse); + assertEquals(HttpStatusCode.OK, getWalletResponse.getStatusCode()); + assertEquals(0, getWalletResponse.getBalance()); + } + + @Test + void testGetInvalidWallet() { + GetWalletRequest getWalletRequest = GetWalletRequest.builder().withFreelancerId("1").build(); + GetWalletResponse getWalletResponse = + (GetWalletResponse) + template.convertSendAndReceive(ServiceQueueNames.PAYMENTS, getWalletRequest); + assertNotNull(getWalletResponse); + assertEquals(HttpStatusCode.NOT_FOUND, getWalletResponse.getStatusCode()); + } } diff --git a/services/users/.mvn/jvm.config b/services/users/.mvn/jvm.config new file mode 100644 index 00000000..e2a50e08 --- /dev/null +++ b/services/users/.mvn/jvm.config @@ -0,0 +1 @@ +--add-exports jdk.compiler/com.sun.tools.javac.api=ALL-UNNAMED --add-exports jdk.compiler/com.sun.tools.javac.file=ALL-UNNAMED --add-exports jdk.compiler/com.sun.tools.javac.parser=ALL-UNNAMED --add-exports jdk.compiler/com.sun.tools.javac.tree=ALL-UNNAMED --add-exports jdk.compiler/com.sun.tools.javac.util=ALL-UNNAMED \ No newline at end of file diff --git a/services/users/pom.xml b/services/users/pom.xml index 9ff894c4..ff215d4a 100644 --- a/services/users/pom.xml +++ b/services/users/pom.xml @@ -9,7 +9,7 @@ 3.2.3 - org.example + com.workup users 0.0.1-SNAPSHOT users diff --git a/services/users/src/main/java/com/workup/users/commands/AddFreelancerAchievementCommand.java b/services/users/src/main/java/com/workup/users/commands/AddFreelancerAchievementCommand.java new file mode 100644 index 00000000..1f40a83f --- /dev/null +++ b/services/users/src/main/java/com/workup/users/commands/AddFreelancerAchievementCommand.java @@ -0,0 +1,36 @@ +package com.workup.users.commands; + +import com.workup.shared.commands.users.requests.AddFreelancerAchievementRequest; +import com.workup.shared.commands.users.responses.AddFreelancerAchievementResponse; +import com.workup.shared.enums.HttpStatusCode; +import com.workup.users.db.Achievement; +import com.workup.users.db.Freelancer; +import java.util.Optional; + +public class AddFreelancerAchievementCommand + extends UserCommand { + @Override + public AddFreelancerAchievementResponse Run(AddFreelancerAchievementRequest request) { + Optional freelancerOptional = + freelancerRepository.findById(request.getFreelancer_id()); + if (freelancerOptional.isEmpty()) + return AddFreelancerAchievementResponse.builder() + .withStatusCode(HttpStatusCode.NOT_FOUND) + .withErrorMessage("Freelancer Doesn't Exist") + .build(); + Freelancer freelancer = freelancerOptional.get(); + Achievement newAchievement = + Achievement.builder() + .withAchievement_description(request.getAchievement_description()) + .withAchievement_name(request.getAchievement_name()) + .withAward_date(request.getAward_date()) + .withAwarded_by(request.getAwarded_by()) + .build(); + newAchievement = achievementRepository.save(newAchievement); + freelancer.getAchievements().add(newAchievement); + freelancerRepository.save(freelancer); + return AddFreelancerAchievementResponse.builder() + .withStatusCode(HttpStatusCode.CREATED) + .build(); + } +} diff --git a/services/users/src/main/java/com/workup/users/commands/AddFreelancerEducationCommand.java b/services/users/src/main/java/com/workup/users/commands/AddFreelancerEducationCommand.java new file mode 100644 index 00000000..78b8b7bf --- /dev/null +++ b/services/users/src/main/java/com/workup/users/commands/AddFreelancerEducationCommand.java @@ -0,0 +1,39 @@ +package com.workup.users.commands; + +import com.workup.shared.commands.users.requests.AddFreelancerEducationRequest; +import com.workup.shared.commands.users.responses.AddFreelancerEducationResponse; +import com.workup.shared.enums.HttpStatusCode; +import com.workup.users.db.Education; +import com.workup.users.db.Freelancer; +import java.util.Optional; + +public class AddFreelancerEducationCommand + extends UserCommand { + + @Override + public AddFreelancerEducationResponse Run(AddFreelancerEducationRequest request) { + Optional freelancerOptional = + freelancerRepository.findById(request.getFreelancer_id()); + if (freelancerOptional.isEmpty()) + return AddFreelancerEducationResponse.builder() + .withStatusCode(HttpStatusCode.NOT_FOUND) + .withErrorMessage("Freelancer Doesn't Exist") + .build(); + Freelancer freelancer = freelancerOptional.get(); + Education newEducation = + Education.builder() + .withCity(request.getCity()) + .withDegree(request.getDegree()) + .withEducation_description(request.getEducation_description()) + .withEducation_start_date(request.getEducation_start_date()) + .withEnd_date(request.getEnd_date()) + .withGrade(request.getGrade()) + .withMajor(request.getMajor()) + .withSchool_name(request.getSchool_name()) + .build(); + newEducation = educationRepository.save(newEducation); + freelancer.getEducations().add(newEducation); + freelancerRepository.save(freelancer); + return AddFreelancerEducationResponse.builder().withStatusCode(HttpStatusCode.CREATED).build(); + } +} diff --git a/services/users/src/main/java/com/workup/users/commands/AddFreelancerExperienceCommand.java b/services/users/src/main/java/com/workup/users/commands/AddFreelancerExperienceCommand.java new file mode 100644 index 00000000..d8704a26 --- /dev/null +++ b/services/users/src/main/java/com/workup/users/commands/AddFreelancerExperienceCommand.java @@ -0,0 +1,36 @@ +package com.workup.users.commands; + +import com.workup.shared.commands.users.requests.AddFreelancerExperienceRequest; +import com.workup.shared.commands.users.responses.AddFreelancerExperienceResponse; +import com.workup.shared.enums.HttpStatusCode; +import com.workup.users.db.Experience; +import com.workup.users.db.Freelancer; +import java.util.Optional; + +public class AddFreelancerExperienceCommand + extends UserCommand { + @Override + public AddFreelancerExperienceResponse Run(AddFreelancerExperienceRequest request) { + Optional freelancerOptional = + freelancerRepository.findById(request.getFreelancerId()); + if (freelancerOptional.isEmpty()) + return AddFreelancerExperienceResponse.builder() + .withStatusCode(HttpStatusCode.NOT_FOUND) + .withErrorMessage("Freelancer Doesn't Exist") + .build(); + Freelancer freelancer = freelancerOptional.get(); + Experience newExperience = + Experience.builder() + .withExperience_description(request.getExperience_description()) + .withCity(request.getCity()) + .withCompany_name(request.getCompany_name()) + .withEmployment_end(request.getEmployment_end()) + .withEmployment_start(request.getEmployment_start()) + .withJob_title(request.getJob_title()) + .build(); + newExperience = experienceRepository.save(newExperience); + freelancer.getExperiences().add(newExperience); + freelancerRepository.save(freelancer); + return AddFreelancerExperienceResponse.builder().withStatusCode(HttpStatusCode.CREATED).build(); + } +} diff --git a/services/users/src/main/java/com/workup/users/commands/AddFreelancerLanguageCommand.java b/services/users/src/main/java/com/workup/users/commands/AddFreelancerLanguageCommand.java new file mode 100644 index 00000000..ccf5772f --- /dev/null +++ b/services/users/src/main/java/com/workup/users/commands/AddFreelancerLanguageCommand.java @@ -0,0 +1,25 @@ +package com.workup.users.commands; + +import com.workup.shared.commands.users.requests.AddFreelancerLanguageRequest; +import com.workup.shared.commands.users.responses.AddFreelancerLanguageResponse; +import com.workup.shared.enums.HttpStatusCode; +import com.workup.users.db.Freelancer; +import java.util.Optional; + +public class AddFreelancerLanguageCommand + extends UserCommand { + + @Override + public AddFreelancerLanguageResponse Run(AddFreelancerLanguageRequest request) { + Optional freelancerOptional = freelancerRepository.findById(request.getUser_id()); + if (freelancerOptional.isEmpty()) + return AddFreelancerLanguageResponse.builder() + .withStatusCode(HttpStatusCode.NOT_FOUND) + .withErrorMessage("Freelancer Doesn't Exist") + .build(); + Freelancer freelancer = freelancerOptional.get(); + freelancer.getLanguages().add(request.getNewLanguage()); + freelancerRepository.save(freelancer); + return AddFreelancerLanguageResponse.builder().withStatusCode(HttpStatusCode.CREATED).build(); + } +} diff --git a/services/users/src/main/java/com/workup/users/commands/AddFreelancerSkillCommand.java b/services/users/src/main/java/com/workup/users/commands/AddFreelancerSkillCommand.java new file mode 100644 index 00000000..5d9d77ea --- /dev/null +++ b/services/users/src/main/java/com/workup/users/commands/AddFreelancerSkillCommand.java @@ -0,0 +1,28 @@ +package com.workup.users.commands; + +import com.workup.shared.commands.users.requests.AddFreelancerSkillRequest; +import com.workup.shared.commands.users.responses.AddFreelancerSkillResponse; +import com.workup.shared.enums.HttpStatusCode; +import com.workup.users.db.Freelancer; +import java.util.List; +import java.util.Optional; + +public class AddFreelancerSkillCommand + extends UserCommand { + + @Override + public AddFreelancerSkillResponse Run(AddFreelancerSkillRequest request) { + Optional freelancerOptional = freelancerRepository.findById(request.getUser_id()); + if (freelancerOptional.isEmpty()) + return AddFreelancerSkillResponse.builder() + .withStatusCode(HttpStatusCode.NOT_FOUND) + .withErrorMessage("Freelancer Doesn't Exist") + .build(); + String newSkill = request.getNewSkill(); + Freelancer freelancer = freelancerOptional.get(); + List skills = freelancer.getSkills(); + if (!skills.contains(newSkill)) skills.add(newSkill); + freelancerRepository.save(freelancer); + return AddFreelancerSkillResponse.builder().withStatusCode(HttpStatusCode.CREATED).build(); + } +} diff --git a/services/users/src/main/java/com/workup/users/commands/ClientGetProfileCommand.java b/services/users/src/main/java/com/workup/users/commands/ClientGetProfileCommand.java index 74cc730a..dcac4ef7 100644 --- a/services/users/src/main/java/com/workup/users/commands/ClientGetProfileCommand.java +++ b/services/users/src/main/java/com/workup/users/commands/ClientGetProfileCommand.java @@ -11,7 +11,7 @@ public class ClientGetProfileCommand @Override public ClientGetProfileResponse Run(ClientGetProfileRequest request) { - Optional clientOptional = clientRepository.findById(request.user_id); + Optional clientOptional = clientRepository.findById(request.getUser_id()); if (!clientOptional.isPresent()) { return ClientGetProfileResponse.builder() diff --git a/services/users/src/main/java/com/workup/users/commands/ClientSetProfileCommand.java b/services/users/src/main/java/com/workup/users/commands/ClientSetProfileCommand.java index 489394d1..2f8db954 100644 --- a/services/users/src/main/java/com/workup/users/commands/ClientSetProfileCommand.java +++ b/services/users/src/main/java/com/workup/users/commands/ClientSetProfileCommand.java @@ -14,33 +14,33 @@ public ClientSetProfileResponse Run(ClientSetProfileRequest request) { Client client; - if (request.user_id == null) { + if (request.getUser_id() == null) { client = Client.builder().build(); } else { - Optional clientOption = clientRepository.findById(request.user_id); + Optional clientOption = clientRepository.findById(request.getUser_id()); if (!clientOption.isPresent()) { throw new RuntimeException("User not found"); } client = clientOption.get(); } - if (request.name != null) { - client.setClient_name(request.name); + if (request.getName() != null) { + client.setClient_name(request.getName()); } - if (request.email != null) { - client.setEmail(request.email); + if (request.getEmail() != null) { + client.setEmail(request.getEmail()); } - if (request.city != null) { - client.setCity(request.city); + if (request.getCity() != null) { + client.setCity(request.getCity()); } - if (request.description != null) { - client.setClient_description(request.description); + if (request.getDescription() != null) { + client.setClient_description(request.getDescription()); } - if (request.industry != null) { - client.setIndustry(request.industry); + if (request.getIndustry() != null) { + client.setIndustry(request.getIndustry()); } - if (request.employee_count != null) { - client.setEmployee_count(request.employee_count); + if (request.getEmployee_count() != null) { + client.setEmployee_count(request.getEmployee_count()); } clientRepository.save(client); diff --git a/services/users/src/main/java/com/workup/users/commands/FreelancerGetPhotoCommand.java b/services/users/src/main/java/com/workup/users/commands/FreelancerGetPhotoCommand.java index f9cbe387..a0203e51 100644 --- a/services/users/src/main/java/com/workup/users/commands/FreelancerGetPhotoCommand.java +++ b/services/users/src/main/java/com/workup/users/commands/FreelancerGetPhotoCommand.java @@ -12,14 +12,14 @@ public class FreelancerGetPhotoCommand @Override public FreelancerGetPhotoResponse Run(FreelancerGetPhotoRequest request) { - Optional clientOptional = clientRepository.findById(request.user_id); + Optional clientOptional = clientRepository.findById(request.getUser_id()); if (!clientOptional.isPresent()) { return FreelancerGetPhotoResponse.builder() .withStatusCode(HttpStatusCode.INTERNAL_SERVER_ERROR) .build(); } - String name = PHOTO_BUCKET + request.user_id; + String name = PHOTO_BUCKET + request.getUser_id(); byte[] bytesArr; try { diff --git a/services/users/src/main/java/com/workup/users/commands/FreelancerGetProfileBriefCommand.java b/services/users/src/main/java/com/workup/users/commands/FreelancerGetProfileBriefCommand.java index 9e33eac1..e23c7483 100644 --- a/services/users/src/main/java/com/workup/users/commands/FreelancerGetProfileBriefCommand.java +++ b/services/users/src/main/java/com/workup/users/commands/FreelancerGetProfileBriefCommand.java @@ -11,7 +11,7 @@ public class FreelancerGetProfileBriefCommand @Override public FreelancerGetProfileBriefResponse Run(FreelancerGetProfileBriefRequest request) { - Optional freelancer = freelancerRepository.findById(request.user_id); + Optional freelancer = freelancerRepository.findById(request.getUser_id()); if (!freelancer.isPresent()) { return FreelancerGetProfileBriefResponse.builder() diff --git a/services/users/src/main/java/com/workup/users/commands/FreelancerGetProfileCommand.java b/services/users/src/main/java/com/workup/users/commands/FreelancerGetProfileCommand.java index 8d9aabd3..14de14a3 100644 --- a/services/users/src/main/java/com/workup/users/commands/FreelancerGetProfileCommand.java +++ b/services/users/src/main/java/com/workup/users/commands/FreelancerGetProfileCommand.java @@ -11,7 +11,7 @@ public class FreelancerGetProfileCommand @Override public FreelancerGetProfileResponse Run(FreelancerGetProfileRequest request) { - Optional freelancer = freelancerRepository.findById(request.user_id); + Optional freelancer = freelancerRepository.findById(request.getUser_id()); if (!freelancer.isPresent()) { return FreelancerGetProfileResponse.builder() diff --git a/services/users/src/main/java/com/workup/users/commands/FreelancerSetProfileCommand.java b/services/users/src/main/java/com/workup/users/commands/FreelancerSetProfileCommand.java index 855aa3e3..edbe91f5 100644 --- a/services/users/src/main/java/com/workup/users/commands/FreelancerSetProfileCommand.java +++ b/services/users/src/main/java/com/workup/users/commands/FreelancerSetProfileCommand.java @@ -44,7 +44,6 @@ public FreelancerSetProfileResponse Run(FreelancerSetProfileRequest request) { } freelancerRepository.save(freelancer); - return FreelancerSetProfileResponse.builder().withStatusCode(HttpStatusCode.OK).build(); } } diff --git a/services/users/src/main/java/com/workup/users/commands/FreelancerSetResumeCommand.java b/services/users/src/main/java/com/workup/users/commands/FreelancerSetResumeCommand.java index 5573751e..3fe74def 100644 --- a/services/users/src/main/java/com/workup/users/commands/FreelancerSetResumeCommand.java +++ b/services/users/src/main/java/com/workup/users/commands/FreelancerSetResumeCommand.java @@ -12,9 +12,9 @@ public class FreelancerSetResumeCommand @Override public FreelancerSetResumeResponse Run(FreelancerSetResumeRequest request) { - String name = RESUME_BUCKET + request.user_id; + String name = RESUME_BUCKET + request.getUser_id(); - byte[] resume_byes_arr = Base64.getDecoder().decode(request.resume_encoded); + byte[] resume_byes_arr = Base64.getDecoder().decode(request.getResume_encoded()); try { gridFsTemplate.store(new ByteArrayInputStream(resume_byes_arr), name); diff --git a/services/users/src/main/java/com/workup/users/commands/GetFreelancerAchievementsCommand.java b/services/users/src/main/java/com/workup/users/commands/GetFreelancerAchievementsCommand.java new file mode 100644 index 00000000..e0663bff --- /dev/null +++ b/services/users/src/main/java/com/workup/users/commands/GetFreelancerAchievementsCommand.java @@ -0,0 +1,29 @@ +package com.workup.users.commands; + +import com.workup.shared.commands.users.requests.GetFreelancerAchievementsRequest; +import com.workup.shared.enums.HttpStatusCode; +import com.workup.users.commands.responses.GetFreelancerAchievementsResponse; +import com.workup.users.db.Achievement; +import com.workup.users.db.Freelancer; +import java.util.List; +import java.util.Optional; + +public class GetFreelancerAchievementsCommand + extends UserCommand { + @Override + public GetFreelancerAchievementsResponse Run(GetFreelancerAchievementsRequest request) { + Optional freelancerOptional = + freelancerRepository.findById(request.getFreelancer_id()); + if (freelancerOptional.isEmpty()) + return GetFreelancerAchievementsResponse.builder() + .withStatusCode(HttpStatusCode.NOT_FOUND) + .withErrorMessage("Freelancer Doesn't Exist") + .build(); + Freelancer freelancer = freelancerOptional.get(); + List achievements = freelancer.getAchievements(); + return GetFreelancerAchievementsResponse.builder() + .withStatusCode(HttpStatusCode.OK) + .withAchievements(achievements) + .build(); + } +} diff --git a/services/users/src/main/java/com/workup/users/commands/GetFreelancerEducationsCommand.java b/services/users/src/main/java/com/workup/users/commands/GetFreelancerEducationsCommand.java new file mode 100644 index 00000000..2b9c7fb6 --- /dev/null +++ b/services/users/src/main/java/com/workup/users/commands/GetFreelancerEducationsCommand.java @@ -0,0 +1,28 @@ +package com.workup.users.commands; + +import com.workup.shared.commands.users.requests.GetFreelancerEducationsRequest; +import com.workup.shared.enums.HttpStatusCode; +import com.workup.users.commands.responses.GetFreelancerEducationsResponse; +import com.workup.users.db.Education; +import com.workup.users.db.Freelancer; +import java.util.List; +import java.util.Optional; + +public class GetFreelancerEducationsCommand + extends UserCommand { + @Override + public GetFreelancerEducationsResponse Run(GetFreelancerEducationsRequest request) { + Optional freelancerOptional = freelancerRepository.findById(request.getUser_id()); + if (freelancerOptional.isEmpty()) + return GetFreelancerEducationsResponse.builder() + .withStatusCode(HttpStatusCode.NOT_FOUND) + .withErrorMessage("Freelancer Doesn't Exist") + .build(); + Freelancer freelancer = freelancerOptional.get(); + List educations = freelancer.getEducations(); + return GetFreelancerEducationsResponse.builder() + .withStatusCode(HttpStatusCode.OK) + .withEducations(educations) + .build(); + } +} diff --git a/services/users/src/main/java/com/workup/users/commands/GetFreelancerExperiencesCommand.java b/services/users/src/main/java/com/workup/users/commands/GetFreelancerExperiencesCommand.java new file mode 100644 index 00000000..0ed86ed1 --- /dev/null +++ b/services/users/src/main/java/com/workup/users/commands/GetFreelancerExperiencesCommand.java @@ -0,0 +1,30 @@ +package com.workup.users.commands; + +import com.workup.shared.commands.users.requests.GetFreelancerExperiencesRequest; +import com.workup.shared.enums.HttpStatusCode; +import com.workup.users.commands.responses.GetFreelancerExperiencesResponse; +import com.workup.users.db.Experience; +import com.workup.users.db.Freelancer; +import java.util.List; +import java.util.Optional; + +public class GetFreelancerExperiencesCommand + extends UserCommand { + + @Override + public GetFreelancerExperiencesResponse Run(GetFreelancerExperiencesRequest request) { + Optional freelancerOptional = + freelancerRepository.findById(request.getFreelancerId()); + if (freelancerOptional.isEmpty()) + return GetFreelancerExperiencesResponse.builder() + .withStatusCode(HttpStatusCode.NOT_FOUND) + .withErrorMessage("Freelancer Doesn't Exist") + .build(); + Freelancer freelancer = freelancerOptional.get(); + List experiences = freelancer.getExperiences(); + return GetFreelancerExperiencesResponse.builder() + .withStatusCode(HttpStatusCode.OK) + .withExperiences(experiences) + .build(); + } +} diff --git a/services/users/src/main/java/com/workup/users/commands/GetFreelancerLanguagesCommand.java b/services/users/src/main/java/com/workup/users/commands/GetFreelancerLanguagesCommand.java new file mode 100644 index 00000000..cc3f1fac --- /dev/null +++ b/services/users/src/main/java/com/workup/users/commands/GetFreelancerLanguagesCommand.java @@ -0,0 +1,27 @@ +package com.workup.users.commands; + +import com.workup.shared.commands.users.requests.GetFreelancerLanguagesRequest; +import com.workup.shared.commands.users.responses.GetFreelancerLanguagesResponse; +import com.workup.shared.enums.HttpStatusCode; +import com.workup.users.db.Freelancer; +import java.util.List; +import java.util.Optional; + +public class GetFreelancerLanguagesCommand + extends UserCommand { + @Override + public GetFreelancerLanguagesResponse Run(GetFreelancerLanguagesRequest request) { + Optional freelancerOptional = freelancerRepository.findById(request.getUser_id()); + if (freelancerOptional.isEmpty()) + return GetFreelancerLanguagesResponse.builder() + .withStatusCode(HttpStatusCode.NOT_FOUND) + .withErrorMessage("Freelancer Doesn't Exist") + .build(); + Freelancer freelancer = freelancerOptional.get(); + List languages = freelancer.getLanguages(); + return GetFreelancerLanguagesResponse.builder() + .withStatusCode(HttpStatusCode.OK) + .withLanguages(languages) + .build(); + } +} diff --git a/services/users/src/main/java/com/workup/users/commands/GetFreelancerSkillsCommand.java b/services/users/src/main/java/com/workup/users/commands/GetFreelancerSkillsCommand.java new file mode 100644 index 00000000..9874532e --- /dev/null +++ b/services/users/src/main/java/com/workup/users/commands/GetFreelancerSkillsCommand.java @@ -0,0 +1,28 @@ +package com.workup.users.commands; + +import com.workup.shared.commands.users.requests.GetFreelancerSkillsRequest; +import com.workup.shared.commands.users.responses.GetFreelancerSkillsResponse; +import com.workup.shared.enums.HttpStatusCode; +import com.workup.users.db.Freelancer; +import java.util.List; +import java.util.Optional; + +public class GetFreelancerSkillsCommand + extends UserCommand { + + @Override + public GetFreelancerSkillsResponse Run(GetFreelancerSkillsRequest request) { + Optional freelancerOptional = freelancerRepository.findById(request.getUser_id()); + if (freelancerOptional.isEmpty()) + return GetFreelancerSkillsResponse.builder() + .withStatusCode(HttpStatusCode.NOT_FOUND) + .withErrorMessage("Freelancer Doesn't Exist") + .build(); + Freelancer freelancer = freelancerOptional.get(); + List skills = freelancer.getSkills(); + return GetFreelancerSkillsResponse.builder() + .withStatusCode(HttpStatusCode.OK) + .withSkills(skills) + .build(); + } +} diff --git a/services/users/src/main/java/com/workup/users/commands/RemoveFreelancerAchievementCommand.java b/services/users/src/main/java/com/workup/users/commands/RemoveFreelancerAchievementCommand.java new file mode 100644 index 00000000..14fdec63 --- /dev/null +++ b/services/users/src/main/java/com/workup/users/commands/RemoveFreelancerAchievementCommand.java @@ -0,0 +1,35 @@ +package com.workup.users.commands; + +import com.workup.shared.commands.users.requests.RemoveFreelancerAchievementRequest; +import com.workup.shared.commands.users.responses.RemoveFreelancerAchievementResponse; +import com.workup.shared.enums.HttpStatusCode; +import com.workup.users.db.Achievement; +import com.workup.users.db.Freelancer; +import java.util.Optional; + +public class RemoveFreelancerAchievementCommand + extends UserCommand { + @Override + public RemoveFreelancerAchievementResponse Run(RemoveFreelancerAchievementRequest request) { + Optional freelancerOptional = + freelancerRepository.findById(request.getFreelancerId()); + if (freelancerOptional.isEmpty()) + return RemoveFreelancerAchievementResponse.builder() + .withStatusCode(HttpStatusCode.NOT_FOUND) + .withErrorMessage("Freelancer Doesn't Exist") + .build(); + Freelancer freelancer = freelancerOptional.get(); + freelancer + .getAchievements() + .removeIf(achievement -> achievement.getId().toString().equals(request.getAchievementId())); + deleteAchievement(request.getAchievementId()); + freelancerRepository.save(freelancer); + return RemoveFreelancerAchievementResponse.builder().withStatusCode(HttpStatusCode.OK).build(); + } + + public void deleteAchievement(String id) { + Optional achievementOptional = achievementRepository.findById(id); + if (achievementOptional.isEmpty()) return; + achievementRepository.delete(achievementOptional.get()); + } +} diff --git a/services/users/src/main/java/com/workup/users/commands/RemoveFreelancerEducationCommand.java b/services/users/src/main/java/com/workup/users/commands/RemoveFreelancerEducationCommand.java new file mode 100644 index 00000000..e2f4d8eb --- /dev/null +++ b/services/users/src/main/java/com/workup/users/commands/RemoveFreelancerEducationCommand.java @@ -0,0 +1,36 @@ +package com.workup.users.commands; + +import com.workup.shared.commands.users.requests.RemoveFreelancerEducationRequest; +import com.workup.shared.commands.users.responses.RemoveFreelancerEducationResponse; +import com.workup.shared.enums.HttpStatusCode; +import com.workup.users.db.Education; +import com.workup.users.db.Freelancer; +import java.util.Optional; + +public class RemoveFreelancerEducationCommand + extends UserCommand { + + @Override + public RemoveFreelancerEducationResponse Run(RemoveFreelancerEducationRequest request) { + Optional freelancerOptional = + freelancerRepository.findById(request.getFreelancer_id()); + if (freelancerOptional.isEmpty()) + return RemoveFreelancerEducationResponse.builder() + .withStatusCode(HttpStatusCode.NOT_FOUND) + .withErrorMessage("Freelancer Doesn't Exist") + .build(); + Freelancer freelancer = freelancerOptional.get(); + freelancer + .getEducations() + .removeIf(education -> education.getId().toString().equals(request.getEducation_id())); + deleteEducation(request.getEducation_id()); + freelancerRepository.save(freelancer); + return RemoveFreelancerEducationResponse.builder().withStatusCode(HttpStatusCode.OK).build(); + } + + void deleteEducation(String id) { + Optional educationOptional = educationRepository.findById(id); + if (educationOptional.isEmpty()) return; + educationRepository.delete(educationOptional.get()); + } +} diff --git a/services/users/src/main/java/com/workup/users/commands/RemoveFreelancerExperienceCommand.java b/services/users/src/main/java/com/workup/users/commands/RemoveFreelancerExperienceCommand.java new file mode 100644 index 00000000..665ca054 --- /dev/null +++ b/services/users/src/main/java/com/workup/users/commands/RemoveFreelancerExperienceCommand.java @@ -0,0 +1,35 @@ +package com.workup.users.commands; + +import com.workup.shared.commands.users.requests.RemoveFreelancerExperienceRequest; +import com.workup.shared.commands.users.responses.RemoveFreelancerExperienceResponse; +import com.workup.shared.enums.HttpStatusCode; +import com.workup.users.db.Experience; +import com.workup.users.db.Freelancer; +import java.util.Optional; + +public class RemoveFreelancerExperienceCommand + extends UserCommand { + @Override + public RemoveFreelancerExperienceResponse Run(RemoveFreelancerExperienceRequest request) { + Optional freelancerOptional = + freelancerRepository.findById(request.getFreelancer_id()); + if (freelancerOptional.isEmpty()) + return RemoveFreelancerExperienceResponse.builder() + .withStatusCode(HttpStatusCode.NOT_FOUND) + .withErrorMessage("Freelancer Doesn't Exist") + .build(); + Freelancer freelancer = freelancerOptional.get(); + freelancer + .getExperiences() + .removeIf(experience -> experience.getId().toString().equals(request.getExperience_id())); + deleteExperience(request.getExperience_id()); + freelancerRepository.save(freelancer); + return RemoveFreelancerExperienceResponse.builder().withStatusCode(HttpStatusCode.OK).build(); + } + + public void deleteExperience(String id) { + Optional experienceOptional = experienceRepository.findById(id); + if (experienceOptional.isEmpty()) return; + experienceRepository.delete(experienceOptional.get()); + } +} diff --git a/services/users/src/main/java/com/workup/users/commands/RemoveFreelancerLanguageCommand.java b/services/users/src/main/java/com/workup/users/commands/RemoveFreelancerLanguageCommand.java new file mode 100644 index 00000000..31acbee3 --- /dev/null +++ b/services/users/src/main/java/com/workup/users/commands/RemoveFreelancerLanguageCommand.java @@ -0,0 +1,24 @@ +package com.workup.users.commands; + +import com.workup.shared.commands.users.requests.RemoveFreelancerLanguageRequest; +import com.workup.shared.commands.users.responses.RemoveFreelancerLanguageResponse; +import com.workup.shared.enums.HttpStatusCode; +import com.workup.users.db.Freelancer; +import java.util.Optional; + +public class RemoveFreelancerLanguageCommand + extends UserCommand { + @Override + public RemoveFreelancerLanguageResponse Run(RemoveFreelancerLanguageRequest request) { + Optional freelancerOptional = freelancerRepository.findById(request.getUser_id()); + if (freelancerOptional.isEmpty()) + return RemoveFreelancerLanguageResponse.builder() + .withStatusCode(HttpStatusCode.NOT_FOUND) + .withErrorMessage("Freelancer Doesn't Exist") + .build(); + Freelancer freelancer = freelancerOptional.get(); + freelancer.getLanguages().remove(request.getLanguageToRemove()); + freelancerRepository.save(freelancer); + return RemoveFreelancerLanguageResponse.builder().withStatusCode(HttpStatusCode.OK).build(); + } +} diff --git a/services/users/src/main/java/com/workup/users/commands/RemoveFreelancerSkillCommand.java b/services/users/src/main/java/com/workup/users/commands/RemoveFreelancerSkillCommand.java new file mode 100644 index 00000000..2dd93979 --- /dev/null +++ b/services/users/src/main/java/com/workup/users/commands/RemoveFreelancerSkillCommand.java @@ -0,0 +1,24 @@ +package com.workup.users.commands; + +import com.workup.shared.commands.users.requests.RemoveFreelancerSkillRequest; +import com.workup.shared.commands.users.responses.RemoveFreelancerSkillResponse; +import com.workup.shared.enums.HttpStatusCode; +import com.workup.users.db.Freelancer; +import java.util.Optional; + +public class RemoveFreelancerSkillCommand + extends UserCommand { + @Override + public RemoveFreelancerSkillResponse Run(RemoveFreelancerSkillRequest request) { + Optional freelancerOptional = freelancerRepository.findById(request.getUser_id()); + if (freelancerOptional.isEmpty()) + return RemoveFreelancerSkillResponse.builder() + .withStatusCode(HttpStatusCode.NOT_FOUND) + .withErrorMessage("Freelancer Doesn't Exist") + .build(); + Freelancer freelancer = freelancerOptional.get(); + freelancer.getSkills().remove(request.getSkillToRemove()); + freelancerRepository.save(freelancer); + return RemoveFreelancerSkillResponse.builder().withStatusCode(HttpStatusCode.OK).build(); + } +} diff --git a/services/users/src/main/java/com/workup/users/commands/UpdateFreelancerAchievementCommand.java b/services/users/src/main/java/com/workup/users/commands/UpdateFreelancerAchievementCommand.java new file mode 100644 index 00000000..c21da6c8 --- /dev/null +++ b/services/users/src/main/java/com/workup/users/commands/UpdateFreelancerAchievementCommand.java @@ -0,0 +1,53 @@ +package com.workup.users.commands; + +import com.workup.shared.commands.users.requests.UpdateFreelancerAchievementRequest; +import com.workup.shared.commands.users.responses.UpdateFreelancerAchievementResponse; +import com.workup.shared.enums.HttpStatusCode; +import com.workup.users.db.Achievement; +import com.workup.users.db.Freelancer; +import java.util.Optional; + +public class UpdateFreelancerAchievementCommand + extends UserCommand { + @Override + public UpdateFreelancerAchievementResponse Run(UpdateFreelancerAchievementRequest request) { + Optional freelancerOptional = + freelancerRepository.findById(request.getFreelancer_id()); + if (freelancerOptional.isEmpty()) + return UpdateFreelancerAchievementResponse.builder() + .withStatusCode(HttpStatusCode.NOT_FOUND) + .withErrorMessage("Freelancer Doesn't Exist") + .build(); + Freelancer freelancer = freelancerOptional.get(); + Achievement updatedAchievement = + Achievement.builder() + .withAchievement_description(request.getNew_achievement_description()) + .withAchievement_name(request.getNew_achievement_name()) + .withAward_date(request.getNew_award_date()) + .withAwarded_by(request.getNew_awarded_by()) + .build(); + updateAchievement(request.getAchievement_id(), updatedAchievement); + freelancerRepository.save(freelancer); + return UpdateFreelancerAchievementResponse.builder().withStatusCode(HttpStatusCode.OK).build(); + } + + public void updateAchievement(String id, Achievement updatedAchievement) { + Optional achievementOptional = achievementRepository.findById(id); + if (achievementOptional.isEmpty()) return; + Achievement existingAchievement = achievementOptional.get(); + if (updatedAchievement.getAchievement_name() != null) { + existingAchievement.setAchievement_name(updatedAchievement.getAchievement_name()); + } + if (updatedAchievement.getAchievement_description() != null) { + existingAchievement.setAchievement_description( + updatedAchievement.getAchievement_description()); + } + if (updatedAchievement.getAward_date() != null) { + existingAchievement.setAward_date(updatedAchievement.getAward_date()); + } + if (updatedAchievement.getAwarded_by() != null) { + existingAchievement.setAwarded_by(updatedAchievement.getAwarded_by()); + } + achievementRepository.save(existingAchievement); + } +} diff --git a/services/users/src/main/java/com/workup/users/commands/UpdateFreelancerEducationCommand.java b/services/users/src/main/java/com/workup/users/commands/UpdateFreelancerEducationCommand.java new file mode 100644 index 00000000..03beaf0f --- /dev/null +++ b/services/users/src/main/java/com/workup/users/commands/UpdateFreelancerEducationCommand.java @@ -0,0 +1,70 @@ +package com.workup.users.commands; + +import com.workup.shared.commands.users.requests.UpdateFreelancerEducationRequest; +import com.workup.shared.commands.users.responses.UpdateFreelancerEducationResponse; +import com.workup.shared.enums.HttpStatusCode; +import com.workup.users.db.Education; +import com.workup.users.db.Freelancer; +import java.util.Optional; + +public class UpdateFreelancerEducationCommand + extends UserCommand { + + @Override + public UpdateFreelancerEducationResponse Run(UpdateFreelancerEducationRequest request) { + Optional freelancerOptional = + freelancerRepository.findById(request.getFreelancer_id()); + if (freelancerOptional.isEmpty()) + return UpdateFreelancerEducationResponse.builder() + .withStatusCode(HttpStatusCode.NOT_FOUND) + .withErrorMessage("Freelancer Doesn't Exist") + .build(); + Freelancer freelancer = freelancerOptional.get(); + Education updatedEducation = + Education.builder() + .withCity(request.getNew_city()) + .withDegree(request.getNew_degree()) + .withEducation_description(request.getNew_education_description()) + .withEducation_start_date(request.getNew_education_start_date()) + .withEnd_date(request.getNew_end_date()) + .withGrade(request.getNew_grade()) + .withMajor(request.getNew_major()) + .withSchool_name(request.getNew_school_name()) + .build(); + updateEducation(request.getEducation_id(), updatedEducation); + freelancerRepository.save(freelancer); + return UpdateFreelancerEducationResponse.builder().withStatusCode(HttpStatusCode.OK).build(); + } + + void updateEducation(String id, Education updatedEducation) { + Optional educationOptional = educationRepository.findById(id); + if (educationOptional.isEmpty()) return; + Education existingEducation = educationOptional.get(); + if (updatedEducation.getCity() != null) { + existingEducation.setCity(updatedEducation.getCity()); + } + if (updatedEducation.getDegree() != null) { + existingEducation.setDegree(updatedEducation.getDegree()); + } + if (updatedEducation.getEducation_start_date() != null) { + existingEducation.setEducation_start_date(updatedEducation.getEducation_start_date()); + } + if (updatedEducation.getEnd_date() != null) { + existingEducation.setEnd_date(updatedEducation.getEnd_date()); + } + if (updatedEducation.getEducation_description() != null) { + existingEducation.setEducation_description(updatedEducation.getEducation_description()); + } + if (updatedEducation.getGrade() != null) { + existingEducation.setGrade(updatedEducation.getGrade()); + } + if (updatedEducation.getMajor() != null) { + existingEducation.setMajor(updatedEducation.getMajor()); + } + if (updatedEducation.getSchool_name() != null) { + existingEducation.setSchool_name(updatedEducation.getSchool_name()); + } + + educationRepository.save(existingEducation); + } +} diff --git a/services/users/src/main/java/com/workup/users/commands/UpdateFreelancerExperienceCommand.java b/services/users/src/main/java/com/workup/users/commands/UpdateFreelancerExperienceCommand.java new file mode 100644 index 00000000..e0bf47fb --- /dev/null +++ b/services/users/src/main/java/com/workup/users/commands/UpdateFreelancerExperienceCommand.java @@ -0,0 +1,61 @@ +package com.workup.users.commands; + +import com.workup.shared.commands.users.requests.UpdateFreelancerExperienceRequest; +import com.workup.shared.commands.users.responses.UpdateFreelancerExperienceResponse; +import com.workup.shared.enums.HttpStatusCode; +import com.workup.users.db.Experience; +import com.workup.users.db.Freelancer; +import java.util.Optional; + +public class UpdateFreelancerExperienceCommand + extends UserCommand { + @Override + public UpdateFreelancerExperienceResponse Run(UpdateFreelancerExperienceRequest request) { + Optional freelancerOptional = + freelancerRepository.findById(request.getFreelancer_id()); + if (freelancerOptional.isEmpty()) + return UpdateFreelancerExperienceResponse.builder() + .withStatusCode(HttpStatusCode.NOT_FOUND) + .withErrorMessage("Freelancer Doesn't Exist") + .build(); + Freelancer freelancer = freelancerOptional.get(); + Experience updatedExperience = + Experience.builder() + .withExperience_description(request.getNew_experience_description()) + .withCity(request.getNew_city()) + .withCompany_name(request.getNew_company_name()) + .withEmployment_end(request.getNew_employment_end()) + .withEmployment_start(request.getNew_employment_start()) + .withJob_title(request.getNew_job_title()) + .build(); + updateExperience(request.getExperience_id(), updatedExperience); + freelancerRepository.save(freelancer); + return UpdateFreelancerExperienceResponse.builder().withStatusCode(HttpStatusCode.OK).build(); + } + + public void updateExperience(String id, Experience updatedExperience) { + Optional experienceOptional = experienceRepository.findById(id); + if (experienceOptional.isEmpty()) return; + Experience existingExperience = experienceOptional.get(); + if (updatedExperience.getExperience_description() != null) { + existingExperience.setExperience_description(updatedExperience.getExperience_description()); + } + if (updatedExperience.getCity() != null) { + existingExperience.setCity(updatedExperience.getCity()); + } + if (updatedExperience.getCompany_name() != null) { + existingExperience.setCompany_name(updatedExperience.getCompany_name()); + } + if (updatedExperience.getEmployment_end() != null) { + existingExperience.setEmployment_end(updatedExperience.getEmployment_end()); + } + if (updatedExperience.getEmployment_start() != null) { + existingExperience.setEmployment_start(updatedExperience.getEmployment_start()); + } + if (updatedExperience.getJob_title() != null) { + existingExperience.setJob_title(updatedExperience.getJob_title()); + } + + experienceRepository.save(existingExperience); + } +} diff --git a/services/users/src/main/java/com/workup/users/commands/UserCommand.java b/services/users/src/main/java/com/workup/users/commands/UserCommand.java index d338324c..efb85fb9 100644 --- a/services/users/src/main/java/com/workup/users/commands/UserCommand.java +++ b/services/users/src/main/java/com/workup/users/commands/UserCommand.java @@ -1,7 +1,9 @@ package com.workup.users.commands; import com.workup.shared.commands.Command; +import com.workup.users.repositories.AchievementRepository; import com.workup.users.repositories.ClientRepository; +import com.workup.users.repositories.EducationRepository; import com.workup.users.repositories.ExperienceRepository; import com.workup.users.repositories.FreelancerRepository; import lombok.Setter; @@ -20,6 +22,10 @@ public abstract class UserCommand< @Setter ExperienceRepository experienceRepository; + @Setter EducationRepository educationRepository; + + @Setter AchievementRepository achievementRepository; + @Setter ClientRepository clientRepository; @Autowired GridFsTemplate gridFsTemplate; diff --git a/services/users/src/main/java/com/workup/users/commands/responses/GetFreelancerAchievementsResponse.java b/services/users/src/main/java/com/workup/users/commands/responses/GetFreelancerAchievementsResponse.java new file mode 100644 index 00000000..10ce5eb2 --- /dev/null +++ b/services/users/src/main/java/com/workup/users/commands/responses/GetFreelancerAchievementsResponse.java @@ -0,0 +1,15 @@ +package com.workup.users.commands.responses; + +import com.workup.shared.commands.CommandResponse; +import com.workup.users.db.Achievement; +import java.util.List; +import lombok.Getter; +import lombok.experimental.SuperBuilder; +import lombok.extern.jackson.Jacksonized; + +@Getter +@SuperBuilder(setterPrefix = "with") +@Jacksonized +public class GetFreelancerAchievementsResponse extends CommandResponse { + List achievements; +} diff --git a/services/users/src/main/java/com/workup/users/commands/responses/GetFreelancerEducationsResponse.java b/services/users/src/main/java/com/workup/users/commands/responses/GetFreelancerEducationsResponse.java new file mode 100644 index 00000000..4b5608b7 --- /dev/null +++ b/services/users/src/main/java/com/workup/users/commands/responses/GetFreelancerEducationsResponse.java @@ -0,0 +1,15 @@ +package com.workup.users.commands.responses; + +import com.workup.shared.commands.CommandResponse; +import com.workup.users.db.Education; +import java.util.List; +import lombok.Getter; +import lombok.experimental.SuperBuilder; +import lombok.extern.jackson.Jacksonized; + +@Getter +@SuperBuilder(setterPrefix = "with") +@Jacksonized +public class GetFreelancerEducationsResponse extends CommandResponse { + List educations; +} diff --git a/services/users/src/main/java/com/workup/users/commands/responses/GetFreelancerExperiencesResponse.java b/services/users/src/main/java/com/workup/users/commands/responses/GetFreelancerExperiencesResponse.java new file mode 100644 index 00000000..b6930462 --- /dev/null +++ b/services/users/src/main/java/com/workup/users/commands/responses/GetFreelancerExperiencesResponse.java @@ -0,0 +1,15 @@ +package com.workup.users.commands.responses; + +import com.workup.shared.commands.CommandResponse; +import com.workup.users.db.Experience; +import java.util.List; +import lombok.Getter; +import lombok.experimental.SuperBuilder; +import lombok.extern.jackson.Jacksonized; + +@Getter +@SuperBuilder(setterPrefix = "with") +@Jacksonized +public class GetFreelancerExperiencesResponse extends CommandResponse { + private List experiences; +} diff --git a/services/users/src/main/java/com/workup/users/db/Achievement.java b/services/users/src/main/java/com/workup/users/db/Achievement.java index 50127b43..33cba1da 100644 --- a/services/users/src/main/java/com/workup/users/db/Achievement.java +++ b/services/users/src/main/java/com/workup/users/db/Achievement.java @@ -11,7 +11,7 @@ @Builder(setterPrefix = "with") @Getter @Setter -@Document +@Document(collection = "Achievements") public class Achievement { @Id private ObjectId id; diff --git a/services/users/src/main/java/com/workup/users/db/Education.java b/services/users/src/main/java/com/workup/users/db/Education.java index 30ef90f6..4558694b 100644 --- a/services/users/src/main/java/com/workup/users/db/Education.java +++ b/services/users/src/main/java/com/workup/users/db/Education.java @@ -11,7 +11,7 @@ @Builder(setterPrefix = "with") @Getter @Setter -@Document +@Document(collection = "Education") public class Education { @Id private ObjectId id; diff --git a/services/users/src/main/java/com/workup/users/db/Experience.java b/services/users/src/main/java/com/workup/users/db/Experience.java index 6ac383e2..22946108 100644 --- a/services/users/src/main/java/com/workup/users/db/Experience.java +++ b/services/users/src/main/java/com/workup/users/db/Experience.java @@ -11,7 +11,7 @@ @Builder(setterPrefix = "with") @Getter @Setter -@Document +@Document(collection = "Experience") public class Experience { @Id private ObjectId id; diff --git a/services/users/src/main/java/com/workup/users/db/Freelancer.java b/services/users/src/main/java/com/workup/users/db/Freelancer.java index f599a8d9..ba00ba2c 100644 --- a/services/users/src/main/java/com/workup/users/db/Freelancer.java +++ b/services/users/src/main/java/com/workup/users/db/Freelancer.java @@ -14,7 +14,7 @@ @Builder(setterPrefix = "with") @Getter @Setter -@Document +@Document(collection = "Freelancer") public class Freelancer { @Id private ObjectId id; @Indexed private String email; diff --git a/services/users/src/main/java/com/workup/users/repositories/AchievementRepository.java b/services/users/src/main/java/com/workup/users/repositories/AchievementRepository.java new file mode 100644 index 00000000..d6099b45 --- /dev/null +++ b/services/users/src/main/java/com/workup/users/repositories/AchievementRepository.java @@ -0,0 +1,6 @@ +package com.workup.users.repositories; + +import com.workup.users.db.Achievement; +import org.springframework.data.mongodb.repository.MongoRepository; + +public interface AchievementRepository extends MongoRepository {} diff --git a/services/users/src/main/java/com/workup/users/repositories/EducationRepository.java b/services/users/src/main/java/com/workup/users/repositories/EducationRepository.java new file mode 100644 index 00000000..5321cdc0 --- /dev/null +++ b/services/users/src/main/java/com/workup/users/repositories/EducationRepository.java @@ -0,0 +1,6 @@ +package com.workup.users.repositories; + +import com.workup.users.db.Education; +import org.springframework.data.mongodb.repository.MongoRepository; + +public interface EducationRepository extends MongoRepository {} diff --git a/shared/.mvn/jvm.config b/shared/.mvn/jvm.config new file mode 100644 index 00000000..e2a50e08 --- /dev/null +++ b/shared/.mvn/jvm.config @@ -0,0 +1 @@ +--add-exports jdk.compiler/com.sun.tools.javac.api=ALL-UNNAMED --add-exports jdk.compiler/com.sun.tools.javac.file=ALL-UNNAMED --add-exports jdk.compiler/com.sun.tools.javac.parser=ALL-UNNAMED --add-exports jdk.compiler/com.sun.tools.javac.tree=ALL-UNNAMED --add-exports jdk.compiler/com.sun.tools.javac.util=ALL-UNNAMED \ No newline at end of file diff --git a/shared/src/main/java/com/workup/shared/commands/users/requests/AddFreelancerAchievementRequest.java b/shared/src/main/java/com/workup/shared/commands/users/requests/AddFreelancerAchievementRequest.java new file mode 100644 index 00000000..7c950fe5 --- /dev/null +++ b/shared/src/main/java/com/workup/shared/commands/users/requests/AddFreelancerAchievementRequest.java @@ -0,0 +1,18 @@ +package com.workup.shared.commands.users.requests; + +import com.workup.shared.commands.CommandRequest; +import java.util.Date; +import lombok.Getter; +import lombok.experimental.SuperBuilder; +import lombok.extern.jackson.Jacksonized; + +@Getter +@SuperBuilder(setterPrefix = "with") +@Jacksonized +public class AddFreelancerAchievementRequest extends CommandRequest { + String freelancer_id; + String achievement_name; + String awarded_by; + String achievement_description; + Date award_date; +} diff --git a/shared/src/main/java/com/workup/shared/commands/users/requests/AddFreelancerEducationRequest.java b/shared/src/main/java/com/workup/shared/commands/users/requests/AddFreelancerEducationRequest.java new file mode 100644 index 00000000..2bac0981 --- /dev/null +++ b/shared/src/main/java/com/workup/shared/commands/users/requests/AddFreelancerEducationRequest.java @@ -0,0 +1,22 @@ +package com.workup.shared.commands.users.requests; + +import com.workup.shared.commands.CommandRequest; +import java.util.Date; +import lombok.Getter; +import lombok.experimental.SuperBuilder; +import lombok.extern.jackson.Jacksonized; + +@Getter +@SuperBuilder(setterPrefix = "with") +@Jacksonized +public class AddFreelancerEducationRequest extends CommandRequest { + String freelancer_id; + String school_name; + String degree; + Date education_start_date; + String city; + Date end_date; + String major; + String education_description; + String grade; +} diff --git a/shared/src/main/java/com/workup/shared/commands/users/requests/AddFreelancerExperienceRequest.java b/shared/src/main/java/com/workup/shared/commands/users/requests/AddFreelancerExperienceRequest.java new file mode 100644 index 00000000..d6aaa03c --- /dev/null +++ b/shared/src/main/java/com/workup/shared/commands/users/requests/AddFreelancerExperienceRequest.java @@ -0,0 +1,20 @@ +package com.workup.shared.commands.users.requests; + +import com.workup.shared.commands.CommandRequest; +import java.util.Date; +import lombok.Getter; +import lombok.experimental.SuperBuilder; +import lombok.extern.jackson.Jacksonized; + +@Getter +@SuperBuilder(setterPrefix = "with") +@Jacksonized +public class AddFreelancerExperienceRequest extends CommandRequest { + String freelancerId; + String company_name; + String job_title; + Date employment_start; + Date employment_end; + String experience_description; + String city; +} diff --git a/shared/src/main/java/com/workup/shared/commands/users/requests/AddFreelancerLanguageRequest.java b/shared/src/main/java/com/workup/shared/commands/users/requests/AddFreelancerLanguageRequest.java new file mode 100644 index 00000000..bc939d73 --- /dev/null +++ b/shared/src/main/java/com/workup/shared/commands/users/requests/AddFreelancerLanguageRequest.java @@ -0,0 +1,14 @@ +package com.workup.shared.commands.users.requests; + +import com.workup.shared.commands.CommandRequest; +import lombok.Getter; +import lombok.experimental.SuperBuilder; +import lombok.extern.jackson.Jacksonized; + +@Getter +@SuperBuilder(setterPrefix = "with") +@Jacksonized +public class AddFreelancerLanguageRequest extends CommandRequest { + String user_id; + String newLanguage; +} diff --git a/shared/src/main/java/com/workup/shared/commands/users/requests/AddFreelancerSkillRequest.java b/shared/src/main/java/com/workup/shared/commands/users/requests/AddFreelancerSkillRequest.java new file mode 100644 index 00000000..0116ca7c --- /dev/null +++ b/shared/src/main/java/com/workup/shared/commands/users/requests/AddFreelancerSkillRequest.java @@ -0,0 +1,14 @@ +package com.workup.shared.commands.users.requests; + +import com.workup.shared.commands.CommandRequest; +import lombok.Getter; +import lombok.experimental.SuperBuilder; +import lombok.extern.jackson.Jacksonized; + +@Getter +@SuperBuilder(setterPrefix = "with") +@Jacksonized +public class AddFreelancerSkillRequest extends CommandRequest { + String user_id; + String newSkill; +} diff --git a/shared/src/main/java/com/workup/shared/commands/users/requests/GetFreelancerAchievementsRequest.java b/shared/src/main/java/com/workup/shared/commands/users/requests/GetFreelancerAchievementsRequest.java new file mode 100644 index 00000000..35062ba6 --- /dev/null +++ b/shared/src/main/java/com/workup/shared/commands/users/requests/GetFreelancerAchievementsRequest.java @@ -0,0 +1,13 @@ +package com.workup.shared.commands.users.requests; + +import com.workup.shared.commands.CommandRequest; +import lombok.Getter; +import lombok.experimental.SuperBuilder; +import lombok.extern.jackson.Jacksonized; + +@Getter +@SuperBuilder(setterPrefix = "with") +@Jacksonized +public class GetFreelancerAchievementsRequest extends CommandRequest { + String freelancer_id; +} diff --git a/shared/src/main/java/com/workup/shared/commands/users/requests/GetFreelancerEducationsRequest.java b/shared/src/main/java/com/workup/shared/commands/users/requests/GetFreelancerEducationsRequest.java new file mode 100644 index 00000000..3fecb3ea --- /dev/null +++ b/shared/src/main/java/com/workup/shared/commands/users/requests/GetFreelancerEducationsRequest.java @@ -0,0 +1,13 @@ +package com.workup.shared.commands.users.requests; + +import com.workup.shared.commands.CommandRequest; +import lombok.Getter; +import lombok.experimental.SuperBuilder; +import lombok.extern.jackson.Jacksonized; + +@Getter +@SuperBuilder(setterPrefix = "with") +@Jacksonized +public class GetFreelancerEducationsRequest extends CommandRequest { + private String user_id; +} diff --git a/shared/src/main/java/com/workup/shared/commands/users/requests/GetFreelancerExperiencesRequest.java b/shared/src/main/java/com/workup/shared/commands/users/requests/GetFreelancerExperiencesRequest.java new file mode 100644 index 00000000..cda0209f --- /dev/null +++ b/shared/src/main/java/com/workup/shared/commands/users/requests/GetFreelancerExperiencesRequest.java @@ -0,0 +1,13 @@ +package com.workup.shared.commands.users.requests; + +import com.workup.shared.commands.CommandRequest; +import lombok.Getter; +import lombok.experimental.SuperBuilder; +import lombok.extern.jackson.Jacksonized; + +@Getter +@SuperBuilder(setterPrefix = "with") +@Jacksonized +public class GetFreelancerExperiencesRequest extends CommandRequest { + private String freelancerId; +} diff --git a/shared/src/main/java/com/workup/shared/commands/users/requests/GetFreelancerLanguagesRequest.java b/shared/src/main/java/com/workup/shared/commands/users/requests/GetFreelancerLanguagesRequest.java new file mode 100644 index 00000000..a1acf8f8 --- /dev/null +++ b/shared/src/main/java/com/workup/shared/commands/users/requests/GetFreelancerLanguagesRequest.java @@ -0,0 +1,13 @@ +package com.workup.shared.commands.users.requests; + +import com.workup.shared.commands.CommandRequest; +import lombok.Getter; +import lombok.experimental.SuperBuilder; +import lombok.extern.jackson.Jacksonized; + +@Getter +@SuperBuilder(setterPrefix = "with") +@Jacksonized +public class GetFreelancerLanguagesRequest extends CommandRequest { + String user_id; +} diff --git a/shared/src/main/java/com/workup/shared/commands/users/requests/GetFreelancerSkillsRequest.java b/shared/src/main/java/com/workup/shared/commands/users/requests/GetFreelancerSkillsRequest.java new file mode 100644 index 00000000..dbc325ae --- /dev/null +++ b/shared/src/main/java/com/workup/shared/commands/users/requests/GetFreelancerSkillsRequest.java @@ -0,0 +1,13 @@ +package com.workup.shared.commands.users.requests; + +import com.workup.shared.commands.CommandRequest; +import lombok.Getter; +import lombok.experimental.SuperBuilder; +import lombok.extern.jackson.Jacksonized; + +@Getter +@SuperBuilder(setterPrefix = "with") +@Jacksonized +public class GetFreelancerSkillsRequest extends CommandRequest { + String user_id; +} diff --git a/shared/src/main/java/com/workup/shared/commands/users/requests/RemoveFreelancerAchievementRequest.java b/shared/src/main/java/com/workup/shared/commands/users/requests/RemoveFreelancerAchievementRequest.java new file mode 100644 index 00000000..266cca34 --- /dev/null +++ b/shared/src/main/java/com/workup/shared/commands/users/requests/RemoveFreelancerAchievementRequest.java @@ -0,0 +1,14 @@ +package com.workup.shared.commands.users.requests; + +import com.workup.shared.commands.CommandRequest; +import lombok.Getter; +import lombok.experimental.SuperBuilder; +import lombok.extern.jackson.Jacksonized; + +@Getter +@SuperBuilder(setterPrefix = "with") +@Jacksonized +public class RemoveFreelancerAchievementRequest extends CommandRequest { + String freelancerId; + String achievementId; +} diff --git a/shared/src/main/java/com/workup/shared/commands/users/requests/RemoveFreelancerEducationRequest.java b/shared/src/main/java/com/workup/shared/commands/users/requests/RemoveFreelancerEducationRequest.java new file mode 100644 index 00000000..1c68fa73 --- /dev/null +++ b/shared/src/main/java/com/workup/shared/commands/users/requests/RemoveFreelancerEducationRequest.java @@ -0,0 +1,14 @@ +package com.workup.shared.commands.users.requests; + +import com.workup.shared.commands.CommandRequest; +import lombok.Getter; +import lombok.experimental.SuperBuilder; +import lombok.extern.jackson.Jacksonized; + +@Getter +@SuperBuilder(setterPrefix = "with") +@Jacksonized +public class RemoveFreelancerEducationRequest extends CommandRequest { + String freelancer_id; + String education_id; +} diff --git a/shared/src/main/java/com/workup/shared/commands/users/requests/RemoveFreelancerExperienceRequest.java b/shared/src/main/java/com/workup/shared/commands/users/requests/RemoveFreelancerExperienceRequest.java new file mode 100644 index 00000000..1e82f5eb --- /dev/null +++ b/shared/src/main/java/com/workup/shared/commands/users/requests/RemoveFreelancerExperienceRequest.java @@ -0,0 +1,14 @@ +package com.workup.shared.commands.users.requests; + +import com.workup.shared.commands.CommandRequest; +import lombok.Getter; +import lombok.experimental.SuperBuilder; +import lombok.extern.jackson.Jacksonized; + +@Getter +@SuperBuilder(setterPrefix = "with") +@Jacksonized +public class RemoveFreelancerExperienceRequest extends CommandRequest { + String freelancer_id; + String experience_id; +} diff --git a/shared/src/main/java/com/workup/shared/commands/users/requests/RemoveFreelancerLanguageRequest.java b/shared/src/main/java/com/workup/shared/commands/users/requests/RemoveFreelancerLanguageRequest.java new file mode 100644 index 00000000..a2537640 --- /dev/null +++ b/shared/src/main/java/com/workup/shared/commands/users/requests/RemoveFreelancerLanguageRequest.java @@ -0,0 +1,14 @@ +package com.workup.shared.commands.users.requests; + +import com.workup.shared.commands.CommandRequest; +import lombok.Getter; +import lombok.experimental.SuperBuilder; +import lombok.extern.jackson.Jacksonized; + +@Getter +@SuperBuilder(setterPrefix = "with") +@Jacksonized +public class RemoveFreelancerLanguageRequest extends CommandRequest { + private String user_id; + private String languageToRemove; +} diff --git a/shared/src/main/java/com/workup/shared/commands/users/requests/RemoveFreelancerSkillRequest.java b/shared/src/main/java/com/workup/shared/commands/users/requests/RemoveFreelancerSkillRequest.java new file mode 100644 index 00000000..3f1cfece --- /dev/null +++ b/shared/src/main/java/com/workup/shared/commands/users/requests/RemoveFreelancerSkillRequest.java @@ -0,0 +1,14 @@ +package com.workup.shared.commands.users.requests; + +import com.workup.shared.commands.CommandRequest; +import lombok.Getter; +import lombok.experimental.SuperBuilder; +import lombok.extern.jackson.Jacksonized; + +@Getter +@SuperBuilder(setterPrefix = "with") +@Jacksonized +public class RemoveFreelancerSkillRequest extends CommandRequest { + String user_id; + String skillToRemove; +} diff --git a/shared/src/main/java/com/workup/shared/commands/users/requests/UpdateFreelancerAchievementRequest.java b/shared/src/main/java/com/workup/shared/commands/users/requests/UpdateFreelancerAchievementRequest.java new file mode 100644 index 00000000..e31a4447 --- /dev/null +++ b/shared/src/main/java/com/workup/shared/commands/users/requests/UpdateFreelancerAchievementRequest.java @@ -0,0 +1,19 @@ +package com.workup.shared.commands.users.requests; + +import com.workup.shared.commands.CommandRequest; +import java.util.Date; +import lombok.Getter; +import lombok.experimental.SuperBuilder; +import lombok.extern.jackson.Jacksonized; + +@Getter +@SuperBuilder(setterPrefix = "with") +@Jacksonized +public class UpdateFreelancerAchievementRequest extends CommandRequest { + String freelancer_id; + String achievement_id; + String new_achievement_name; + String new_awarded_by; + String new_achievement_description; + Date new_award_date; +} diff --git a/shared/src/main/java/com/workup/shared/commands/users/requests/UpdateFreelancerEducationRequest.java b/shared/src/main/java/com/workup/shared/commands/users/requests/UpdateFreelancerEducationRequest.java new file mode 100644 index 00000000..3140bf08 --- /dev/null +++ b/shared/src/main/java/com/workup/shared/commands/users/requests/UpdateFreelancerEducationRequest.java @@ -0,0 +1,23 @@ +package com.workup.shared.commands.users.requests; + +import com.workup.shared.commands.CommandRequest; +import java.util.Date; +import lombok.Getter; +import lombok.experimental.SuperBuilder; +import lombok.extern.jackson.Jacksonized; + +@Getter +@SuperBuilder(setterPrefix = "with") +@Jacksonized +public class UpdateFreelancerEducationRequest extends CommandRequest { + String freelancer_id; + String education_id; + String new_school_name; + String new_degree; + Date new_education_start_date; + String new_city; + Date new_end_date; + String new_major; + String new_education_description; + String new_grade; +} diff --git a/shared/src/main/java/com/workup/shared/commands/users/requests/UpdateFreelancerExperienceRequest.java b/shared/src/main/java/com/workup/shared/commands/users/requests/UpdateFreelancerExperienceRequest.java new file mode 100644 index 00000000..a19f5862 --- /dev/null +++ b/shared/src/main/java/com/workup/shared/commands/users/requests/UpdateFreelancerExperienceRequest.java @@ -0,0 +1,21 @@ +package com.workup.shared.commands.users.requests; + +import com.workup.shared.commands.CommandRequest; +import java.util.Date; +import lombok.Getter; +import lombok.experimental.SuperBuilder; +import lombok.extern.jackson.Jacksonized; + +@Getter +@SuperBuilder(setterPrefix = "with") +@Jacksonized +public class UpdateFreelancerExperienceRequest extends CommandRequest { + String freelancer_id; + String experience_id; + String new_company_name; + String new_job_title; + Date new_employment_start; + Date new_employment_end; + String new_experience_description; + String new_city; +} diff --git a/shared/src/main/java/com/workup/shared/commands/users/responses/AddFreelancerAchievementResponse.java b/shared/src/main/java/com/workup/shared/commands/users/responses/AddFreelancerAchievementResponse.java new file mode 100644 index 00000000..2ba3370a --- /dev/null +++ b/shared/src/main/java/com/workup/shared/commands/users/responses/AddFreelancerAchievementResponse.java @@ -0,0 +1,11 @@ +package com.workup.shared.commands.users.responses; + +import com.workup.shared.commands.CommandResponse; +import lombok.Getter; +import lombok.experimental.SuperBuilder; +import lombok.extern.jackson.Jacksonized; + +@Getter +@SuperBuilder(setterPrefix = "with") +@Jacksonized +public class AddFreelancerAchievementResponse extends CommandResponse {} diff --git a/shared/src/main/java/com/workup/shared/commands/users/responses/AddFreelancerEducationResponse.java b/shared/src/main/java/com/workup/shared/commands/users/responses/AddFreelancerEducationResponse.java new file mode 100644 index 00000000..398912d2 --- /dev/null +++ b/shared/src/main/java/com/workup/shared/commands/users/responses/AddFreelancerEducationResponse.java @@ -0,0 +1,11 @@ +package com.workup.shared.commands.users.responses; + +import com.workup.shared.commands.CommandResponse; +import lombok.Getter; +import lombok.experimental.SuperBuilder; +import lombok.extern.jackson.Jacksonized; + +@Getter +@SuperBuilder(setterPrefix = "with") +@Jacksonized +public class AddFreelancerEducationResponse extends CommandResponse {} diff --git a/shared/src/main/java/com/workup/shared/commands/users/responses/AddFreelancerExperienceResponse.java b/shared/src/main/java/com/workup/shared/commands/users/responses/AddFreelancerExperienceResponse.java new file mode 100644 index 00000000..373a6901 --- /dev/null +++ b/shared/src/main/java/com/workup/shared/commands/users/responses/AddFreelancerExperienceResponse.java @@ -0,0 +1,11 @@ +package com.workup.shared.commands.users.responses; + +import com.workup.shared.commands.CommandResponse; +import lombok.Getter; +import lombok.experimental.SuperBuilder; +import lombok.extern.jackson.Jacksonized; + +@Getter +@SuperBuilder(setterPrefix = "with") +@Jacksonized +public class AddFreelancerExperienceResponse extends CommandResponse {} diff --git a/shared/src/main/java/com/workup/shared/commands/users/responses/AddFreelancerLanguageResponse.java b/shared/src/main/java/com/workup/shared/commands/users/responses/AddFreelancerLanguageResponse.java new file mode 100644 index 00000000..29d88c7a --- /dev/null +++ b/shared/src/main/java/com/workup/shared/commands/users/responses/AddFreelancerLanguageResponse.java @@ -0,0 +1,11 @@ +package com.workup.shared.commands.users.responses; + +import com.workup.shared.commands.CommandResponse; +import lombok.Getter; +import lombok.experimental.SuperBuilder; +import lombok.extern.jackson.Jacksonized; + +@Getter +@SuperBuilder(setterPrefix = "with") +@Jacksonized +public class AddFreelancerLanguageResponse extends CommandResponse {} diff --git a/shared/src/main/java/com/workup/shared/commands/users/responses/AddFreelancerSkillResponse.java b/shared/src/main/java/com/workup/shared/commands/users/responses/AddFreelancerSkillResponse.java new file mode 100644 index 00000000..eed450ce --- /dev/null +++ b/shared/src/main/java/com/workup/shared/commands/users/responses/AddFreelancerSkillResponse.java @@ -0,0 +1,11 @@ +package com.workup.shared.commands.users.responses; + +import com.workup.shared.commands.CommandResponse; +import lombok.Getter; +import lombok.experimental.SuperBuilder; +import lombok.extern.jackson.Jacksonized; + +@Getter +@SuperBuilder(setterPrefix = "with") +@Jacksonized +public class AddFreelancerSkillResponse extends CommandResponse {} diff --git a/shared/src/main/java/com/workup/shared/commands/users/responses/GetFreelancerLanguagesResponse.java b/shared/src/main/java/com/workup/shared/commands/users/responses/GetFreelancerLanguagesResponse.java new file mode 100644 index 00000000..7929ff59 --- /dev/null +++ b/shared/src/main/java/com/workup/shared/commands/users/responses/GetFreelancerLanguagesResponse.java @@ -0,0 +1,14 @@ +package com.workup.shared.commands.users.responses; + +import com.workup.shared.commands.CommandResponse; +import java.util.List; +import lombok.Getter; +import lombok.experimental.SuperBuilder; +import lombok.extern.jackson.Jacksonized; + +@Getter +@SuperBuilder(setterPrefix = "with") +@Jacksonized +public class GetFreelancerLanguagesResponse extends CommandResponse { + List languages; +} diff --git a/shared/src/main/java/com/workup/shared/commands/users/responses/GetFreelancerSkillsResponse.java b/shared/src/main/java/com/workup/shared/commands/users/responses/GetFreelancerSkillsResponse.java new file mode 100644 index 00000000..c7f07e94 --- /dev/null +++ b/shared/src/main/java/com/workup/shared/commands/users/responses/GetFreelancerSkillsResponse.java @@ -0,0 +1,14 @@ +package com.workup.shared.commands.users.responses; + +import com.workup.shared.commands.CommandResponse; +import java.util.List; +import lombok.Getter; +import lombok.experimental.SuperBuilder; +import lombok.extern.jackson.Jacksonized; + +@Getter +@SuperBuilder(setterPrefix = "with") +@Jacksonized +public class GetFreelancerSkillsResponse extends CommandResponse { + List skills; +} diff --git a/shared/src/main/java/com/workup/shared/commands/users/responses/RemoveFreelancerAchievementResponse.java b/shared/src/main/java/com/workup/shared/commands/users/responses/RemoveFreelancerAchievementResponse.java new file mode 100644 index 00000000..50cdb78a --- /dev/null +++ b/shared/src/main/java/com/workup/shared/commands/users/responses/RemoveFreelancerAchievementResponse.java @@ -0,0 +1,11 @@ +package com.workup.shared.commands.users.responses; + +import com.workup.shared.commands.CommandResponse; +import lombok.Getter; +import lombok.experimental.SuperBuilder; +import lombok.extern.jackson.Jacksonized; + +@Getter +@SuperBuilder(setterPrefix = "with") +@Jacksonized +public class RemoveFreelancerAchievementResponse extends CommandResponse {} diff --git a/shared/src/main/java/com/workup/shared/commands/users/responses/RemoveFreelancerEducationResponse.java b/shared/src/main/java/com/workup/shared/commands/users/responses/RemoveFreelancerEducationResponse.java new file mode 100644 index 00000000..e88ae8d0 --- /dev/null +++ b/shared/src/main/java/com/workup/shared/commands/users/responses/RemoveFreelancerEducationResponse.java @@ -0,0 +1,11 @@ +package com.workup.shared.commands.users.responses; + +import com.workup.shared.commands.CommandResponse; +import lombok.Getter; +import lombok.experimental.SuperBuilder; +import lombok.extern.jackson.Jacksonized; + +@Getter +@SuperBuilder(setterPrefix = "with") +@Jacksonized +public class RemoveFreelancerEducationResponse extends CommandResponse {} diff --git a/shared/src/main/java/com/workup/shared/commands/users/responses/RemoveFreelancerExperienceResponse.java b/shared/src/main/java/com/workup/shared/commands/users/responses/RemoveFreelancerExperienceResponse.java new file mode 100644 index 00000000..19ecdc2d --- /dev/null +++ b/shared/src/main/java/com/workup/shared/commands/users/responses/RemoveFreelancerExperienceResponse.java @@ -0,0 +1,11 @@ +package com.workup.shared.commands.users.responses; + +import com.workup.shared.commands.CommandResponse; +import lombok.Getter; +import lombok.experimental.SuperBuilder; +import lombok.extern.jackson.Jacksonized; + +@Getter +@SuperBuilder(setterPrefix = "with") +@Jacksonized +public class RemoveFreelancerExperienceResponse extends CommandResponse {} diff --git a/shared/src/main/java/com/workup/shared/commands/users/responses/RemoveFreelancerLanguageResponse.java b/shared/src/main/java/com/workup/shared/commands/users/responses/RemoveFreelancerLanguageResponse.java new file mode 100644 index 00000000..3c370160 --- /dev/null +++ b/shared/src/main/java/com/workup/shared/commands/users/responses/RemoveFreelancerLanguageResponse.java @@ -0,0 +1,11 @@ +package com.workup.shared.commands.users.responses; + +import com.workup.shared.commands.CommandResponse; +import lombok.Getter; +import lombok.experimental.SuperBuilder; +import lombok.extern.jackson.Jacksonized; + +@Getter +@SuperBuilder(setterPrefix = "with") +@Jacksonized +public class RemoveFreelancerLanguageResponse extends CommandResponse {} diff --git a/shared/src/main/java/com/workup/shared/commands/users/responses/RemoveFreelancerSkillResponse.java b/shared/src/main/java/com/workup/shared/commands/users/responses/RemoveFreelancerSkillResponse.java new file mode 100644 index 00000000..9abb09ba --- /dev/null +++ b/shared/src/main/java/com/workup/shared/commands/users/responses/RemoveFreelancerSkillResponse.java @@ -0,0 +1,11 @@ +package com.workup.shared.commands.users.responses; + +import com.workup.shared.commands.CommandResponse; +import lombok.Getter; +import lombok.experimental.SuperBuilder; +import lombok.extern.jackson.Jacksonized; + +@Getter +@SuperBuilder(setterPrefix = "with") +@Jacksonized +public class RemoveFreelancerSkillResponse extends CommandResponse {} diff --git a/shared/src/main/java/com/workup/shared/commands/users/responses/UpdateFreelancerAchievementResponse.java b/shared/src/main/java/com/workup/shared/commands/users/responses/UpdateFreelancerAchievementResponse.java new file mode 100644 index 00000000..08158dda --- /dev/null +++ b/shared/src/main/java/com/workup/shared/commands/users/responses/UpdateFreelancerAchievementResponse.java @@ -0,0 +1,11 @@ +package com.workup.shared.commands.users.responses; + +import com.workup.shared.commands.CommandResponse; +import lombok.Getter; +import lombok.experimental.SuperBuilder; +import lombok.extern.jackson.Jacksonized; + +@Getter +@SuperBuilder(setterPrefix = "with") +@Jacksonized +public class UpdateFreelancerAchievementResponse extends CommandResponse {} diff --git a/shared/src/main/java/com/workup/shared/commands/users/responses/UpdateFreelancerEducationResponse.java b/shared/src/main/java/com/workup/shared/commands/users/responses/UpdateFreelancerEducationResponse.java new file mode 100644 index 00000000..abcf1dc4 --- /dev/null +++ b/shared/src/main/java/com/workup/shared/commands/users/responses/UpdateFreelancerEducationResponse.java @@ -0,0 +1,11 @@ +package com.workup.shared.commands.users.responses; + +import com.workup.shared.commands.CommandResponse; +import lombok.Getter; +import lombok.experimental.SuperBuilder; +import lombok.extern.jackson.Jacksonized; + +@Getter +@SuperBuilder(setterPrefix = "with") +@Jacksonized +public class UpdateFreelancerEducationResponse extends CommandResponse {} diff --git a/shared/src/main/java/com/workup/shared/commands/users/responses/UpdateFreelancerExperienceResponse.java b/shared/src/main/java/com/workup/shared/commands/users/responses/UpdateFreelancerExperienceResponse.java new file mode 100644 index 00000000..f68dfe19 --- /dev/null +++ b/shared/src/main/java/com/workup/shared/commands/users/responses/UpdateFreelancerExperienceResponse.java @@ -0,0 +1,11 @@ +package com.workup.shared.commands.users.responses; + +import com.workup.shared.commands.CommandResponse; +import lombok.Getter; +import lombok.experimental.SuperBuilder; +import lombok.extern.jackson.Jacksonized; + +@Getter +@SuperBuilder(setterPrefix = "with") +@Jacksonized +public class UpdateFreelancerExperienceResponse extends CommandResponse {}