From 8e5f8ee8e78be2f2f6060b1740c8e9f440542dda Mon Sep 17 00:00:00 2001 From: Alexandrov Alexandr <144331961+butareyka@users.noreply.github.com> Date: Sun, 10 Nov 2024 22:57:59 +0300 Subject: [PATCH] Proposal CRUD: add, update, delete --- .idea/misc.xml | 2 +- .idea/modules.xml | 2 + .idea/workspace.xml | 110 +++++++++++------- Frontend/.idea/Frontend.iml | 9 ++ Frontend/Frontend.iml | 9 ++ .../server/services/ProposalService.java | 27 ----- .../server/DTO/MemberDTO.java | 2 +- .../server/DTO/OrganizationDTO.java | 2 +- .../server/DTO/OrganizationProfileDTO.java | 2 +- .../server/DTO/ProposalDTO.java | 2 +- .../server/DTO/ProposalInfoDTO.java | 3 +- .../server/ServerApplication.java | 2 +- .../server/controllers/MemberController.java | 6 +- .../controllers/OrganizationController.java | 10 +- .../controllers/ProposalController.java | 34 +++++- .../server/models/Member.java | 2 +- .../server/models/ModerationStatus.java | 2 +- .../server/models/Organization.java | 2 +- .../server/models/OrganizationLinks.java | 3 +- .../server/models/OrganizationModeration.java | 2 +- .../models/OrganizationModerationId.java | 2 +- .../server/models/OrganizationProposal.java | 3 +- .../server/models/OrganizationProposalId.java | 2 +- .../server/models/Proposal.java | 20 +++- .../server/models/ProposalInfo.java | 2 +- .../server/models/ProposalStatus.java | 2 +- .../server/models/Wallet.java | 2 +- .../server/repositories/MemberRepository.java | 4 +- .../OrganizationLinksRepository.java | 4 +- .../repositories/OrganizationRepository.java | 4 +- .../repositories/ProposalInfoRepository.java | 4 +- .../repositories/ProposalRepository.java | 5 +- .../server/services/MemberService.java | 6 +- .../services/OrganizationProfileService.java | 20 ++-- .../server/services/OrganizationService.java | 6 +- .../services/ProposalProfileService.java | 8 +- .../server/services/ProposalService.java | 52 +++++++++ .../src/main/resources/application.properties | 6 +- .../src/main/resources/templates/profile.html | 1 + .../server/ServerApplicationTests.java | 2 +- 40 files changed, 250 insertions(+), 138 deletions(-) create mode 100644 Frontend/.idea/Frontend.iml create mode 100644 Frontend/Frontend.iml delete mode 100644 Server/src/main/java/by/titanic/server/services/ProposalService.java rename Server/src/main/java/by/{titanic => tonArea}/server/DTO/MemberDTO.java (85%) rename Server/src/main/java/by/{titanic => tonArea}/server/DTO/OrganizationDTO.java (86%) rename Server/src/main/java/by/{titanic => tonArea}/server/DTO/OrganizationProfileDTO.java (93%) rename Server/src/main/java/by/{titanic => tonArea}/server/DTO/ProposalDTO.java (89%) rename Server/src/main/java/by/{titanic => tonArea}/server/DTO/ProposalInfoDTO.java (93%) rename Server/src/main/java/by/{titanic => tonArea}/server/ServerApplication.java (91%) rename Server/src/main/java/by/{titanic => tonArea}/server/controllers/MemberController.java (75%) rename Server/src/main/java/by/{titanic => tonArea}/server/controllers/OrganizationController.java (80%) rename Server/src/main/java/by/{titanic => tonArea}/server/controllers/ProposalController.java (50%) rename Server/src/main/java/by/{titanic => tonArea}/server/models/Member.java (91%) rename Server/src/main/java/by/{titanic => tonArea}/server/models/ModerationStatus.java (63%) rename Server/src/main/java/by/{titanic => tonArea}/server/models/Organization.java (92%) rename Server/src/main/java/by/{titanic => tonArea}/server/models/OrganizationLinks.java (90%) rename Server/src/main/java/by/{titanic => tonArea}/server/models/OrganizationModeration.java (90%) rename Server/src/main/java/by/{titanic => tonArea}/server/models/OrganizationModerationId.java (91%) rename Server/src/main/java/by/{titanic => tonArea}/server/models/OrganizationProposal.java (72%) rename Server/src/main/java/by/{titanic => tonArea}/server/models/OrganizationProposalId.java (90%) rename Server/src/main/java/by/{titanic => tonArea}/server/models/Proposal.java (72%) rename Server/src/main/java/by/{titanic => tonArea}/server/models/ProposalInfo.java (96%) rename Server/src/main/java/by/{titanic => tonArea}/server/models/ProposalStatus.java (66%) rename Server/src/main/java/by/{titanic => tonArea}/server/models/Wallet.java (91%) rename Server/src/main/java/by/{titanic => tonArea}/server/repositories/MemberRepository.java (63%) rename Server/src/main/java/by/{titanic => tonArea}/server/repositories/OrganizationLinksRepository.java (89%) rename Server/src/main/java/by/{titanic => tonArea}/server/repositories/OrganizationRepository.java (79%) rename Server/src/main/java/by/{titanic => tonArea}/server/repositories/ProposalInfoRepository.java (84%) rename Server/src/main/java/by/{titanic => tonArea}/server/repositories/ProposalRepository.java (77%) rename Server/src/main/java/by/{titanic => tonArea}/server/services/MemberService.java (70%) rename Server/src/main/java/by/{titanic => tonArea}/server/services/OrganizationProfileService.java (77%) rename Server/src/main/java/by/{titanic => tonArea}/server/services/OrganizationService.java (81%) rename Server/src/main/java/by/{titanic => tonArea}/server/services/ProposalProfileService.java (80%) create mode 100644 Server/src/main/java/by/tonArea/server/services/ProposalService.java rename Server/src/test/java/by/{titanic => tonArea}/server/ServerApplicationTests.java (87%) diff --git a/.idea/misc.xml b/.idea/misc.xml index 24be906..c228e75 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -4,7 +4,7 @@ - + \ No newline at end of file diff --git a/.idea/modules.xml b/.idea/modules.xml index 47dc2a9..cadadc1 100644 --- a/.idea/modules.xml +++ b/.idea/modules.xml @@ -2,8 +2,10 @@ + + \ No newline at end of file diff --git a/.idea/workspace.xml b/.idea/workspace.xml index 80e015d..89571b3 100644 --- a/.idea/workspace.xml +++ b/.idea/workspace.xml @@ -5,18 +5,43 @@ - - - - - - - - - - + + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - { - "keyToString": { - "Gradle.Build Server.executor": "Run", - "Gradle.Download Sources.executor": "Run", - "Gradle.Server.executor": "Run", - "RequestMappingsPanelOrder0": "0", - "RequestMappingsPanelOrder1": "1", - "RequestMappingsPanelWidth0": "75", - "RequestMappingsPanelWidth1": "75", - "RunOnceActivity.ShowReadmeOnStart": "true", - "SHARE_PROJECT_CONFIGURATION_FILES": "true", - "Spring Boot.ServerApplication.executor": "Run", - "git-widget-placeholder": "main", - "kotlin-language-version-configured": "true", - "last_opened_file_path": "/Users/macbook/pets/Titanic", - "node.js.detected.package.eslint": "true", - "node.js.detected.package.tslint": "true", - "node.js.selected.package.eslint": "(autodetect)", - "node.js.selected.package.tslint": "(autodetect)", - "nodejs_package_manager_path": "npm", - "project.structure.last.edited": "Project", - "project.structure.proportion": "0.0", - "project.structure.side.proportion": "0.0", - "settings.editor.selected.configurable": "reference.settingsdialog.project.gradle", - "vue.rearranger.settings.migration": "true" + +}]]> - diff --git a/Frontend/.idea/Frontend.iml b/Frontend/.idea/Frontend.iml new file mode 100644 index 0000000..d6ebd48 --- /dev/null +++ b/Frontend/.idea/Frontend.iml @@ -0,0 +1,9 @@ + + + + + + + + + \ No newline at end of file diff --git a/Frontend/Frontend.iml b/Frontend/Frontend.iml new file mode 100644 index 0000000..8021953 --- /dev/null +++ b/Frontend/Frontend.iml @@ -0,0 +1,9 @@ + + + + + + + + + \ No newline at end of file diff --git a/Server/src/main/java/by/titanic/server/services/ProposalService.java b/Server/src/main/java/by/titanic/server/services/ProposalService.java deleted file mode 100644 index ee2102c..0000000 --- a/Server/src/main/java/by/titanic/server/services/ProposalService.java +++ /dev/null @@ -1,27 +0,0 @@ -package by.titanic.server.services; - -import by.titanic.server.models.Proposal; -import by.titanic.server.repositories.ProposalRepository; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; - -import java.util.List; - -@Service -public class ProposalService { - - @Autowired - private ProposalRepository proposalRepository; - - public List getAllProposals() { - return proposalRepository.findAll(); - } - - public Proposal createProposal(Proposal proposal) { - return proposalRepository.save(proposal); - } - public Proposal getProposalById(Integer id) { - return proposalRepository.findById(id).orElse(null); - } -} - diff --git a/Server/src/main/java/by/titanic/server/DTO/MemberDTO.java b/Server/src/main/java/by/tonArea/server/DTO/MemberDTO.java similarity index 85% rename from Server/src/main/java/by/titanic/server/DTO/MemberDTO.java rename to Server/src/main/java/by/tonArea/server/DTO/MemberDTO.java index 885c29b..5bb9e87 100644 --- a/Server/src/main/java/by/titanic/server/DTO/MemberDTO.java +++ b/Server/src/main/java/by/tonArea/server/DTO/MemberDTO.java @@ -1,4 +1,4 @@ -package by.titanic.server.DTO; +package by.tonArea.server.DTO; import lombok.*; diff --git a/Server/src/main/java/by/titanic/server/DTO/OrganizationDTO.java b/Server/src/main/java/by/tonArea/server/DTO/OrganizationDTO.java similarity index 86% rename from Server/src/main/java/by/titanic/server/DTO/OrganizationDTO.java rename to Server/src/main/java/by/tonArea/server/DTO/OrganizationDTO.java index 72b226f..9d01583 100644 --- a/Server/src/main/java/by/titanic/server/DTO/OrganizationDTO.java +++ b/Server/src/main/java/by/tonArea/server/DTO/OrganizationDTO.java @@ -1,4 +1,4 @@ -package by.titanic.server.DTO; +package by.tonArea.server.DTO; import lombok.*; diff --git a/Server/src/main/java/by/titanic/server/DTO/OrganizationProfileDTO.java b/Server/src/main/java/by/tonArea/server/DTO/OrganizationProfileDTO.java similarity index 93% rename from Server/src/main/java/by/titanic/server/DTO/OrganizationProfileDTO.java rename to Server/src/main/java/by/tonArea/server/DTO/OrganizationProfileDTO.java index 157bba5..619e6bf 100644 --- a/Server/src/main/java/by/titanic/server/DTO/OrganizationProfileDTO.java +++ b/Server/src/main/java/by/tonArea/server/DTO/OrganizationProfileDTO.java @@ -1,4 +1,4 @@ -package by.titanic.server.DTO; +package by.tonArea.server.DTO; import lombok.*; diff --git a/Server/src/main/java/by/titanic/server/DTO/ProposalDTO.java b/Server/src/main/java/by/tonArea/server/DTO/ProposalDTO.java similarity index 89% rename from Server/src/main/java/by/titanic/server/DTO/ProposalDTO.java rename to Server/src/main/java/by/tonArea/server/DTO/ProposalDTO.java index be559de..a67e7f5 100644 --- a/Server/src/main/java/by/titanic/server/DTO/ProposalDTO.java +++ b/Server/src/main/java/by/tonArea/server/DTO/ProposalDTO.java @@ -1,4 +1,4 @@ -package by.titanic.server.DTO; +package by.tonArea.server.DTO; import lombok.*; diff --git a/Server/src/main/java/by/titanic/server/DTO/ProposalInfoDTO.java b/Server/src/main/java/by/tonArea/server/DTO/ProposalInfoDTO.java similarity index 93% rename from Server/src/main/java/by/titanic/server/DTO/ProposalInfoDTO.java rename to Server/src/main/java/by/tonArea/server/DTO/ProposalInfoDTO.java index 117758d..f45be53 100644 --- a/Server/src/main/java/by/titanic/server/DTO/ProposalInfoDTO.java +++ b/Server/src/main/java/by/tonArea/server/DTO/ProposalInfoDTO.java @@ -1,10 +1,11 @@ -package by.titanic.server.DTO; +package by.tonArea.server.DTO; import lombok.*; /** * DTO для передачи информации странице конкретного предложения */ + @Getter @Setter @AllArgsConstructor diff --git a/Server/src/main/java/by/titanic/server/ServerApplication.java b/Server/src/main/java/by/tonArea/server/ServerApplication.java similarity index 91% rename from Server/src/main/java/by/titanic/server/ServerApplication.java rename to Server/src/main/java/by/tonArea/server/ServerApplication.java index d9766f1..78fbff0 100644 --- a/Server/src/main/java/by/titanic/server/ServerApplication.java +++ b/Server/src/main/java/by/tonArea/server/ServerApplication.java @@ -1,4 +1,4 @@ -package by.titanic.server; +package by.tonArea.server; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; diff --git a/Server/src/main/java/by/titanic/server/controllers/MemberController.java b/Server/src/main/java/by/tonArea/server/controllers/MemberController.java similarity index 75% rename from Server/src/main/java/by/titanic/server/controllers/MemberController.java rename to Server/src/main/java/by/tonArea/server/controllers/MemberController.java index 9df2f11..0ac39c3 100644 --- a/Server/src/main/java/by/titanic/server/controllers/MemberController.java +++ b/Server/src/main/java/by/tonArea/server/controllers/MemberController.java @@ -1,7 +1,7 @@ -package by.titanic.server.controllers; +package by.tonArea.server.controllers; -import by.titanic.server.models.Member; -import by.titanic.server.services.MemberService; +import by.tonArea.server.models.Member; +import by.tonArea.server.services.MemberService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; diff --git a/Server/src/main/java/by/titanic/server/controllers/OrganizationController.java b/Server/src/main/java/by/tonArea/server/controllers/OrganizationController.java similarity index 80% rename from Server/src/main/java/by/titanic/server/controllers/OrganizationController.java rename to Server/src/main/java/by/tonArea/server/controllers/OrganizationController.java index dd96eca..a5c4e01 100644 --- a/Server/src/main/java/by/titanic/server/controllers/OrganizationController.java +++ b/Server/src/main/java/by/tonArea/server/controllers/OrganizationController.java @@ -1,9 +1,9 @@ -package by.titanic.server.controllers; +package by.tonArea.server.controllers; -import by.titanic.server.DTO.OrganizationProfileDTO; -import by.titanic.server.models.Organization; -import by.titanic.server.services.OrganizationProfileService; -import by.titanic.server.services.OrganizationService; +import by.tonArea.server.DTO.OrganizationProfileDTO; +import by.tonArea.server.models.Organization; +import by.tonArea.server.services.OrganizationProfileService; +import by.tonArea.server.services.OrganizationService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; diff --git a/Server/src/main/java/by/titanic/server/controllers/ProposalController.java b/Server/src/main/java/by/tonArea/server/controllers/ProposalController.java similarity index 50% rename from Server/src/main/java/by/titanic/server/controllers/ProposalController.java rename to Server/src/main/java/by/tonArea/server/controllers/ProposalController.java index 9dfa98e..6e3822a 100644 --- a/Server/src/main/java/by/titanic/server/controllers/ProposalController.java +++ b/Server/src/main/java/by/tonArea/server/controllers/ProposalController.java @@ -1,9 +1,9 @@ -package by.titanic.server.controllers; +package by.tonArea.server.controllers; -import by.titanic.server.DTO.ProposalInfoDTO; -import by.titanic.server.models.Proposal; -import by.titanic.server.services.ProposalProfileService; -import by.titanic.server.services.ProposalService; +import by.tonArea.server.DTO.ProposalInfoDTO; +import by.tonArea.server.models.Proposal; +import by.tonArea.server.services.ProposalProfileService; +import by.tonArea.server.services.ProposalService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; @@ -37,4 +37,28 @@ public Proposal createProposal(@RequestBody Proposal proposal) { public ProposalInfoDTO getProposal(@PathVariable Long proposalId) { return proposalProfileService.showProposalProfile(proposalId); } + + /** + * Update an existing proposal + */ + @PutMapping("/{proposalId}") + public Proposal updateProposal(@PathVariable Integer proposalId, @RequestBody Proposal updatedProposal) { + return proposalService.updateProposal(proposalId, updatedProposal); + } + + /** + * Delete a proposal + */ + @DeleteMapping("/{proposalId}") + public void deleteProposal(@PathVariable Integer proposalId) { + proposalService.deleteProposal(proposalId); + } + + /** + * Publish a proposal + */ + @PostMapping("/{proposalId}/publish") + public Proposal publishProposal(@PathVariable Integer proposalId) { + return proposalService.publishProposal(proposalId); + } } diff --git a/Server/src/main/java/by/titanic/server/models/Member.java b/Server/src/main/java/by/tonArea/server/models/Member.java similarity index 91% rename from Server/src/main/java/by/titanic/server/models/Member.java rename to Server/src/main/java/by/tonArea/server/models/Member.java index e27365c..761c508 100644 --- a/Server/src/main/java/by/titanic/server/models/Member.java +++ b/Server/src/main/java/by/tonArea/server/models/Member.java @@ -1,4 +1,4 @@ -package by.titanic.server.models; +package by.tonArea.server.models; import jakarta.persistence.*; import lombok.*; diff --git a/Server/src/main/java/by/titanic/server/models/ModerationStatus.java b/Server/src/main/java/by/tonArea/server/models/ModerationStatus.java similarity index 63% rename from Server/src/main/java/by/titanic/server/models/ModerationStatus.java rename to Server/src/main/java/by/tonArea/server/models/ModerationStatus.java index 3b10208..aff854b 100644 --- a/Server/src/main/java/by/titanic/server/models/ModerationStatus.java +++ b/Server/src/main/java/by/tonArea/server/models/ModerationStatus.java @@ -1,4 +1,4 @@ -package by.titanic.server.models; +package by.tonArea.server.models; public enum ModerationStatus { AUTHOR, diff --git a/Server/src/main/java/by/titanic/server/models/Organization.java b/Server/src/main/java/by/tonArea/server/models/Organization.java similarity index 92% rename from Server/src/main/java/by/titanic/server/models/Organization.java rename to Server/src/main/java/by/tonArea/server/models/Organization.java index 63370b0..f5e8249 100644 --- a/Server/src/main/java/by/titanic/server/models/Organization.java +++ b/Server/src/main/java/by/tonArea/server/models/Organization.java @@ -1,4 +1,4 @@ -package by.titanic.server.models; +package by.tonArea.server.models; import jakarta.persistence.*; import lombok.*; diff --git a/Server/src/main/java/by/titanic/server/models/OrganizationLinks.java b/Server/src/main/java/by/tonArea/server/models/OrganizationLinks.java similarity index 90% rename from Server/src/main/java/by/titanic/server/models/OrganizationLinks.java rename to Server/src/main/java/by/tonArea/server/models/OrganizationLinks.java index 9e28ea5..27c312c 100644 --- a/Server/src/main/java/by/titanic/server/models/OrganizationLinks.java +++ b/Server/src/main/java/by/tonArea/server/models/OrganizationLinks.java @@ -1,6 +1,5 @@ -package by.titanic.server.models; +package by.tonArea.server.models; -import by.titanic.server.models.Organization; import jakarta.persistence.*; import lombok.*; diff --git a/Server/src/main/java/by/titanic/server/models/OrganizationModeration.java b/Server/src/main/java/by/tonArea/server/models/OrganizationModeration.java similarity index 90% rename from Server/src/main/java/by/titanic/server/models/OrganizationModeration.java rename to Server/src/main/java/by/tonArea/server/models/OrganizationModeration.java index fdf8e0a..fa24713 100644 --- a/Server/src/main/java/by/titanic/server/models/OrganizationModeration.java +++ b/Server/src/main/java/by/tonArea/server/models/OrganizationModeration.java @@ -1,4 +1,4 @@ -package by.titanic.server.models; +package by.tonArea.server.models; import jakarta.persistence.*; import lombok.*; diff --git a/Server/src/main/java/by/titanic/server/models/OrganizationModerationId.java b/Server/src/main/java/by/tonArea/server/models/OrganizationModerationId.java similarity index 91% rename from Server/src/main/java/by/titanic/server/models/OrganizationModerationId.java rename to Server/src/main/java/by/tonArea/server/models/OrganizationModerationId.java index dd9fb1f..8175419 100644 --- a/Server/src/main/java/by/titanic/server/models/OrganizationModerationId.java +++ b/Server/src/main/java/by/tonArea/server/models/OrganizationModerationId.java @@ -1,4 +1,4 @@ -package by.titanic.server.models; +package by.tonArea.server.models; import jakarta.persistence.*; import lombok.*; diff --git a/Server/src/main/java/by/titanic/server/models/OrganizationProposal.java b/Server/src/main/java/by/tonArea/server/models/OrganizationProposal.java similarity index 72% rename from Server/src/main/java/by/titanic/server/models/OrganizationProposal.java rename to Server/src/main/java/by/tonArea/server/models/OrganizationProposal.java index 09870a5..7c97e2d 100644 --- a/Server/src/main/java/by/titanic/server/models/OrganizationProposal.java +++ b/Server/src/main/java/by/tonArea/server/models/OrganizationProposal.java @@ -1,6 +1,5 @@ -package by.titanic.server.models; +package by.tonArea.server.models; -import by.titanic.server.models.OrganizationProposalId; import jakarta.persistence.*; import lombok.*; diff --git a/Server/src/main/java/by/titanic/server/models/OrganizationProposalId.java b/Server/src/main/java/by/tonArea/server/models/OrganizationProposalId.java similarity index 90% rename from Server/src/main/java/by/titanic/server/models/OrganizationProposalId.java rename to Server/src/main/java/by/tonArea/server/models/OrganizationProposalId.java index 30dffa6..dafe473 100644 --- a/Server/src/main/java/by/titanic/server/models/OrganizationProposalId.java +++ b/Server/src/main/java/by/tonArea/server/models/OrganizationProposalId.java @@ -1,4 +1,4 @@ -package by.titanic.server.models; +package by.tonArea.server.models; import jakarta.persistence.*; import lombok.*; diff --git a/Server/src/main/java/by/titanic/server/models/Proposal.java b/Server/src/main/java/by/tonArea/server/models/Proposal.java similarity index 72% rename from Server/src/main/java/by/titanic/server/models/Proposal.java rename to Server/src/main/java/by/tonArea/server/models/Proposal.java index 3f5b7e5..d605e4d 100644 --- a/Server/src/main/java/by/titanic/server/models/Proposal.java +++ b/Server/src/main/java/by/tonArea/server/models/Proposal.java @@ -1,4 +1,4 @@ -package by.titanic.server.models; +package by.tonArea.server.models; import jakarta.persistence.*; import lombok.*; @@ -14,7 +14,7 @@ public class Proposal { @GeneratedValue(strategy = GenerationType.IDENTITY) private Integer id; - @Column + @Column(insertable=false, updatable=false) private Integer organization_id; //Предлагаю добавить столбец organization_id в эту сущность, чтобы ссылаться на конкретную организацию, от которой поступает предложение @@ -43,6 +43,9 @@ public class Proposal { @Column(name = "topic", length = 128, nullable = false) private String topic; + @Column(name = "description", length = 1024, nullable = false) + private String description; + public HashMap getMapOfOptions(){ HashMap options = new HashMap<>(); options.put("first_option", this.firstOption); @@ -50,4 +53,17 @@ public HashMap getMapOfOptions(){ options.put("third_option", this.thirdOption); return options; } + + public void setMapOfOptions(HashMap options) { + if (options.containsKey("first_option")) { + this.firstOption = options.get("first_option"); + } + if (options.containsKey("second_option")) { + this.secondOption = options.get("second_option"); + } + if (options.containsKey("third_option")) { + this.thirdOption = options.get("third_option"); + } + } + } diff --git a/Server/src/main/java/by/titanic/server/models/ProposalInfo.java b/Server/src/main/java/by/tonArea/server/models/ProposalInfo.java similarity index 96% rename from Server/src/main/java/by/titanic/server/models/ProposalInfo.java rename to Server/src/main/java/by/tonArea/server/models/ProposalInfo.java index 04bce75..f9345a6 100644 --- a/Server/src/main/java/by/titanic/server/models/ProposalInfo.java +++ b/Server/src/main/java/by/tonArea/server/models/ProposalInfo.java @@ -1,4 +1,4 @@ -package by.titanic.server.models; +package by.tonArea.server.models; import jakarta.persistence.*; import lombok.*; diff --git a/Server/src/main/java/by/titanic/server/models/ProposalStatus.java b/Server/src/main/java/by/tonArea/server/models/ProposalStatus.java similarity index 66% rename from Server/src/main/java/by/titanic/server/models/ProposalStatus.java rename to Server/src/main/java/by/tonArea/server/models/ProposalStatus.java index b595277..779308a 100644 --- a/Server/src/main/java/by/titanic/server/models/ProposalStatus.java +++ b/Server/src/main/java/by/tonArea/server/models/ProposalStatus.java @@ -1,4 +1,4 @@ -package by.titanic.server.models; +package by.tonArea.server.models; public enum ProposalStatus { PENDING, diff --git a/Server/src/main/java/by/titanic/server/models/Wallet.java b/Server/src/main/java/by/tonArea/server/models/Wallet.java similarity index 91% rename from Server/src/main/java/by/titanic/server/models/Wallet.java rename to Server/src/main/java/by/tonArea/server/models/Wallet.java index 17af14c..4f2535d 100644 --- a/Server/src/main/java/by/titanic/server/models/Wallet.java +++ b/Server/src/main/java/by/tonArea/server/models/Wallet.java @@ -1,4 +1,4 @@ -package by.titanic.server.models; +package by.tonArea.server.models; import jakarta.persistence.*; import lombok.*; diff --git a/Server/src/main/java/by/titanic/server/repositories/MemberRepository.java b/Server/src/main/java/by/tonArea/server/repositories/MemberRepository.java similarity index 63% rename from Server/src/main/java/by/titanic/server/repositories/MemberRepository.java rename to Server/src/main/java/by/tonArea/server/repositories/MemberRepository.java index e17931e..6ccbbab 100644 --- a/Server/src/main/java/by/titanic/server/repositories/MemberRepository.java +++ b/Server/src/main/java/by/tonArea/server/repositories/MemberRepository.java @@ -1,6 +1,6 @@ -package by.titanic.server.repositories; +package by.tonArea.server.repositories; -import by.titanic.server.models.Member; +import by.tonArea.server.models.Member; import org.springframework.data.jpa.repository.JpaRepository; public interface MemberRepository extends JpaRepository { diff --git a/Server/src/main/java/by/titanic/server/repositories/OrganizationLinksRepository.java b/Server/src/main/java/by/tonArea/server/repositories/OrganizationLinksRepository.java similarity index 89% rename from Server/src/main/java/by/titanic/server/repositories/OrganizationLinksRepository.java rename to Server/src/main/java/by/tonArea/server/repositories/OrganizationLinksRepository.java index a7c91aa..57fae4e 100644 --- a/Server/src/main/java/by/titanic/server/repositories/OrganizationLinksRepository.java +++ b/Server/src/main/java/by/tonArea/server/repositories/OrganizationLinksRepository.java @@ -1,6 +1,6 @@ -package by.titanic.server.repositories; +package by.tonArea.server.repositories; -import by.titanic.server.models.OrganizationLinks; +import by.tonArea.server.models.OrganizationLinks; import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.data.jpa.repository.Query; import org.springframework.data.repository.query.Param; diff --git a/Server/src/main/java/by/titanic/server/repositories/OrganizationRepository.java b/Server/src/main/java/by/tonArea/server/repositories/OrganizationRepository.java similarity index 79% rename from Server/src/main/java/by/titanic/server/repositories/OrganizationRepository.java rename to Server/src/main/java/by/tonArea/server/repositories/OrganizationRepository.java index fc6bc8a..65548f5 100644 --- a/Server/src/main/java/by/titanic/server/repositories/OrganizationRepository.java +++ b/Server/src/main/java/by/tonArea/server/repositories/OrganizationRepository.java @@ -1,6 +1,6 @@ -package by.titanic.server.repositories; +package by.tonArea.server.repositories; -import by.titanic.server.models.Organization; +import by.tonArea.server.models.Organization; import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.data.jpa.repository.Query; diff --git a/Server/src/main/java/by/titanic/server/repositories/ProposalInfoRepository.java b/Server/src/main/java/by/tonArea/server/repositories/ProposalInfoRepository.java similarity index 84% rename from Server/src/main/java/by/titanic/server/repositories/ProposalInfoRepository.java rename to Server/src/main/java/by/tonArea/server/repositories/ProposalInfoRepository.java index 643659c..3a6d30f 100644 --- a/Server/src/main/java/by/titanic/server/repositories/ProposalInfoRepository.java +++ b/Server/src/main/java/by/tonArea/server/repositories/ProposalInfoRepository.java @@ -1,6 +1,6 @@ -package by.titanic.server.repositories; +package by.tonArea.server.repositories; -import by.titanic.server.models.ProposalInfo; +import by.tonArea.server.models.ProposalInfo; import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.data.jpa.repository.Query; import org.springframework.data.repository.query.Param; diff --git a/Server/src/main/java/by/titanic/server/repositories/ProposalRepository.java b/Server/src/main/java/by/tonArea/server/repositories/ProposalRepository.java similarity index 77% rename from Server/src/main/java/by/titanic/server/repositories/ProposalRepository.java rename to Server/src/main/java/by/tonArea/server/repositories/ProposalRepository.java index 9a397d8..512001d 100644 --- a/Server/src/main/java/by/titanic/server/repositories/ProposalRepository.java +++ b/Server/src/main/java/by/tonArea/server/repositories/ProposalRepository.java @@ -1,7 +1,6 @@ -package by.titanic.server.repositories; +package by.tonArea.server.repositories; -import by.titanic.server.models.OrganizationLinks; -import by.titanic.server.models.Proposal; +import by.tonArea.server.models.Proposal; import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.data.jpa.repository.Query; import org.springframework.data.repository.query.Param; diff --git a/Server/src/main/java/by/titanic/server/services/MemberService.java b/Server/src/main/java/by/tonArea/server/services/MemberService.java similarity index 70% rename from Server/src/main/java/by/titanic/server/services/MemberService.java rename to Server/src/main/java/by/tonArea/server/services/MemberService.java index 7b3bdd1..4cc00ce 100644 --- a/Server/src/main/java/by/titanic/server/services/MemberService.java +++ b/Server/src/main/java/by/tonArea/server/services/MemberService.java @@ -1,7 +1,7 @@ -package by.titanic.server.services; +package by.tonArea.server.services; -import by.titanic.server.models.Member; -import by.titanic.server.repositories.MemberRepository; +import by.tonArea.server.models.Member; +import by.tonArea.server.repositories.MemberRepository; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; diff --git a/Server/src/main/java/by/titanic/server/services/OrganizationProfileService.java b/Server/src/main/java/by/tonArea/server/services/OrganizationProfileService.java similarity index 77% rename from Server/src/main/java/by/titanic/server/services/OrganizationProfileService.java rename to Server/src/main/java/by/tonArea/server/services/OrganizationProfileService.java index 8c2b2a8..8cf2a59 100644 --- a/Server/src/main/java/by/titanic/server/services/OrganizationProfileService.java +++ b/Server/src/main/java/by/tonArea/server/services/OrganizationProfileService.java @@ -1,13 +1,13 @@ -package by.titanic.server.services; - -import by.titanic.server.DTO.OrganizationProfileDTO; -import by.titanic.server.DTO.ProposalDTO; -import by.titanic.server.models.Organization; -import by.titanic.server.models.OrganizationLinks; -import by.titanic.server.models.Proposal; -import by.titanic.server.repositories.OrganizationLinksRepository; -import by.titanic.server.repositories.OrganizationRepository; -import by.titanic.server.repositories.ProposalRepository; +package by.tonArea.server.services; + +import by.tonArea.server.DTO.OrganizationProfileDTO; +import by.tonArea.server.DTO.ProposalDTO; +import by.tonArea.server.models.Organization; +import by.tonArea.server.models.OrganizationLinks; +import by.tonArea.server.models.Proposal; +import by.tonArea.server.repositories.OrganizationLinksRepository; +import by.tonArea.server.repositories.OrganizationRepository; +import by.tonArea.server.repositories.ProposalRepository; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; diff --git a/Server/src/main/java/by/titanic/server/services/OrganizationService.java b/Server/src/main/java/by/tonArea/server/services/OrganizationService.java similarity index 81% rename from Server/src/main/java/by/titanic/server/services/OrganizationService.java rename to Server/src/main/java/by/tonArea/server/services/OrganizationService.java index c305591..46d3410 100644 --- a/Server/src/main/java/by/titanic/server/services/OrganizationService.java +++ b/Server/src/main/java/by/tonArea/server/services/OrganizationService.java @@ -1,7 +1,7 @@ -package by.titanic.server.services; +package by.tonArea.server.services; -import by.titanic.server.models.Organization; -import by.titanic.server.repositories.OrganizationRepository; +import by.tonArea.server.models.Organization; +import by.tonArea.server.repositories.OrganizationRepository; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; diff --git a/Server/src/main/java/by/titanic/server/services/ProposalProfileService.java b/Server/src/main/java/by/tonArea/server/services/ProposalProfileService.java similarity index 80% rename from Server/src/main/java/by/titanic/server/services/ProposalProfileService.java rename to Server/src/main/java/by/tonArea/server/services/ProposalProfileService.java index 74ff815..1d83e41 100644 --- a/Server/src/main/java/by/titanic/server/services/ProposalProfileService.java +++ b/Server/src/main/java/by/tonArea/server/services/ProposalProfileService.java @@ -1,8 +1,8 @@ -package by.titanic.server.services; +package by.tonArea.server.services; -import by.titanic.server.DTO.ProposalInfoDTO; -import by.titanic.server.models.ProposalInfo; -import by.titanic.server.repositories.ProposalInfoRepository; +import by.tonArea.server.DTO.ProposalInfoDTO; +import by.tonArea.server.models.ProposalInfo; +import by.tonArea.server.repositories.ProposalInfoRepository; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; diff --git a/Server/src/main/java/by/tonArea/server/services/ProposalService.java b/Server/src/main/java/by/tonArea/server/services/ProposalService.java new file mode 100644 index 0000000..87037ac --- /dev/null +++ b/Server/src/main/java/by/tonArea/server/services/ProposalService.java @@ -0,0 +1,52 @@ +package by.tonArea.server.services; + +import by.tonArea.server.models.Proposal; +import by.tonArea.server.repositories.ProposalRepository; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.List; + +@Service +public class ProposalService { + + @Autowired + private ProposalRepository proposalRepository; + + public List getAllProposals() { + return proposalRepository.findAll(); + } + + public Proposal createProposal(Proposal proposal) { + return proposalRepository.save(proposal); + } + + public Proposal getProposalById(Integer id) { + return proposalRepository.findById(id).orElse(null); + } + + public Proposal updateProposal(Integer id, Proposal updatedProposal) { + return proposalRepository.findById(id).map(proposal -> { + proposal.setTopic(updatedProposal.getTopic()); + proposal.setDescription(updatedProposal.getDescription()); + proposal.setStartDate(updatedProposal.getStartDate()); + proposal.setEndDate(updatedProposal.getEndDate()); + proposal.setStatus(updatedProposal.getStatus()); + proposal.setMapOfOptions(updatedProposal.getMapOfOptions()); + return proposalRepository.save(proposal); + }).orElseThrow(() -> new RuntimeException("Proposal not found")); + } + + public void deleteProposal(Integer id) { + proposalRepository.deleteById(id); + } + + public Proposal publishProposal(Integer id) { + return proposalRepository.findById(id).map(proposal -> { + proposal.setStatus("PUBLISHED"); + return proposalRepository.save(proposal); + }).orElseThrow(() -> new RuntimeException("Proposal not found")); + } + +} + diff --git a/Server/src/main/resources/application.properties b/Server/src/main/resources/application.properties index 29e8af1..025bcb0 100644 --- a/Server/src/main/resources/application.properties +++ b/Server/src/main/resources/application.properties @@ -1,5 +1,5 @@ # application.properties -spring.datasource.url=jdbc:postgresql://localhost:5432/postgres -spring.datasource.username=postgres -spring.datasource.password=root +spring.datasource.url=jdbc:postgresql://62.60.159.0:5432/titanic +spring.datasource.username=weebat +spring.datasource.password=Eqz7eWXcUNPFm0c spring.jpa.hibernate.ddl-auto=update diff --git a/Server/src/main/resources/templates/profile.html b/Server/src/main/resources/templates/profile.html index c9976c7..13fb967 100644 --- a/Server/src/main/resources/templates/profile.html +++ b/Server/src/main/resources/templates/profile.html @@ -1,3 +1,4 @@ + diff --git a/Server/src/test/java/by/titanic/server/ServerApplicationTests.java b/Server/src/test/java/by/tonArea/server/ServerApplicationTests.java similarity index 87% rename from Server/src/test/java/by/titanic/server/ServerApplicationTests.java rename to Server/src/test/java/by/tonArea/server/ServerApplicationTests.java index a972ef9..94ee7e1 100644 --- a/Server/src/test/java/by/titanic/server/ServerApplicationTests.java +++ b/Server/src/test/java/by/tonArea/server/ServerApplicationTests.java @@ -1,4 +1,4 @@ -package by.titanic.server; +package by.tonArea.server; import org.junit.jupiter.api.Test; import org.springframework.boot.test.context.SpringBootTest;