From 43da4fd01c6ec83df526fbe231903f3919eaaf03 Mon Sep 17 00:00:00 2001 From: Pandemic1617 <43860275+Pandemic1617@users.noreply.github.com> Date: Wed, 8 May 2024 14:50:40 +0300 Subject: [PATCH] added client set photo commands --- .../users/commands/ClientGetPhotoCommand.java | 29 +++++++++++++++++++ .../users/commands/ClientSetPhotoCommand.java | 29 +++++++++++++++++++ .../commands/FreelancerGetPhotoCommand.java | 21 ++++---------- .../commands/FreelancerGetResumeCommand.java | 21 ++++---------- .../commands/FreelancerSetPhotoCommand.java | 23 ++++++++------- .../commands/FreelancerSetResumeCommand.java | 23 ++++++++------- .../main/java/com/workup/users/db/Client.java | 2 +- .../java/com/workup/users/db/Freelancer.java | 4 +-- .../users/requests/ClientGetPhotoRequest.java | 13 +++++++++ .../users/requests/ClientSetPhotoRequest.java | 14 +++++++++ .../requests/FreelancerSetPhotoRequest.java | 2 +- .../requests/FreelancerSetResumeRequest.java | 2 +- .../responses/ClientGetPhotoResponse.java | 13 +++++++++ .../responses/ClientSetPhotoResponse.java | 11 +++++++ .../responses/FreelancerGetPhotoResponse.java | 2 +- .../FreelancerGetResumeResponse.java | 2 +- 16 files changed, 150 insertions(+), 61 deletions(-) create mode 100644 services/users/src/main/java/com/workup/users/commands/ClientGetPhotoCommand.java create mode 100644 services/users/src/main/java/com/workup/users/commands/ClientSetPhotoCommand.java create mode 100644 shared/src/main/java/com/workup/shared/commands/users/requests/ClientGetPhotoRequest.java create mode 100644 shared/src/main/java/com/workup/shared/commands/users/requests/ClientSetPhotoRequest.java create mode 100644 shared/src/main/java/com/workup/shared/commands/users/responses/ClientGetPhotoResponse.java create mode 100644 shared/src/main/java/com/workup/shared/commands/users/responses/ClientSetPhotoResponse.java diff --git a/services/users/src/main/java/com/workup/users/commands/ClientGetPhotoCommand.java b/services/users/src/main/java/com/workup/users/commands/ClientGetPhotoCommand.java new file mode 100644 index 00000000..6f5100bc --- /dev/null +++ b/services/users/src/main/java/com/workup/users/commands/ClientGetPhotoCommand.java @@ -0,0 +1,29 @@ +package com.workup.users.commands; + +import com.workup.shared.commands.users.requests.ClientGetPhotoRequest; +import com.workup.shared.commands.users.responses.ClientGetPhotoResponse; +import com.workup.shared.enums.HttpStatusCode; +import com.workup.users.db.Client; +import java.util.Optional; + +public class ClientGetPhotoCommand + extends UserCommand { + + @Override + public ClientGetPhotoResponse Run(ClientGetPhotoRequest request) { + Optional clientOptional = clientRepository.findById(request.user_id); + + if (!clientOptional.isPresent()) { + return ClientGetPhotoResponse.builder() + .withStatusCode(HttpStatusCode.INTERNAL_SERVER_ERROR) + .build(); + } + + Client client = clientOptional.get(); + + return ClientGetPhotoResponse.builder() + .withStatusCode(HttpStatusCode.OK) + .withPhotoLink(client.getPhoto_link()) + .build(); + } +} diff --git a/services/users/src/main/java/com/workup/users/commands/ClientSetPhotoCommand.java b/services/users/src/main/java/com/workup/users/commands/ClientSetPhotoCommand.java new file mode 100644 index 00000000..b7b6ad1f --- /dev/null +++ b/services/users/src/main/java/com/workup/users/commands/ClientSetPhotoCommand.java @@ -0,0 +1,29 @@ +package com.workup.users.commands; + +import com.workup.shared.commands.users.requests.ClientSetPhotoRequest; +import com.workup.shared.commands.users.responses.ClientSetPhotoResponse; +import com.workup.shared.enums.HttpStatusCode; +import com.workup.users.db.Client; +import java.util.Optional; + +public class ClientSetPhotoCommand + extends UserCommand { + + @Override + public ClientSetPhotoResponse Run(ClientSetPhotoRequest request) { + + Optional clientOption = clientRepository.findById(request.user_id); + + if (!clientOption.isPresent()) { + throw new RuntimeException("User not found"); + } + + Client client = clientOption.get(); + + client.setPhoto_link(request.photoLink); + + clientRepository.save(client); + + return ClientSetPhotoResponse.builder().withStatusCode(HttpStatusCode.OK).build(); + } +} 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..cc26dac8 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 @@ -3,8 +3,7 @@ import com.workup.shared.commands.users.requests.FreelancerGetPhotoRequest; import com.workup.shared.commands.users.responses.FreelancerGetPhotoResponse; import com.workup.shared.enums.HttpStatusCode; -import com.workup.users.db.Client; -import java.util.Base64; +import com.workup.users.db.Freelancer; import java.util.Optional; public class FreelancerGetPhotoCommand @@ -12,29 +11,19 @@ public class FreelancerGetPhotoCommand @Override public FreelancerGetPhotoResponse Run(FreelancerGetPhotoRequest request) { - Optional clientOptional = clientRepository.findById(request.user_id); + Optional freelancerOptional = freelancerRepository.findById(request.user_id); - if (!clientOptional.isPresent()) { + if (!freelancerOptional.isPresent()) { return FreelancerGetPhotoResponse.builder() .withStatusCode(HttpStatusCode.INTERNAL_SERVER_ERROR) .build(); } - String name = PHOTO_BUCKET + request.user_id; - byte[] bytesArr; - try { - bytesArr = gridFsTemplate.getResource(name).getInputStream().readAllBytes(); - } catch (Exception e) { - return FreelancerGetPhotoResponse.builder() - .withStatusCode(HttpStatusCode.INTERNAL_SERVER_ERROR) - .build(); - } - - String base64Encoded = Base64.getEncoder().encodeToString(bytesArr); + Freelancer freelancer = freelancerOptional.get(); return FreelancerGetPhotoResponse.builder() .withStatusCode(HttpStatusCode.OK) - .withPhotoEncoded(base64Encoded) + .withPhotoLink(freelancer.getPhoto_link()) .build(); } } diff --git a/services/users/src/main/java/com/workup/users/commands/FreelancerGetResumeCommand.java b/services/users/src/main/java/com/workup/users/commands/FreelancerGetResumeCommand.java index 82058cfe..34593321 100644 --- a/services/users/src/main/java/com/workup/users/commands/FreelancerGetResumeCommand.java +++ b/services/users/src/main/java/com/workup/users/commands/FreelancerGetResumeCommand.java @@ -3,8 +3,7 @@ import com.workup.shared.commands.users.requests.FreelancerGetResumeRequest; import com.workup.shared.commands.users.responses.FreelancerGetResumeResponse; import com.workup.shared.enums.HttpStatusCode; -import com.workup.users.db.Client; -import java.util.Base64; +import com.workup.users.db.Freelancer; import java.util.Optional; public class FreelancerGetResumeCommand @@ -12,29 +11,19 @@ public class FreelancerGetResumeCommand @Override public FreelancerGetResumeResponse Run(FreelancerGetResumeRequest request) { - Optional clientOptional = clientRepository.findById(request.user_id); + Optional freelancerOptional = freelancerRepository.findById(request.user_id); - if (!clientOptional.isPresent()) { + if (!freelancerOptional.isPresent()) { return FreelancerGetResumeResponse.builder() .withStatusCode(HttpStatusCode.INTERNAL_SERVER_ERROR) .build(); } - String name = RESUME_BUCKET + request.user_id; - byte[] bytesArr; - try { - bytesArr = gridFsTemplate.getResource(name).getInputStream().readAllBytes(); - } catch (Exception e) { - return FreelancerGetResumeResponse.builder() - .withStatusCode(HttpStatusCode.INTERNAL_SERVER_ERROR) - .build(); - } - - String base64Encoded = Base64.getEncoder().encodeToString(bytesArr); + Freelancer freelancer = freelancerOptional.get(); return FreelancerGetResumeResponse.builder() .withStatusCode(HttpStatusCode.OK) - .withResumeEncoded(base64Encoded) + .withResumeLink(freelancer.getResume_link()) .build(); } } diff --git a/services/users/src/main/java/com/workup/users/commands/FreelancerSetPhotoCommand.java b/services/users/src/main/java/com/workup/users/commands/FreelancerSetPhotoCommand.java index 2014943a..3bd750d4 100644 --- a/services/users/src/main/java/com/workup/users/commands/FreelancerSetPhotoCommand.java +++ b/services/users/src/main/java/com/workup/users/commands/FreelancerSetPhotoCommand.java @@ -3,8 +3,8 @@ import com.workup.shared.commands.users.requests.FreelancerSetPhotoRequest; import com.workup.shared.commands.users.responses.FreelancerSetPhotoResponse; import com.workup.shared.enums.HttpStatusCode; -import java.io.ByteArrayInputStream; -import java.util.Base64; +import com.workup.users.db.Freelancer; +import java.util.Optional; public class FreelancerSetPhotoCommand extends UserCommand { @@ -12,17 +12,18 @@ public class FreelancerSetPhotoCommand @Override public FreelancerSetPhotoResponse Run(FreelancerSetPhotoRequest request) { - String name = PHOTO_BUCKET + request.user_id; + Optional freelancerOption = freelancerRepository.findById(request.user_id); - byte[] photo_bytes_arr = Base64.getDecoder().decode(request.photo_encoded); - - try { - gridFsTemplate.store(new ByteArrayInputStream(photo_bytes_arr), name); - } catch (Exception e) { - return FreelancerSetPhotoResponse.builder() - .withStatusCode(HttpStatusCode.INTERNAL_SERVER_ERROR) - .build(); + if (!freelancerOption.isPresent()) { + throw new RuntimeException("User not found"); } + + Freelancer freelancer = freelancerOption.get(); + + freelancer.setPhoto_link(request.photoLink); + + freelancerRepository.save(freelancer); + return FreelancerSetPhotoResponse.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..483c07e6 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 @@ -3,8 +3,8 @@ import com.workup.shared.commands.users.requests.FreelancerSetResumeRequest; import com.workup.shared.commands.users.responses.FreelancerSetResumeResponse; import com.workup.shared.enums.HttpStatusCode; -import java.io.ByteArrayInputStream; -import java.util.Base64; +import com.workup.users.db.Freelancer; +import java.util.Optional; public class FreelancerSetResumeCommand extends UserCommand { @@ -12,17 +12,18 @@ public class FreelancerSetResumeCommand @Override public FreelancerSetResumeResponse Run(FreelancerSetResumeRequest request) { - String name = RESUME_BUCKET + request.user_id; + Optional freelancerOption = freelancerRepository.findById(request.user_id); - byte[] resume_byes_arr = Base64.getDecoder().decode(request.resume_encoded); - - try { - gridFsTemplate.store(new ByteArrayInputStream(resume_byes_arr), name); - } catch (Exception e) { - return FreelancerSetResumeResponse.builder() - .withStatusCode(HttpStatusCode.INTERNAL_SERVER_ERROR) - .build(); + if (!freelancerOption.isPresent()) { + throw new RuntimeException("User not found"); } + + Freelancer freelancer = freelancerOption.get(); + + freelancer.setResume_link(request.resumeLink); + + freelancerRepository.save(freelancer); + return FreelancerSetResumeResponse.builder().withStatusCode(HttpStatusCode.OK).build(); } } diff --git a/services/users/src/main/java/com/workup/users/db/Client.java b/services/users/src/main/java/com/workup/users/db/Client.java index 214acfd7..342e6d95 100644 --- a/services/users/src/main/java/com/workup/users/db/Client.java +++ b/services/users/src/main/java/com/workup/users/db/Client.java @@ -22,7 +22,7 @@ public class Client { private String client_name; private String industry; private String city; - private String photo_id; + private String photo_link; private String client_description; private Integer employee_count; } 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..80860194 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 @@ -23,10 +23,10 @@ public class Freelancer { private Date created_at; private String full_name; private Date birthdate; - private String resume_id; + private String resume_link; private String city; private String job_title; - private String photo_id; + private String photo_link; private String description; private List skills; private List languages; diff --git a/shared/src/main/java/com/workup/shared/commands/users/requests/ClientGetPhotoRequest.java b/shared/src/main/java/com/workup/shared/commands/users/requests/ClientGetPhotoRequest.java new file mode 100644 index 00000000..e08d4772 --- /dev/null +++ b/shared/src/main/java/com/workup/shared/commands/users/requests/ClientGetPhotoRequest.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 ClientGetPhotoRequest extends CommandRequest { + public String user_id; +} diff --git a/shared/src/main/java/com/workup/shared/commands/users/requests/ClientSetPhotoRequest.java b/shared/src/main/java/com/workup/shared/commands/users/requests/ClientSetPhotoRequest.java new file mode 100644 index 00000000..1ca988f4 --- /dev/null +++ b/shared/src/main/java/com/workup/shared/commands/users/requests/ClientSetPhotoRequest.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 ClientSetPhotoRequest extends CommandRequest { + public String user_id; + public String photoLink; +} diff --git a/shared/src/main/java/com/workup/shared/commands/users/requests/FreelancerSetPhotoRequest.java b/shared/src/main/java/com/workup/shared/commands/users/requests/FreelancerSetPhotoRequest.java index 21941f94..13efb465 100644 --- a/shared/src/main/java/com/workup/shared/commands/users/requests/FreelancerSetPhotoRequest.java +++ b/shared/src/main/java/com/workup/shared/commands/users/requests/FreelancerSetPhotoRequest.java @@ -10,5 +10,5 @@ @Jacksonized public class FreelancerSetPhotoRequest extends CommandRequest { public String user_id; - public String photo_encoded; // Base64 encoded photo + public String photoLink; } diff --git a/shared/src/main/java/com/workup/shared/commands/users/requests/FreelancerSetResumeRequest.java b/shared/src/main/java/com/workup/shared/commands/users/requests/FreelancerSetResumeRequest.java index 3961117f..0b39dead 100644 --- a/shared/src/main/java/com/workup/shared/commands/users/requests/FreelancerSetResumeRequest.java +++ b/shared/src/main/java/com/workup/shared/commands/users/requests/FreelancerSetResumeRequest.java @@ -10,5 +10,5 @@ @Jacksonized public class FreelancerSetResumeRequest extends CommandRequest { public String user_id; - public String resume_encoded; // Base64 encoded photo + public String resumeLink; } diff --git a/shared/src/main/java/com/workup/shared/commands/users/responses/ClientGetPhotoResponse.java b/shared/src/main/java/com/workup/shared/commands/users/responses/ClientGetPhotoResponse.java new file mode 100644 index 00000000..70d73203 --- /dev/null +++ b/shared/src/main/java/com/workup/shared/commands/users/responses/ClientGetPhotoResponse.java @@ -0,0 +1,13 @@ +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 ClientGetPhotoResponse extends CommandResponse { + public String photoLink; +} diff --git a/shared/src/main/java/com/workup/shared/commands/users/responses/ClientSetPhotoResponse.java b/shared/src/main/java/com/workup/shared/commands/users/responses/ClientSetPhotoResponse.java new file mode 100644 index 00000000..c895433f --- /dev/null +++ b/shared/src/main/java/com/workup/shared/commands/users/responses/ClientSetPhotoResponse.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 ClientSetPhotoResponse extends CommandResponse {} diff --git a/shared/src/main/java/com/workup/shared/commands/users/responses/FreelancerGetPhotoResponse.java b/shared/src/main/java/com/workup/shared/commands/users/responses/FreelancerGetPhotoResponse.java index d47a35ec..819fbc5a 100644 --- a/shared/src/main/java/com/workup/shared/commands/users/responses/FreelancerGetPhotoResponse.java +++ b/shared/src/main/java/com/workup/shared/commands/users/responses/FreelancerGetPhotoResponse.java @@ -9,5 +9,5 @@ @SuperBuilder(setterPrefix = "with") @Jacksonized public class FreelancerGetPhotoResponse extends CommandResponse { - public String photoEncoded; // Base64 encoded photo + public String photoLink; } diff --git a/shared/src/main/java/com/workup/shared/commands/users/responses/FreelancerGetResumeResponse.java b/shared/src/main/java/com/workup/shared/commands/users/responses/FreelancerGetResumeResponse.java index 92b2e4c3..3b444e95 100644 --- a/shared/src/main/java/com/workup/shared/commands/users/responses/FreelancerGetResumeResponse.java +++ b/shared/src/main/java/com/workup/shared/commands/users/responses/FreelancerGetResumeResponse.java @@ -9,5 +9,5 @@ @SuperBuilder(setterPrefix = "with") @Jacksonized public class FreelancerGetResumeResponse extends CommandResponse { - public String resumeEncoded; // Base64 encoded resume + public String resumeLink; }