From d8a3e2b25873a375d0568cf55b951a02bf135d96 Mon Sep 17 00:00:00 2001 From: FuchsbauFox Date: Fri, 3 Jun 2022 18:37:28 +0300 Subject: [PATCH 1/3] feat: some realization and architecture --- kotiki-java/cats/core/pom.xml | 29 +++++++++++ .../ru/itmo/kotiki/config/RabbitConfig.java | 31 ++++++++++++ .../ru/itmo/kotiki/service/CatService.java | 0 .../itmo/kotiki/service/CatServiceImpl.java | 11 +++-- .../core/src/main/resources/application.yml | 0 kotiki-java/cats/data/pom.xml | 24 +++++++++ .../itmo/kotiki/repository/CatRepository.java | 4 +- kotiki-java/cats/pom.xml | 29 +++++++++++ kotiki-java/docker-compose.yml | 0 kotiki-java/{DAL => models}/pom.xml | 15 +++--- .../main/java/ru/itmo/kotiki/dto/CatDto.java | 0 .../java/ru/itmo/kotiki/dto/OwnerDto.java | 46 ++++++++++++++++++ .../main/java/ru/itmo/kotiki/dto/UserDto.java | 40 ++++++++------- .../kotiki/exception/ValidationException.java | 2 +- .../main/java/ru/itmo/kotiki/model/Cat.java | 0 .../main/java/ru/itmo/kotiki/model/Owner.java | 0 .../main/java/ru/itmo/kotiki/model/Role.java | 0 .../main/java/ru/itmo/kotiki/model/User.java | 0 .../ru/itmo/kotiki/model/accessory/Color.java | 0 kotiki-java/owners/core/pom.xml | 29 +++++++++++ .../ru/itmo/kotiki/config/RabbitConfig.java | 8 +++ .../ru/itmo/kotiki/service/OwnerService.java | 5 ++ .../itmo/kotiki/service/OwnerServiceImpl.java | 8 +++ .../core/src/main/resources/application.yml | 1 + kotiki-java/owners/data/pom.xml | 24 +++++++++ .../kotiki/repository/OwnerRepository.java | 0 kotiki-java/owners/pom.xml | 30 ++++++++++++ kotiki-java/pom.xml | 8 +-- kotiki-java/user-interface/core/pom.xml | 24 +++++++++ .../ru/itmo/kotiki/config/RabbitConfig.java | 8 +++ .../ru/itmo/kotiki/service/UserService.java} | 3 +- .../itmo/kotiki/service/UserServiceImpl.java} | 6 +-- .../core/src/main/resources/application.yml | 0 kotiki-java/user-interface/data/pom.xml | 24 +++++++++ .../kotiki/repository/RoleRepository.java | 0 .../kotiki/repository/UserRepository.java | 2 +- kotiki-java/{BLL => user-interface}/pom.xml | 32 ++++++------ .../{ => user-interface}/web/.gitignore | 0 .../web/.mvn/wrapper/maven-wrapper.jar | Bin .../web/.mvn/wrapper/maven-wrapper.properties | 0 kotiki-java/{ => user-interface}/web/mvnw | 0 kotiki-java/{ => user-interface}/web/mvnw.cmd | 0 kotiki-java/{ => user-interface}/web/pom.xml | 10 ++-- .../java/ru/itmo/kotiki/WebApplication.java | 0 .../itmo/kotiki/config/WebSecurityConfig.java | 0 .../kotiki/controller/AdminController.java | 19 ++++---- .../itmo/kotiki/controller/CatController.java | 2 - .../kotiki/controller/OwnerController.java | 5 ++ .../itmo/kotiki/security/JwtUserDetails.java | 0 .../src/main/resources/application.properties | 8 --- .../ru/itmo/kotiki/WebApplicationTests.java | 13 ----- 51 files changed, 398 insertions(+), 102 deletions(-) create mode 100644 kotiki-java/cats/core/pom.xml create mode 100644 kotiki-java/cats/core/src/main/java/ru/itmo/kotiki/config/RabbitConfig.java rename kotiki-java/{BLL => cats/core}/src/main/java/ru/itmo/kotiki/service/CatService.java (100%) rename kotiki-java/{BLL => cats/core}/src/main/java/ru/itmo/kotiki/service/CatServiceImpl.java (86%) create mode 100644 kotiki-java/cats/core/src/main/resources/application.yml create mode 100644 kotiki-java/cats/data/pom.xml rename kotiki-java/{DAL => cats/data}/src/main/java/ru/itmo/kotiki/repository/CatRepository.java (99%) create mode 100644 kotiki-java/cats/pom.xml create mode 100644 kotiki-java/docker-compose.yml rename kotiki-java/{DAL => models}/pom.xml (79%) rename kotiki-java/{BLL => models}/src/main/java/ru/itmo/kotiki/dto/CatDto.java (100%) create mode 100644 kotiki-java/models/src/main/java/ru/itmo/kotiki/dto/OwnerDto.java rename kotiki-java/{BLL => models}/src/main/java/ru/itmo/kotiki/dto/UserDto.java (54%) rename kotiki-java/{BLL => models}/src/main/java/ru/itmo/kotiki/exception/ValidationException.java (99%) rename kotiki-java/{DAL => models}/src/main/java/ru/itmo/kotiki/model/Cat.java (100%) rename kotiki-java/{DAL => models}/src/main/java/ru/itmo/kotiki/model/Owner.java (100%) rename kotiki-java/{DAL => models}/src/main/java/ru/itmo/kotiki/model/Role.java (100%) rename kotiki-java/{DAL => models}/src/main/java/ru/itmo/kotiki/model/User.java (100%) rename kotiki-java/{DAL => models}/src/main/java/ru/itmo/kotiki/model/accessory/Color.java (100%) create mode 100644 kotiki-java/owners/core/pom.xml create mode 100644 kotiki-java/owners/core/src/main/java/ru/itmo/kotiki/config/RabbitConfig.java create mode 100644 kotiki-java/owners/core/src/main/java/ru/itmo/kotiki/service/OwnerService.java create mode 100644 kotiki-java/owners/core/src/main/java/ru/itmo/kotiki/service/OwnerServiceImpl.java create mode 100644 kotiki-java/owners/core/src/main/resources/application.yml create mode 100644 kotiki-java/owners/data/pom.xml rename kotiki-java/{DAL => owners/data}/src/main/java/ru/itmo/kotiki/repository/OwnerRepository.java (100%) create mode 100644 kotiki-java/owners/pom.xml create mode 100644 kotiki-java/user-interface/core/pom.xml create mode 100644 kotiki-java/user-interface/core/src/main/java/ru/itmo/kotiki/config/RabbitConfig.java rename kotiki-java/{BLL/src/main/java/ru/itmo/kotiki/service/AdminService.java => user-interface/core/src/main/java/ru/itmo/kotiki/service/UserService.java} (91%) rename kotiki-java/{BLL/src/main/java/ru/itmo/kotiki/service/AdminServiceImpl.java => user-interface/core/src/main/java/ru/itmo/kotiki/service/UserServiceImpl.java} (88%) create mode 100644 kotiki-java/user-interface/core/src/main/resources/application.yml create mode 100644 kotiki-java/user-interface/data/pom.xml rename kotiki-java/{DAL => user-interface/data}/src/main/java/ru/itmo/kotiki/repository/RoleRepository.java (100%) rename kotiki-java/{DAL => user-interface/data}/src/main/java/ru/itmo/kotiki/repository/UserRepository.java (99%) rename kotiki-java/{BLL => user-interface}/pom.xml (52%) rename kotiki-java/{ => user-interface}/web/.gitignore (100%) rename kotiki-java/{ => user-interface}/web/.mvn/wrapper/maven-wrapper.jar (100%) rename kotiki-java/{ => user-interface}/web/.mvn/wrapper/maven-wrapper.properties (100%) rename kotiki-java/{ => user-interface}/web/mvnw (100%) rename kotiki-java/{ => user-interface}/web/mvnw.cmd (100%) rename kotiki-java/{ => user-interface}/web/pom.xml (90%) rename kotiki-java/{ => user-interface}/web/src/main/java/ru/itmo/kotiki/WebApplication.java (100%) rename kotiki-java/{ => user-interface}/web/src/main/java/ru/itmo/kotiki/config/WebSecurityConfig.java (100%) rename kotiki-java/{ => user-interface}/web/src/main/java/ru/itmo/kotiki/controller/AdminController.java (76%) rename kotiki-java/{ => user-interface}/web/src/main/java/ru/itmo/kotiki/controller/CatController.java (96%) create mode 100644 kotiki-java/user-interface/web/src/main/java/ru/itmo/kotiki/controller/OwnerController.java rename kotiki-java/{ => user-interface}/web/src/main/java/ru/itmo/kotiki/security/JwtUserDetails.java (100%) delete mode 100644 kotiki-java/web/src/main/resources/application.properties delete mode 100644 kotiki-java/web/src/test/java/ru/itmo/kotiki/WebApplicationTests.java diff --git a/kotiki-java/cats/core/pom.xml b/kotiki-java/cats/core/pom.xml new file mode 100644 index 0000000..152204a --- /dev/null +++ b/kotiki-java/cats/core/pom.xml @@ -0,0 +1,29 @@ + + + + cats + ru.itmo.kotiki.cats + 1.0-SNAPSHOT + + + 4.0.0 + ru.itmo.kotiki.cats.core + cats-core + pom + + + + ru.itmo.kotiki.cats.data + cats-data + 1.0-SNAPSHOT + + + org.springframework.amqp + spring-rabbit + 2.4.4 + + + + \ No newline at end of file diff --git a/kotiki-java/cats/core/src/main/java/ru/itmo/kotiki/config/RabbitConfig.java b/kotiki-java/cats/core/src/main/java/ru/itmo/kotiki/config/RabbitConfig.java new file mode 100644 index 0000000..3a1424e --- /dev/null +++ b/kotiki-java/cats/core/src/main/java/ru/itmo/kotiki/config/RabbitConfig.java @@ -0,0 +1,31 @@ +package ru.itmo.kotiki.config; + +import org.springframework.amqp.core.Queue; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; + +@Configuration +public class RabbitConfig { + + + + @Bean + public Queue saveCat() { + return new Queue("saveCatQueue"); + } + + @Bean + public Queue deleteCatById() { + return new Queue("deleteCatByIdQueue"); + } + + @Bean + public Queue findCatById() { + return new Queue("findCatByIdQueue"); + } + + @Bean + public Queue findAllCatsByOwner() { + return new Queue("findAllCatsByOwnerQueue"); + } +} diff --git a/kotiki-java/BLL/src/main/java/ru/itmo/kotiki/service/CatService.java b/kotiki-java/cats/core/src/main/java/ru/itmo/kotiki/service/CatService.java similarity index 100% rename from kotiki-java/BLL/src/main/java/ru/itmo/kotiki/service/CatService.java rename to kotiki-java/cats/core/src/main/java/ru/itmo/kotiki/service/CatService.java diff --git a/kotiki-java/BLL/src/main/java/ru/itmo/kotiki/service/CatServiceImpl.java b/kotiki-java/cats/core/src/main/java/ru/itmo/kotiki/service/CatServiceImpl.java similarity index 86% rename from kotiki-java/BLL/src/main/java/ru/itmo/kotiki/service/CatServiceImpl.java rename to kotiki-java/cats/core/src/main/java/ru/itmo/kotiki/service/CatServiceImpl.java index f944293..ef92d12 100644 --- a/kotiki-java/BLL/src/main/java/ru/itmo/kotiki/service/CatServiceImpl.java +++ b/kotiki-java/cats/core/src/main/java/ru/itmo/kotiki/service/CatServiceImpl.java @@ -4,6 +4,8 @@ import java.util.ArrayList; import java.util.List; +import org.springframework.amqp.rabbit.annotation.EnableRabbit; +import org.springframework.amqp.rabbit.annotation.RabbitListener; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import ru.itmo.kotiki.dto.CatDto; @@ -11,18 +13,16 @@ import ru.itmo.kotiki.model.accessory.Color; import ru.itmo.kotiki.exception.ValidationException; import ru.itmo.kotiki.repository.CatRepository; -import ru.itmo.kotiki.repository.UserRepository; +@EnableRabbit @Service public class CatServiceImpl implements CatService { @Autowired private CatRepository catRepository; - @Autowired - private UserRepository userRepository; - @Override + @RabbitListener(queues = "saveCatQueue") public CatDto save(String username, CatDto catDto) throws ValidationException { validateCatDto(catDto); Cat cat = catDto.toCat(); @@ -31,6 +31,7 @@ public CatDto save(String username, CatDto catDto) throws ValidationException { } @Override + @RabbitListener(queues = "deleteCatByIdQueue") public void deleteById(String username, int id) { if (userRepository.findByUsername(username).getOwner().getId() != catRepository.getById(id).getOwner().getId()){ throw new ValidationException("Cat " + id + " not found"); @@ -39,6 +40,7 @@ public void deleteById(String username, int id) { } @Override + @RabbitListener(queues = "findCatByIdQueue") public CatDto findById(String username, int id) { Cat cat = catRepository.getById(id); if (userRepository.findByUsername(username).getOwner().getId() != cat.getOwner().getId()){ @@ -48,6 +50,7 @@ public CatDto findById(String username, int id) { } @Override + @RabbitListener(queues = "findAllCatsByOwnerQueue") public List findAllByOwner(String username) { List catsDto = new ArrayList<>(); for(Cat cat : catRepository.findAllByOwnerId(userRepository.findByUsername(username).getOwner().getId())) { diff --git a/kotiki-java/cats/core/src/main/resources/application.yml b/kotiki-java/cats/core/src/main/resources/application.yml new file mode 100644 index 0000000..e69de29 diff --git a/kotiki-java/cats/data/pom.xml b/kotiki-java/cats/data/pom.xml new file mode 100644 index 0000000..e24cce8 --- /dev/null +++ b/kotiki-java/cats/data/pom.xml @@ -0,0 +1,24 @@ + + + + cats + ru.itmo.kotiki.cats + 1.0-SNAPSHOT + + + 4.0.0 + ru.itmo.kotiki.cats.data + cats-data + pom + + + + org.springframework.boot + spring-boot-starter-data-jpa + 2.6.7 + + + + \ No newline at end of file diff --git a/kotiki-java/DAL/src/main/java/ru/itmo/kotiki/repository/CatRepository.java b/kotiki-java/cats/data/src/main/java/ru/itmo/kotiki/repository/CatRepository.java similarity index 99% rename from kotiki-java/DAL/src/main/java/ru/itmo/kotiki/repository/CatRepository.java rename to kotiki-java/cats/data/src/main/java/ru/itmo/kotiki/repository/CatRepository.java index 624a8ad..cf8bc05 100644 --- a/kotiki-java/DAL/src/main/java/ru/itmo/kotiki/repository/CatRepository.java +++ b/kotiki-java/cats/data/src/main/java/ru/itmo/kotiki/repository/CatRepository.java @@ -4,8 +4,8 @@ import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.stereotype.Repository; import ru.itmo.kotiki.model.Cat; + @Repository public interface CatRepository extends JpaRepository { - List findAllByOwnerId(int ownerId); -} +} \ No newline at end of file diff --git a/kotiki-java/cats/pom.xml b/kotiki-java/cats/pom.xml new file mode 100644 index 0000000..1f27f93 --- /dev/null +++ b/kotiki-java/cats/pom.xml @@ -0,0 +1,29 @@ + + + + kotiki-java + ru.itmo.kotiki + 1.0-SNAPSHOT + + + 4.0.0 + ru.itmo.kotiki.cats + cats + pom + + + core + data + + + + + ru.itmo.kotiki.models + models + 1.0-SNAPSHOT + + + + \ No newline at end of file diff --git a/kotiki-java/docker-compose.yml b/kotiki-java/docker-compose.yml new file mode 100644 index 0000000..e69de29 diff --git a/kotiki-java/DAL/pom.xml b/kotiki-java/models/pom.xml similarity index 79% rename from kotiki-java/DAL/pom.xml rename to kotiki-java/models/pom.xml index 4d0b3af..0259fa1 100644 --- a/kotiki-java/DAL/pom.xml +++ b/kotiki-java/models/pom.xml @@ -2,26 +2,22 @@ - 4.0.0 kotiki-java ru.itmo.kotiki 1.0-SNAPSHOT - ru.itmo.kotiki.dal - dal - 1.0-SNAPSHOT - - - 42.3.4 - + 4.0.0 + ru.itmo.kotiki.models + models + pom org.postgresql postgresql - ${postgresql.version} + 42.3.4 org.springframework.boot @@ -34,4 +30,5 @@ 5.6.8.Final + \ No newline at end of file diff --git a/kotiki-java/BLL/src/main/java/ru/itmo/kotiki/dto/CatDto.java b/kotiki-java/models/src/main/java/ru/itmo/kotiki/dto/CatDto.java similarity index 100% rename from kotiki-java/BLL/src/main/java/ru/itmo/kotiki/dto/CatDto.java rename to kotiki-java/models/src/main/java/ru/itmo/kotiki/dto/CatDto.java diff --git a/kotiki-java/models/src/main/java/ru/itmo/kotiki/dto/OwnerDto.java b/kotiki-java/models/src/main/java/ru/itmo/kotiki/dto/OwnerDto.java new file mode 100644 index 0000000..992bddc --- /dev/null +++ b/kotiki-java/models/src/main/java/ru/itmo/kotiki/dto/OwnerDto.java @@ -0,0 +1,46 @@ +package ru.itmo.kotiki.dto; + +import java.util.ArrayList; +import java.util.Date; +import java.util.List; +import ru.itmo.kotiki.model.Cat; +import ru.itmo.kotiki.model.Owner; + +public final class OwnerDto { + private final int id; + private final String name; + private final Date dateOfBirth; + private final List cats; + private final int userId; + + public OwnerDto(Owner owner) { + this.id = owner.getId(); + this.name = owner.getName(); + this.dateOfBirth = owner.getDateOfBirth(); + this.cats = new ArrayList<>(); + for(Cat cat : owner.getCats()) { + this.cats.add(new CatDto(cat)); + } + this.userId = owner.getUser().getId(); + } + + public int getId() { + return id; + } + + public String getName() { + return name; + } + + public Date getDateOfBirth() { + return dateOfBirth; + } + + public List getCats() { + return cats; + } + + public int getUserId() { + return userId; + } +} diff --git a/kotiki-java/BLL/src/main/java/ru/itmo/kotiki/dto/UserDto.java b/kotiki-java/models/src/main/java/ru/itmo/kotiki/dto/UserDto.java similarity index 54% rename from kotiki-java/BLL/src/main/java/ru/itmo/kotiki/dto/UserDto.java rename to kotiki-java/models/src/main/java/ru/itmo/kotiki/dto/UserDto.java index 07e148d..900cb63 100644 --- a/kotiki-java/BLL/src/main/java/ru/itmo/kotiki/dto/UserDto.java +++ b/kotiki-java/models/src/main/java/ru/itmo/kotiki/dto/UserDto.java @@ -1,31 +1,33 @@ package ru.itmo.kotiki.dto; import java.util.ArrayList; -import java.util.Date; import java.util.List; -import ru.itmo.kotiki.model.Owner; import ru.itmo.kotiki.model.Role; import ru.itmo.kotiki.model.User; public final class UserDto { + + private final int id; private final String username; private final String password; + private final int ownerId; private final boolean enabled; private final List roles; - private final String name; - private final Date dateOfBirth; - - public UserDto(User user, Owner owner) { - username = user.getUsername(); - password = user.getPassword(); - enabled = user.isEnabled(); - roles = new ArrayList<>(); + public UserDto(User user) { + this.id = user.getId(); + this.username = user.getUsername(); + this.password = user.getPassword(); + this.ownerId = user.getOwner().getId(); + this.enabled = user.isEnabled(); + this.roles = new ArrayList<>(); for(Role role : user.getRoles()) { - roles.add(role.getRole()); + this.roles.add(role.getRole()); } - name = owner.getName(); - dateOfBirth = owner.getDateOfBirth(); + } + + public int getId() { + return id; } public String getUsername() { @@ -36,6 +38,10 @@ public String getPassword() { return password; } + public int getOwnerId() { + return ownerId; + } + public boolean isEnabled() { return enabled; } @@ -43,12 +49,4 @@ public boolean isEnabled() { public List getRoles() { return roles; } - - public String getName() { - return name; - } - - public Date getDateOfBirth() { - return dateOfBirth; - } } diff --git a/kotiki-java/BLL/src/main/java/ru/itmo/kotiki/exception/ValidationException.java b/kotiki-java/models/src/main/java/ru/itmo/kotiki/exception/ValidationException.java similarity index 99% rename from kotiki-java/BLL/src/main/java/ru/itmo/kotiki/exception/ValidationException.java rename to kotiki-java/models/src/main/java/ru/itmo/kotiki/exception/ValidationException.java index 1f710ce..9c6e1f3 100644 --- a/kotiki-java/BLL/src/main/java/ru/itmo/kotiki/exception/ValidationException.java +++ b/kotiki-java/models/src/main/java/ru/itmo/kotiki/exception/ValidationException.java @@ -10,4 +10,4 @@ public ValidationException(String message) { public String getMessage() { return message; } -} \ No newline at end of file +} diff --git a/kotiki-java/DAL/src/main/java/ru/itmo/kotiki/model/Cat.java b/kotiki-java/models/src/main/java/ru/itmo/kotiki/model/Cat.java similarity index 100% rename from kotiki-java/DAL/src/main/java/ru/itmo/kotiki/model/Cat.java rename to kotiki-java/models/src/main/java/ru/itmo/kotiki/model/Cat.java diff --git a/kotiki-java/DAL/src/main/java/ru/itmo/kotiki/model/Owner.java b/kotiki-java/models/src/main/java/ru/itmo/kotiki/model/Owner.java similarity index 100% rename from kotiki-java/DAL/src/main/java/ru/itmo/kotiki/model/Owner.java rename to kotiki-java/models/src/main/java/ru/itmo/kotiki/model/Owner.java diff --git a/kotiki-java/DAL/src/main/java/ru/itmo/kotiki/model/Role.java b/kotiki-java/models/src/main/java/ru/itmo/kotiki/model/Role.java similarity index 100% rename from kotiki-java/DAL/src/main/java/ru/itmo/kotiki/model/Role.java rename to kotiki-java/models/src/main/java/ru/itmo/kotiki/model/Role.java diff --git a/kotiki-java/DAL/src/main/java/ru/itmo/kotiki/model/User.java b/kotiki-java/models/src/main/java/ru/itmo/kotiki/model/User.java similarity index 100% rename from kotiki-java/DAL/src/main/java/ru/itmo/kotiki/model/User.java rename to kotiki-java/models/src/main/java/ru/itmo/kotiki/model/User.java diff --git a/kotiki-java/DAL/src/main/java/ru/itmo/kotiki/model/accessory/Color.java b/kotiki-java/models/src/main/java/ru/itmo/kotiki/model/accessory/Color.java similarity index 100% rename from kotiki-java/DAL/src/main/java/ru/itmo/kotiki/model/accessory/Color.java rename to kotiki-java/models/src/main/java/ru/itmo/kotiki/model/accessory/Color.java diff --git a/kotiki-java/owners/core/pom.xml b/kotiki-java/owners/core/pom.xml new file mode 100644 index 0000000..da6ca81 --- /dev/null +++ b/kotiki-java/owners/core/pom.xml @@ -0,0 +1,29 @@ + + + + owners + ru.itmo.kotiki.owners + 1.0-SNAPSHOT + + + 4.0.0 + ru.itmo.kotiki.owners.core + owners-core + pom + + + + ru.itmo.kotiki.owners.data + owners-data + 1.0-SNAPSHOT + + + org.springframework.amqp + spring-rabbit + 2.4.4 + + + + \ No newline at end of file diff --git a/kotiki-java/owners/core/src/main/java/ru/itmo/kotiki/config/RabbitConfig.java b/kotiki-java/owners/core/src/main/java/ru/itmo/kotiki/config/RabbitConfig.java new file mode 100644 index 0000000..b648578 --- /dev/null +++ b/kotiki-java/owners/core/src/main/java/ru/itmo/kotiki/config/RabbitConfig.java @@ -0,0 +1,8 @@ +package ru.itmo.kotiki.config; + +import org.springframework.context.annotation.Configuration; + +@Configuration +public class RabbitConfig { + +} diff --git a/kotiki-java/owners/core/src/main/java/ru/itmo/kotiki/service/OwnerService.java b/kotiki-java/owners/core/src/main/java/ru/itmo/kotiki/service/OwnerService.java new file mode 100644 index 0000000..c044c0d --- /dev/null +++ b/kotiki-java/owners/core/src/main/java/ru/itmo/kotiki/service/OwnerService.java @@ -0,0 +1,5 @@ +package ru.itmo.kotiki.service; + +public interface OwnerService { + +} diff --git a/kotiki-java/owners/core/src/main/java/ru/itmo/kotiki/service/OwnerServiceImpl.java b/kotiki-java/owners/core/src/main/java/ru/itmo/kotiki/service/OwnerServiceImpl.java new file mode 100644 index 0000000..93c08fc --- /dev/null +++ b/kotiki-java/owners/core/src/main/java/ru/itmo/kotiki/service/OwnerServiceImpl.java @@ -0,0 +1,8 @@ +package ru.itmo.kotiki.service; + +import org.springframework.stereotype.Service; + +@Service +public class OwnerServiceImpl implements OwnerService { + +} diff --git a/kotiki-java/owners/core/src/main/resources/application.yml b/kotiki-java/owners/core/src/main/resources/application.yml new file mode 100644 index 0000000..3267642 --- /dev/null +++ b/kotiki-java/owners/core/src/main/resources/application.yml @@ -0,0 +1 @@ +resourcesresources \ No newline at end of file diff --git a/kotiki-java/owners/data/pom.xml b/kotiki-java/owners/data/pom.xml new file mode 100644 index 0000000..e63b331 --- /dev/null +++ b/kotiki-java/owners/data/pom.xml @@ -0,0 +1,24 @@ + + + + owners + ru.itmo.kotiki.owners + 1.0-SNAPSHOT + + + 4.0.0 + ru.itmo.kotiki.owners.data + owners-data + pom + + + + org.springframework.boot + spring-boot-starter-data-jpa + 2.6.7 + + + + \ No newline at end of file diff --git a/kotiki-java/DAL/src/main/java/ru/itmo/kotiki/repository/OwnerRepository.java b/kotiki-java/owners/data/src/main/java/ru/itmo/kotiki/repository/OwnerRepository.java similarity index 100% rename from kotiki-java/DAL/src/main/java/ru/itmo/kotiki/repository/OwnerRepository.java rename to kotiki-java/owners/data/src/main/java/ru/itmo/kotiki/repository/OwnerRepository.java diff --git a/kotiki-java/owners/pom.xml b/kotiki-java/owners/pom.xml new file mode 100644 index 0000000..61bdb63 --- /dev/null +++ b/kotiki-java/owners/pom.xml @@ -0,0 +1,30 @@ + + + + kotiki-java + ru.itmo.kotiki + 1.0-SNAPSHOT + + + 4.0.0 + ru.itmo.kotiki.owners + owners + pom + + + + core + data + + + + + ru.itmo.kotiki.models + models + 1.0-SNAPSHOT + + + + \ No newline at end of file diff --git a/kotiki-java/pom.xml b/kotiki-java/pom.xml index 5c81432..1abe560 100644 --- a/kotiki-java/pom.xml +++ b/kotiki-java/pom.xml @@ -10,13 +10,15 @@ 1.0-SNAPSHOT - bll - dal - web + models + cats + owners + user-interface 17 17 + \ No newline at end of file diff --git a/kotiki-java/user-interface/core/pom.xml b/kotiki-java/user-interface/core/pom.xml new file mode 100644 index 0000000..a05aa88 --- /dev/null +++ b/kotiki-java/user-interface/core/pom.xml @@ -0,0 +1,24 @@ + + + + user-interface + ru.itmo.kotiki.ui + 1.0-SNAPSHOT + + + 4.0.0 + ru.itmo.kotiki.ui.core + ui-core + pom + + + + ru.itmo.kotiki.ui.data + ui-data + 1.0-SNAPSHOT + + + + \ No newline at end of file diff --git a/kotiki-java/user-interface/core/src/main/java/ru/itmo/kotiki/config/RabbitConfig.java b/kotiki-java/user-interface/core/src/main/java/ru/itmo/kotiki/config/RabbitConfig.java new file mode 100644 index 0000000..b648578 --- /dev/null +++ b/kotiki-java/user-interface/core/src/main/java/ru/itmo/kotiki/config/RabbitConfig.java @@ -0,0 +1,8 @@ +package ru.itmo.kotiki.config; + +import org.springframework.context.annotation.Configuration; + +@Configuration +public class RabbitConfig { + +} diff --git a/kotiki-java/BLL/src/main/java/ru/itmo/kotiki/service/AdminService.java b/kotiki-java/user-interface/core/src/main/java/ru/itmo/kotiki/service/UserService.java similarity index 91% rename from kotiki-java/BLL/src/main/java/ru/itmo/kotiki/service/AdminService.java rename to kotiki-java/user-interface/core/src/main/java/ru/itmo/kotiki/service/UserService.java index 18c69c7..1f8c380 100644 --- a/kotiki-java/BLL/src/main/java/ru/itmo/kotiki/service/AdminService.java +++ b/kotiki-java/user-interface/core/src/main/java/ru/itmo/kotiki/service/UserService.java @@ -3,7 +3,7 @@ import java.util.List; import ru.itmo.kotiki.dto.UserDto; -public interface AdminService { +public interface UserService { void registrationUser(UserDto userDto); UserDto findByUserId(int id); @@ -17,5 +17,4 @@ public interface AdminService { void deleteByOwnerId (int id); List getUsers(); - } diff --git a/kotiki-java/BLL/src/main/java/ru/itmo/kotiki/service/AdminServiceImpl.java b/kotiki-java/user-interface/core/src/main/java/ru/itmo/kotiki/service/UserServiceImpl.java similarity index 88% rename from kotiki-java/BLL/src/main/java/ru/itmo/kotiki/service/AdminServiceImpl.java rename to kotiki-java/user-interface/core/src/main/java/ru/itmo/kotiki/service/UserServiceImpl.java index 57e56a8..49c5d56 100644 --- a/kotiki-java/BLL/src/main/java/ru/itmo/kotiki/service/AdminServiceImpl.java +++ b/kotiki-java/user-interface/core/src/main/java/ru/itmo/kotiki/service/UserServiceImpl.java @@ -8,13 +8,9 @@ import ru.itmo.kotiki.model.Owner; import ru.itmo.kotiki.model.Role; import ru.itmo.kotiki.model.User; -import ru.itmo.kotiki.repository.OwnerRepository; -import ru.itmo.kotiki.repository.RoleRepository; -import ru.itmo.kotiki.repository.UserRepository; -import ru.itmo.kotiki.service.AdminService; @Service -public class AdminServiceImpl implements AdminService { +public class UserServiceImpl implements UserService{ @Autowired private OwnerRepository ownerRepository; diff --git a/kotiki-java/user-interface/core/src/main/resources/application.yml b/kotiki-java/user-interface/core/src/main/resources/application.yml new file mode 100644 index 0000000..e69de29 diff --git a/kotiki-java/user-interface/data/pom.xml b/kotiki-java/user-interface/data/pom.xml new file mode 100644 index 0000000..633bf8b --- /dev/null +++ b/kotiki-java/user-interface/data/pom.xml @@ -0,0 +1,24 @@ + + + + user-interface + ru.itmo.kotiki.ui + 1.0-SNAPSHOT + + + 4.0.0 + ru.itmo.kotiki.ui.data + ui-data + pom + + + + org.springframework.boot + spring-boot-starter-data-jpa + 2.6.7 + + + + \ No newline at end of file diff --git a/kotiki-java/DAL/src/main/java/ru/itmo/kotiki/repository/RoleRepository.java b/kotiki-java/user-interface/data/src/main/java/ru/itmo/kotiki/repository/RoleRepository.java similarity index 100% rename from kotiki-java/DAL/src/main/java/ru/itmo/kotiki/repository/RoleRepository.java rename to kotiki-java/user-interface/data/src/main/java/ru/itmo/kotiki/repository/RoleRepository.java diff --git a/kotiki-java/DAL/src/main/java/ru/itmo/kotiki/repository/UserRepository.java b/kotiki-java/user-interface/data/src/main/java/ru/itmo/kotiki/repository/UserRepository.java similarity index 99% rename from kotiki-java/DAL/src/main/java/ru/itmo/kotiki/repository/UserRepository.java rename to kotiki-java/user-interface/data/src/main/java/ru/itmo/kotiki/repository/UserRepository.java index 632e0f0..f041de8 100644 --- a/kotiki-java/DAL/src/main/java/ru/itmo/kotiki/repository/UserRepository.java +++ b/kotiki-java/user-interface/data/src/main/java/ru/itmo/kotiki/repository/UserRepository.java @@ -8,4 +8,4 @@ public interface UserRepository extends JpaRepository { User findByUsername(String username); -} +} \ No newline at end of file diff --git a/kotiki-java/BLL/pom.xml b/kotiki-java/user-interface/pom.xml similarity index 52% rename from kotiki-java/BLL/pom.xml rename to kotiki-java/user-interface/pom.xml index afc497d..7a25910 100644 --- a/kotiki-java/BLL/pom.xml +++ b/kotiki-java/user-interface/pom.xml @@ -2,35 +2,35 @@ - 4.0.0 kotiki-java ru.itmo.kotiki 1.0-SNAPSHOT - ru.itmo.kotiki.bll - bll - 1.0-SNAPSHOT + 4.0.0 + ru.itmo.kotiki.ui + user-interface + pom - - + + web + core + data + - ru.itmo.kotiki.dal - dal + ru.itmo.kotiki.models + models 1.0-SNAPSHOT + - org.springframework.boot - spring-boot-starter-data-jpa - 2.6.7 - - - org.springframework.boot - spring-boot-starter-security - 2.6.7 + org.springframework.amqp + spring-rabbit + 2.4.4 + \ No newline at end of file diff --git a/kotiki-java/web/.gitignore b/kotiki-java/user-interface/web/.gitignore similarity index 100% rename from kotiki-java/web/.gitignore rename to kotiki-java/user-interface/web/.gitignore diff --git a/kotiki-java/web/.mvn/wrapper/maven-wrapper.jar b/kotiki-java/user-interface/web/.mvn/wrapper/maven-wrapper.jar similarity index 100% rename from kotiki-java/web/.mvn/wrapper/maven-wrapper.jar rename to kotiki-java/user-interface/web/.mvn/wrapper/maven-wrapper.jar diff --git a/kotiki-java/web/.mvn/wrapper/maven-wrapper.properties b/kotiki-java/user-interface/web/.mvn/wrapper/maven-wrapper.properties similarity index 100% rename from kotiki-java/web/.mvn/wrapper/maven-wrapper.properties rename to kotiki-java/user-interface/web/.mvn/wrapper/maven-wrapper.properties diff --git a/kotiki-java/web/mvnw b/kotiki-java/user-interface/web/mvnw similarity index 100% rename from kotiki-java/web/mvnw rename to kotiki-java/user-interface/web/mvnw diff --git a/kotiki-java/web/mvnw.cmd b/kotiki-java/user-interface/web/mvnw.cmd similarity index 100% rename from kotiki-java/web/mvnw.cmd rename to kotiki-java/user-interface/web/mvnw.cmd diff --git a/kotiki-java/web/pom.xml b/kotiki-java/user-interface/web/pom.xml similarity index 90% rename from kotiki-java/web/pom.xml rename to kotiki-java/user-interface/web/pom.xml index 92e2721..78a9470 100644 --- a/kotiki-java/web/pom.xml +++ b/kotiki-java/user-interface/web/pom.xml @@ -9,7 +9,7 @@ - ru.itmo.kotiki.web + ru.itmo.kotiki.ui.web web 0.0.1-SNAPSHOT @@ -19,13 +19,13 @@ - ru.itmo.kotiki.bll - bll + ru.itmo.kotiki.ui.core + ui-core 1.0-SNAPSHOT - ru.itmo.kotiki.dal - dal + ru.itmo.kotiki.ui.data + ui-data 1.0-SNAPSHOT diff --git a/kotiki-java/web/src/main/java/ru/itmo/kotiki/WebApplication.java b/kotiki-java/user-interface/web/src/main/java/ru/itmo/kotiki/WebApplication.java similarity index 100% rename from kotiki-java/web/src/main/java/ru/itmo/kotiki/WebApplication.java rename to kotiki-java/user-interface/web/src/main/java/ru/itmo/kotiki/WebApplication.java diff --git a/kotiki-java/web/src/main/java/ru/itmo/kotiki/config/WebSecurityConfig.java b/kotiki-java/user-interface/web/src/main/java/ru/itmo/kotiki/config/WebSecurityConfig.java similarity index 100% rename from kotiki-java/web/src/main/java/ru/itmo/kotiki/config/WebSecurityConfig.java rename to kotiki-java/user-interface/web/src/main/java/ru/itmo/kotiki/config/WebSecurityConfig.java diff --git a/kotiki-java/web/src/main/java/ru/itmo/kotiki/controller/AdminController.java b/kotiki-java/user-interface/web/src/main/java/ru/itmo/kotiki/controller/AdminController.java similarity index 76% rename from kotiki-java/web/src/main/java/ru/itmo/kotiki/controller/AdminController.java rename to kotiki-java/user-interface/web/src/main/java/ru/itmo/kotiki/controller/AdminController.java index 92fad5f..e77b968 100644 --- a/kotiki-java/web/src/main/java/ru/itmo/kotiki/controller/AdminController.java +++ b/kotiki-java/user-interface/web/src/main/java/ru/itmo/kotiki/controller/AdminController.java @@ -2,7 +2,6 @@ import java.util.List; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.DeleteMapping; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PathVariable; @@ -11,47 +10,47 @@ import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import ru.itmo.kotiki.dto.UserDto; -import ru.itmo.kotiki.service.AdminService; +import ru.itmo.kotiki.service.UserService; @RestController @RequestMapping("/admin") public class AdminController { @Autowired - private AdminService adminService; + private UserService userService; @PostMapping("/registrationUser") public void registrationUser(@RequestBody UserDto userDto) { - adminService.registrationUser(userDto); + userService.registrationUser(userDto); } @GetMapping(value = "/byUserId/{id}") public UserDto getOwner(@PathVariable int id) { - return adminService.findByUserId(id); + return userService.findByUserId(id); } @GetMapping(value = "/byOwnerId/{id}") public UserDto findByOwnerId(@PathVariable int id) { - return adminService.findByOwnerId(id); + return userService.findByOwnerId(id); } @GetMapping(value = "/byUsername/{username}") public UserDto findByUsername(@PathVariable String username) { - return adminService.findByUsername(username); + return userService.findByUsername(username); } @DeleteMapping("/byUserId/{id}") public void deleteByUserId(@PathVariable int id) { - adminService.deleteByUserId(id); + userService.deleteByUserId(id); } @DeleteMapping("/byOwnerId/{id}") public void deleteByOwnerId(@PathVariable int id) { - adminService.deleteByOwnerId(id); + userService.deleteByOwnerId(id); } @GetMapping(value = "/getAll", produces = "application/json") public List getOwners() { - return adminService.getUsers(); + return userService.getUsers(); } } diff --git a/kotiki-java/web/src/main/java/ru/itmo/kotiki/controller/CatController.java b/kotiki-java/user-interface/web/src/main/java/ru/itmo/kotiki/controller/CatController.java similarity index 96% rename from kotiki-java/web/src/main/java/ru/itmo/kotiki/controller/CatController.java rename to kotiki-java/user-interface/web/src/main/java/ru/itmo/kotiki/controller/CatController.java index c1f5f5b..956f333 100644 --- a/kotiki-java/web/src/main/java/ru/itmo/kotiki/controller/CatController.java +++ b/kotiki-java/user-interface/web/src/main/java/ru/itmo/kotiki/controller/CatController.java @@ -15,8 +15,6 @@ import org.springframework.web.bind.annotation.RestController; import ru.itmo.kotiki.dto.CatDto; import ru.itmo.kotiki.exception.ValidationException; -import ru.itmo.kotiki.security.JwtUserDetails; -import ru.itmo.kotiki.service.CatService; @RestController diff --git a/kotiki-java/user-interface/web/src/main/java/ru/itmo/kotiki/controller/OwnerController.java b/kotiki-java/user-interface/web/src/main/java/ru/itmo/kotiki/controller/OwnerController.java new file mode 100644 index 0000000..8081f1f --- /dev/null +++ b/kotiki-java/user-interface/web/src/main/java/ru/itmo/kotiki/controller/OwnerController.java @@ -0,0 +1,5 @@ +package ru.itmo.kotiki.controller; + +public class OwnerController { + +} diff --git a/kotiki-java/web/src/main/java/ru/itmo/kotiki/security/JwtUserDetails.java b/kotiki-java/user-interface/web/src/main/java/ru/itmo/kotiki/security/JwtUserDetails.java similarity index 100% rename from kotiki-java/web/src/main/java/ru/itmo/kotiki/security/JwtUserDetails.java rename to kotiki-java/user-interface/web/src/main/java/ru/itmo/kotiki/security/JwtUserDetails.java diff --git a/kotiki-java/web/src/main/resources/application.properties b/kotiki-java/web/src/main/resources/application.properties deleted file mode 100644 index a3bfe38..0000000 --- a/kotiki-java/web/src/main/resources/application.properties +++ /dev/null @@ -1,8 +0,0 @@ -spring.datasource.url=jdbc:postgresql://localhost:5432/postgres -spring.datasource.username=postgres -spring.datasource.password=637804275 -spring.datasource.driver-class-name=org.postgresql.Driver -spring.datasource.hikari.jdbc-url=jdbc:postgresql://localhost:5432/postgres -spring.datasource.hikari.username=postgres -spring.datasource.hikari.password=637804275 -spring.jpa.properties.hibernate.dialect = org.hibernate.dialect.PostgreSQLDialect \ No newline at end of file diff --git a/kotiki-java/web/src/test/java/ru/itmo/kotiki/WebApplicationTests.java b/kotiki-java/web/src/test/java/ru/itmo/kotiki/WebApplicationTests.java deleted file mode 100644 index b7c76c4..0000000 --- a/kotiki-java/web/src/test/java/ru/itmo/kotiki/WebApplicationTests.java +++ /dev/null @@ -1,13 +0,0 @@ -package ru.itmo.kotiki; - -import org.junit.jupiter.api.Test; -import org.springframework.boot.test.context.SpringBootTest; - -@SpringBootTest -class WebApplicationTests { - - @Test - void contextLoads() { - } - -} From 0358fe5449826e5224876f647e4a815445026da8 Mon Sep 17 00:00:00 2001 From: FuchsbauFox Date: Sat, 4 Jun 2022 05:32:38 +0300 Subject: [PATCH 2/3] feat: some new realization and change architecture --- .../itmo/kotiki/cats/config/RabbitConfig.java | 57 ++++++++++++++++++ .../kotiki/cats/rabbitmq/RabbiMqReceiver.java | 5 ++ .../kotiki/cats/rabbitmq/RabbitMqSender.java | 9 +++ .../itmo/kotiki/cats/service/CatService.java | 16 +++++ .../{ => cats}/service/CatServiceImpl.java | 22 +++---- .../ru/itmo/kotiki/config/RabbitConfig.java | 31 ---------- .../ru/itmo/kotiki/service/CatService.java | 16 ----- .../core/src/main/resources/application.yml | 8 +++ .../{ => cats}/repository/CatRepository.java | 2 +- .../cats/repository/CatRepository.class | Bin 0 -> 535 bytes kotiki-java/cats/pom.xml | 5 ++ kotiki-java/docker-compose.yml | 8 +++ kotiki-java/models/pom.xml | 5 -- .../main/java/ru/itmo/kotiki/dto/CatDto.java | 7 +++ .../java/ru/itmo/kotiki/dto/OwnerDto.java | 9 +++ .../main/java/ru/itmo/kotiki/dto/UserDto.java | 10 +++ .../classes/ru/itmo/kotiki/dto/CatDto.class | Bin 0 -> 1602 bytes .../classes/ru/itmo/kotiki/dto/OwnerDto.class | Bin 0 -> 2191 bytes .../classes/ru/itmo/kotiki/dto/UserDto.class | Bin 0 -> 2225 bytes .../exception/ValidationException.class | Bin 0 -> 526 bytes .../classes/ru/itmo/kotiki/model/Cat.class | Bin 0 -> 3391 bytes .../classes/ru/itmo/kotiki/model/Owner.class | Bin 0 -> 3137 bytes .../classes/ru/itmo/kotiki/model/Role.class | Bin 0 -> 1730 bytes .../classes/ru/itmo/kotiki/model/User.class | Bin 0 -> 2991 bytes .../itmo/kotiki/model/accessory/Color.class | Bin 0 -> 1926 bytes .../ru/itmo/kotiki/config/RabbitConfig.java | 8 --- .../kotiki/owners/config/RabbitConfig.java | 26 ++++++++ .../owners/rabbitmq/RabbitMqReceiver.java | 5 ++ .../kotiki/owners/service/OwnerService.java | 8 +++ .../owners/service/OwnerServiceImpl.java | 23 +++++++ .../ru/itmo/kotiki/service/OwnerService.java | 5 -- .../itmo/kotiki/service/OwnerServiceImpl.java | 8 --- .../core/src/main/resources/application.yml | 9 ++- .../kotiki/owners/config/RabbitConfig.class | Bin 0 -> 1760 bytes .../owners/rabbitmq/RabbitMqReceiver.class | Bin 0 -> 335 bytes .../kotiki/owners/service/OwnerService.class | Bin 0 -> 189 bytes .../owners/service/OwnerServiceImpl.class | Bin 0 -> 1244 bytes .../repository/OwnerRepository.java | 2 +- .../owners/repository/OwnerRepository.class | Bin 0 -> 436 bytes kotiki-java/user-interface/core/pom.xml | 5 ++ .../ru/itmo/kotiki/config/RabbitConfig.java | 8 --- .../ru/itmo/kotiki/service/UserService.java | 20 ------ .../kotiki/ui/rabbitmq/RabbitMqSender.java | 6 ++ .../itmo/kotiki/ui/service/UserService.java | 17 ++++++ .../{ => ui}/service/UserServiceImpl.java | 31 ++++------ .../core/src/main/resources/application.yml | 8 +++ .../{ => ui}/repository/RoleRepository.java | 2 +- .../{ => ui}/repository/UserRepository.java | 2 +- kotiki-java/user-interface/pom.xml | 12 ++-- kotiki-java/user-interface/web/pom.xml | 5 ++ .../kotiki/controller/OwnerController.java | 5 -- .../itmo/kotiki/{ => ui}/WebApplication.java | 14 ++--- .../itmo/kotiki/ui/config/RabbitConfig.java | 43 +++++++++++++ .../{ => ui}/config/WebSecurityConfig.java | 2 +- .../{ => ui}/controller/AdminController.java | 17 +++--- .../{ => ui}/controller/CatController.java | 34 +++++++---- .../kotiki/ui/controller/OwnerController.java | 39 ++++++++++++ .../kotiki/ui/rabbitmq/RabbitMqSender.java | 5 ++ .../{ => ui}/security/JwtUserDetails.java | 2 +- .../src/main/resources/application.properties | 8 +++ 60 files changed, 415 insertions(+), 174 deletions(-) create mode 100644 kotiki-java/cats/core/src/main/java/ru/itmo/kotiki/cats/config/RabbitConfig.java create mode 100644 kotiki-java/cats/core/src/main/java/ru/itmo/kotiki/cats/rabbitmq/RabbiMqReceiver.java create mode 100644 kotiki-java/cats/core/src/main/java/ru/itmo/kotiki/cats/rabbitmq/RabbitMqSender.java create mode 100644 kotiki-java/cats/core/src/main/java/ru/itmo/kotiki/cats/service/CatService.java rename kotiki-java/cats/core/src/main/java/ru/itmo/kotiki/{ => cats}/service/CatServiceImpl.java (76%) delete mode 100644 kotiki-java/cats/core/src/main/java/ru/itmo/kotiki/config/RabbitConfig.java delete mode 100644 kotiki-java/cats/core/src/main/java/ru/itmo/kotiki/service/CatService.java rename kotiki-java/cats/data/src/main/java/ru/itmo/kotiki/{ => cats}/repository/CatRepository.java (88%) create mode 100644 kotiki-java/cats/data/target/classes/ru/itmo/kotiki/cats/repository/CatRepository.class create mode 100644 kotiki-java/models/target/classes/ru/itmo/kotiki/dto/CatDto.class create mode 100644 kotiki-java/models/target/classes/ru/itmo/kotiki/dto/OwnerDto.class create mode 100644 kotiki-java/models/target/classes/ru/itmo/kotiki/dto/UserDto.class create mode 100644 kotiki-java/models/target/classes/ru/itmo/kotiki/exception/ValidationException.class create mode 100644 kotiki-java/models/target/classes/ru/itmo/kotiki/model/Cat.class create mode 100644 kotiki-java/models/target/classes/ru/itmo/kotiki/model/Owner.class create mode 100644 kotiki-java/models/target/classes/ru/itmo/kotiki/model/Role.class create mode 100644 kotiki-java/models/target/classes/ru/itmo/kotiki/model/User.class create mode 100644 kotiki-java/models/target/classes/ru/itmo/kotiki/model/accessory/Color.class delete mode 100644 kotiki-java/owners/core/src/main/java/ru/itmo/kotiki/config/RabbitConfig.java create mode 100644 kotiki-java/owners/core/src/main/java/ru/itmo/kotiki/owners/config/RabbitConfig.java create mode 100644 kotiki-java/owners/core/src/main/java/ru/itmo/kotiki/owners/rabbitmq/RabbitMqReceiver.java create mode 100644 kotiki-java/owners/core/src/main/java/ru/itmo/kotiki/owners/service/OwnerService.java create mode 100644 kotiki-java/owners/core/src/main/java/ru/itmo/kotiki/owners/service/OwnerServiceImpl.java delete mode 100644 kotiki-java/owners/core/src/main/java/ru/itmo/kotiki/service/OwnerService.java delete mode 100644 kotiki-java/owners/core/src/main/java/ru/itmo/kotiki/service/OwnerServiceImpl.java create mode 100644 kotiki-java/owners/core/target/classes/ru/itmo/kotiki/owners/config/RabbitConfig.class create mode 100644 kotiki-java/owners/core/target/classes/ru/itmo/kotiki/owners/rabbitmq/RabbitMqReceiver.class create mode 100644 kotiki-java/owners/core/target/classes/ru/itmo/kotiki/owners/service/OwnerService.class create mode 100644 kotiki-java/owners/core/target/classes/ru/itmo/kotiki/owners/service/OwnerServiceImpl.class rename kotiki-java/owners/data/src/main/java/ru/itmo/kotiki/{ => owners}/repository/OwnerRepository.java (84%) create mode 100644 kotiki-java/owners/data/target/classes/ru/itmo/kotiki/owners/repository/OwnerRepository.class delete mode 100644 kotiki-java/user-interface/core/src/main/java/ru/itmo/kotiki/config/RabbitConfig.java delete mode 100644 kotiki-java/user-interface/core/src/main/java/ru/itmo/kotiki/service/UserService.java create mode 100644 kotiki-java/user-interface/core/src/main/java/ru/itmo/kotiki/ui/rabbitmq/RabbitMqSender.java create mode 100644 kotiki-java/user-interface/core/src/main/java/ru/itmo/kotiki/ui/service/UserService.java rename kotiki-java/user-interface/core/src/main/java/ru/itmo/kotiki/{ => ui}/service/UserServiceImpl.java (66%) rename kotiki-java/user-interface/data/src/main/java/ru/itmo/kotiki/{ => ui}/repository/RoleRepository.java (84%) rename kotiki-java/user-interface/data/src/main/java/ru/itmo/kotiki/{ => ui}/repository/UserRepository.java (87%) delete mode 100644 kotiki-java/user-interface/web/src/main/java/ru/itmo/kotiki/controller/OwnerController.java rename kotiki-java/user-interface/web/src/main/java/ru/itmo/kotiki/{ => ui}/WebApplication.java (67%) create mode 100644 kotiki-java/user-interface/web/src/main/java/ru/itmo/kotiki/ui/config/RabbitConfig.java rename kotiki-java/user-interface/web/src/main/java/ru/itmo/kotiki/{ => ui}/config/WebSecurityConfig.java (98%) rename kotiki-java/user-interface/web/src/main/java/ru/itmo/kotiki/{ => ui}/controller/AdminController.java (77%) rename kotiki-java/user-interface/web/src/main/java/ru/itmo/kotiki/{ => ui}/controller/CatController.java (66%) create mode 100644 kotiki-java/user-interface/web/src/main/java/ru/itmo/kotiki/ui/controller/OwnerController.java create mode 100644 kotiki-java/user-interface/web/src/main/java/ru/itmo/kotiki/ui/rabbitmq/RabbitMqSender.java rename kotiki-java/user-interface/web/src/main/java/ru/itmo/kotiki/{ => ui}/security/JwtUserDetails.java (97%) create mode 100644 kotiki-java/user-interface/web/src/main/resources/application.properties diff --git a/kotiki-java/cats/core/src/main/java/ru/itmo/kotiki/cats/config/RabbitConfig.java b/kotiki-java/cats/core/src/main/java/ru/itmo/kotiki/cats/config/RabbitConfig.java new file mode 100644 index 0000000..4c9e221 --- /dev/null +++ b/kotiki-java/cats/core/src/main/java/ru/itmo/kotiki/cats/config/RabbitConfig.java @@ -0,0 +1,57 @@ +package ru.itmo.kotiki.cats.config; + +import org.springframework.amqp.core.Binding; +import org.springframework.amqp.core.BindingBuilder; +import org.springframework.amqp.core.DirectExchange; +import org.springframework.amqp.core.Queue; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; + +@Configuration +public class RabbitConfig { + + @Bean + public DirectExchange catsDirectExchange() { + return new DirectExchange("cats-exchange"); + } + + @Bean + public Queue saveCat() { + return new Queue("saveQueue"); + } + + @Bean + public Queue deleteCatById() { + return new Queue("deleteByIdQueue"); + } + + @Bean + public Queue findCatById() { + return new Queue("findByIdQueue"); + } + + @Bean + public Queue findAllCatsByOwner() { + return new Queue("findAllByOwnerQueue"); + } + + @Bean + public Binding bindSaveCatQueue() { + return BindingBuilder.bind(saveCat()).to(catsDirectExchange()).with("saveCat"); + } + + @Bean + public Binding bindDeleteCatById() { + return BindingBuilder.bind(deleteCatById()).to(catsDirectExchange()).with("deleteCatById"); + } + + @Bean + public Binding bindFindCatById() { + return BindingBuilder.bind(findCatById()).to(catsDirectExchange()).with("findCatById"); + } + + @Bean + public Binding bindFindAllCatsByOwner() { + return BindingBuilder.bind(findAllCatsByOwner()).to(catsDirectExchange()).with("findAllCatsByOwner"); + } +} diff --git a/kotiki-java/cats/core/src/main/java/ru/itmo/kotiki/cats/rabbitmq/RabbiMqReceiver.java b/kotiki-java/cats/core/src/main/java/ru/itmo/kotiki/cats/rabbitmq/RabbiMqReceiver.java new file mode 100644 index 0000000..cfd04d7 --- /dev/null +++ b/kotiki-java/cats/core/src/main/java/ru/itmo/kotiki/cats/rabbitmq/RabbiMqReceiver.java @@ -0,0 +1,5 @@ +package ru.itmo.kotiki.cats.rabbitmq; + +public class RabbiMqReceiver { + +} diff --git a/kotiki-java/cats/core/src/main/java/ru/itmo/kotiki/cats/rabbitmq/RabbitMqSender.java b/kotiki-java/cats/core/src/main/java/ru/itmo/kotiki/cats/rabbitmq/RabbitMqSender.java new file mode 100644 index 0000000..8162aaf --- /dev/null +++ b/kotiki-java/cats/core/src/main/java/ru/itmo/kotiki/cats/rabbitmq/RabbitMqSender.java @@ -0,0 +1,9 @@ +package ru.itmo.kotiki.cats.rabbitmq; + +import org.springframework.amqp.rabbit.annotation.EnableRabbit; +import org.springframework.stereotype.Component; + +@EnableRabbit +@Component +public class RabbitMqSender { +} diff --git a/kotiki-java/cats/core/src/main/java/ru/itmo/kotiki/cats/service/CatService.java b/kotiki-java/cats/core/src/main/java/ru/itmo/kotiki/cats/service/CatService.java new file mode 100644 index 0000000..2dac098 --- /dev/null +++ b/kotiki-java/cats/core/src/main/java/ru/itmo/kotiki/cats/service/CatService.java @@ -0,0 +1,16 @@ +package ru.itmo.kotiki.cats.service; + +import java.util.List; +import ru.itmo.kotiki.dto.CatDto; +import ru.itmo.kotiki.exception.ValidationException; + +public interface CatService { + + CatDto save(int ownerId, CatDto catDto) throws ValidationException; + + void deleteById(int ownerId, int id); + + CatDto findById(int ownerId, int id); + + List findAllByOwner(int ownerId); +} diff --git a/kotiki-java/cats/core/src/main/java/ru/itmo/kotiki/service/CatServiceImpl.java b/kotiki-java/cats/core/src/main/java/ru/itmo/kotiki/cats/service/CatServiceImpl.java similarity index 76% rename from kotiki-java/cats/core/src/main/java/ru/itmo/kotiki/service/CatServiceImpl.java rename to kotiki-java/cats/core/src/main/java/ru/itmo/kotiki/cats/service/CatServiceImpl.java index ef92d12..a4cc12d 100644 --- a/kotiki-java/cats/core/src/main/java/ru/itmo/kotiki/service/CatServiceImpl.java +++ b/kotiki-java/cats/core/src/main/java/ru/itmo/kotiki/cats/service/CatServiceImpl.java @@ -1,4 +1,4 @@ -package ru.itmo.kotiki.service; +package ru.itmo.kotiki.cats.service; import static java.util.Objects.isNull; @@ -12,7 +12,7 @@ import ru.itmo.kotiki.model.Cat; import ru.itmo.kotiki.model.accessory.Color; import ru.itmo.kotiki.exception.ValidationException; -import ru.itmo.kotiki.repository.CatRepository; +import ru.itmo.kotiki.cats.repository.CatRepository; @EnableRabbit @Service @@ -22,17 +22,17 @@ public class CatServiceImpl implements CatService { private CatRepository catRepository; @Override - @RabbitListener(queues = "saveCatQueue") - public CatDto save(String username, CatDto catDto) throws ValidationException { + @RabbitListener(queues = "saveQueue") + public CatDto save(int ownerId, CatDto catDto) throws ValidationException { validateCatDto(catDto); Cat cat = catDto.toCat(); - cat.setOwner(userRepository.findByUsername(username).getOwner()); + cat.setOwner(ownerRepository.); return new CatDto(catRepository.save(cat)); } @Override - @RabbitListener(queues = "deleteCatByIdQueue") - public void deleteById(String username, int id) { + @RabbitListener(queues = "deleteByIdQueue") + public void deleteById(int ownerId, int id) { if (userRepository.findByUsername(username).getOwner().getId() != catRepository.getById(id).getOwner().getId()){ throw new ValidationException("Cat " + id + " not found"); } @@ -40,8 +40,8 @@ public void deleteById(String username, int id) { } @Override - @RabbitListener(queues = "findCatByIdQueue") - public CatDto findById(String username, int id) { + @RabbitListener(queues = "findByIdQueue") + public CatDto findById(int ownerId, int id) { Cat cat = catRepository.getById(id); if (userRepository.findByUsername(username).getOwner().getId() != cat.getOwner().getId()){ throw new ValidationException("Cat " + id + " not found"); @@ -50,8 +50,8 @@ public CatDto findById(String username, int id) { } @Override - @RabbitListener(queues = "findAllCatsByOwnerQueue") - public List findAllByOwner(String username) { + @RabbitListener(queues = "findAllByOwnerQueue") + public List findAllByOwner(int ownerId) { List catsDto = new ArrayList<>(); for(Cat cat : catRepository.findAllByOwnerId(userRepository.findByUsername(username).getOwner().getId())) { catsDto.add(new CatDto(cat)); diff --git a/kotiki-java/cats/core/src/main/java/ru/itmo/kotiki/config/RabbitConfig.java b/kotiki-java/cats/core/src/main/java/ru/itmo/kotiki/config/RabbitConfig.java deleted file mode 100644 index 3a1424e..0000000 --- a/kotiki-java/cats/core/src/main/java/ru/itmo/kotiki/config/RabbitConfig.java +++ /dev/null @@ -1,31 +0,0 @@ -package ru.itmo.kotiki.config; - -import org.springframework.amqp.core.Queue; -import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.Configuration; - -@Configuration -public class RabbitConfig { - - - - @Bean - public Queue saveCat() { - return new Queue("saveCatQueue"); - } - - @Bean - public Queue deleteCatById() { - return new Queue("deleteCatByIdQueue"); - } - - @Bean - public Queue findCatById() { - return new Queue("findCatByIdQueue"); - } - - @Bean - public Queue findAllCatsByOwner() { - return new Queue("findAllCatsByOwnerQueue"); - } -} diff --git a/kotiki-java/cats/core/src/main/java/ru/itmo/kotiki/service/CatService.java b/kotiki-java/cats/core/src/main/java/ru/itmo/kotiki/service/CatService.java deleted file mode 100644 index 4c843be..0000000 --- a/kotiki-java/cats/core/src/main/java/ru/itmo/kotiki/service/CatService.java +++ /dev/null @@ -1,16 +0,0 @@ -package ru.itmo.kotiki.service; - -import java.util.List; -import ru.itmo.kotiki.dto.CatDto; -import ru.itmo.kotiki.exception.ValidationException; - -public interface CatService { - - CatDto save(String username, CatDto catDto) throws ValidationException; - - void deleteById(String username, int id); - - CatDto findById(String username, int id); - - List findAllByOwner(String username); -} diff --git a/kotiki-java/cats/core/src/main/resources/application.yml b/kotiki-java/cats/core/src/main/resources/application.yml index e69de29..05a178d 100644 --- a/kotiki-java/cats/core/src/main/resources/application.yml +++ b/kotiki-java/cats/core/src/main/resources/application.yml @@ -0,0 +1,8 @@ +server: + port: 8081 +spring: + rabbitmq: + host: localhost + password: guest + port: 15672 + username: guest \ No newline at end of file diff --git a/kotiki-java/cats/data/src/main/java/ru/itmo/kotiki/repository/CatRepository.java b/kotiki-java/cats/data/src/main/java/ru/itmo/kotiki/cats/repository/CatRepository.java similarity index 88% rename from kotiki-java/cats/data/src/main/java/ru/itmo/kotiki/repository/CatRepository.java rename to kotiki-java/cats/data/src/main/java/ru/itmo/kotiki/cats/repository/CatRepository.java index cf8bc05..1a6bb35 100644 --- a/kotiki-java/cats/data/src/main/java/ru/itmo/kotiki/repository/CatRepository.java +++ b/kotiki-java/cats/data/src/main/java/ru/itmo/kotiki/cats/repository/CatRepository.java @@ -1,4 +1,4 @@ -package ru.itmo.kotiki.repository; +package ru.itmo.kotiki.cats.repository; import java.util.List; import org.springframework.data.jpa.repository.JpaRepository; diff --git a/kotiki-java/cats/data/target/classes/ru/itmo/kotiki/cats/repository/CatRepository.class b/kotiki-java/cats/data/target/classes/ru/itmo/kotiki/cats/repository/CatRepository.class new file mode 100644 index 0000000000000000000000000000000000000000..fdaf7352e13d258d6bfd7840087c057a79e8dda3 GIT binary patch literal 535 zcmbVJO-lnY5S>)*+WJ-WuP;F@6Qan zUMAq^q<5OsA{CRC33-kMw1$)$#g#(=@@K_W@~x4=W~dkTmodels 1.0-SNAPSHOT + + ru.itmo.kotiki.owners + owners + 1.0-SNAPSHOT + \ No newline at end of file diff --git a/kotiki-java/docker-compose.yml b/kotiki-java/docker-compose.yml index e69de29..2abe2c2 100644 --- a/kotiki-java/docker-compose.yml +++ b/kotiki-java/docker-compose.yml @@ -0,0 +1,8 @@ +version: '3.8' +services: + rabbitmq: + container_name: rabbitmq + image: rabbitmq:management + ports: + - "5672:5672" + - "15672:15672" \ No newline at end of file diff --git a/kotiki-java/models/pom.xml b/kotiki-java/models/pom.xml index 0259fa1..a20143f 100644 --- a/kotiki-java/models/pom.xml +++ b/kotiki-java/models/pom.xml @@ -19,11 +19,6 @@ postgresql 42.3.4 - - org.springframework.boot - spring-boot-starter-data-jpa - 2.6.7 - org.hibernate hibernate-entitymanager diff --git a/kotiki-java/models/src/main/java/ru/itmo/kotiki/dto/CatDto.java b/kotiki-java/models/src/main/java/ru/itmo/kotiki/dto/CatDto.java index 4f19132..da84ec1 100644 --- a/kotiki-java/models/src/main/java/ru/itmo/kotiki/dto/CatDto.java +++ b/kotiki-java/models/src/main/java/ru/itmo/kotiki/dto/CatDto.java @@ -17,6 +17,13 @@ public CatDto(Cat cat) { this.color = cat.getColor().toString(); } + public CatDto(String name, Date dateOfBirth, String breed, String color) { + this.name = name; + this.dateOfBirth = dateOfBirth; + this.breed = breed; + this.color = color; + } + public Cat toCat() { return new Cat(name, dateOfBirth, breed, Color.valueOf(color)); } diff --git a/kotiki-java/models/src/main/java/ru/itmo/kotiki/dto/OwnerDto.java b/kotiki-java/models/src/main/java/ru/itmo/kotiki/dto/OwnerDto.java index 992bddc..8eac8b0 100644 --- a/kotiki-java/models/src/main/java/ru/itmo/kotiki/dto/OwnerDto.java +++ b/kotiki-java/models/src/main/java/ru/itmo/kotiki/dto/OwnerDto.java @@ -24,6 +24,15 @@ public OwnerDto(Owner owner) { this.userId = owner.getUser().getId(); } + public OwnerDto(int id, String name, Date dateOfBirth, + List cats, int userId) { + this.id = id; + this.name = name; + this.dateOfBirth = dateOfBirth; + this.cats = cats; + this.userId = userId; + } + public int getId() { return id; } diff --git a/kotiki-java/models/src/main/java/ru/itmo/kotiki/dto/UserDto.java b/kotiki-java/models/src/main/java/ru/itmo/kotiki/dto/UserDto.java index 900cb63..2205520 100644 --- a/kotiki-java/models/src/main/java/ru/itmo/kotiki/dto/UserDto.java +++ b/kotiki-java/models/src/main/java/ru/itmo/kotiki/dto/UserDto.java @@ -26,6 +26,16 @@ public UserDto(User user) { } } + public UserDto(int id, String username, String password, int ownerId, boolean enabled, + List roles) { + this.id = id; + this.username = username; + this.password = password; + this.ownerId = ownerId; + this.enabled = enabled; + this.roles = roles; + } + public int getId() { return id; } diff --git a/kotiki-java/models/target/classes/ru/itmo/kotiki/dto/CatDto.class b/kotiki-java/models/target/classes/ru/itmo/kotiki/dto/CatDto.class new file mode 100644 index 0000000000000000000000000000000000000000..d486bef4ebbc3ce8bdae12a1cc930d079e5f0697 GIT binary patch literal 1602 zcmbVMZBNrs6n-vrbc{0Q7%v+`QBb<^Qc-+kfC^}0Lf`|2#1DSxx(bDEHRX=PZ~i1r zHZYp_1N>3ObJ_`{s|oQ-Pw&0wd7g8gp4(r)zyAcVhLG!82LNMlGvM#Bwc1@aN1n)H}vOL_uIBcRE4lW;XT4I>y8NR!@{ zDec`48;&mz1+sr-o6>O&J_kHjLy47Ut^*<^>4i3O zL30}BgMuv9X2L}c2JX`*I5piS86vQvcbj+Z3X^!i)A3N?eGE<1xNf2AIZ@gdnAGEQ zX%Z@Yu58kL2@GvJ4ST0quiE}wv+B}LcH6T|ci;3KUUxPXdFY%7Ohh>^XRAU(ZSk-c zqB$3XOet^vuj{Un=MECm3vNg8UjxFe3Z(YDrf=D=9d2%b_UIxkG9i}ei}%pgRgmSI zLvLB0=OEHt29d^rq6(73GCd#B>LZ~Tr+Zg0H+{PHki8gL>ynTkdZIr)K zZVw*Qvw%K&4w7OT8itTV21U}IC6y<1G8*#YDW1`a6tIE{sj~WNNBuM9Bn^ZpUWw7mk=_XUi9L-m3}c+S%m;eQA=8CkA@D&kd*B3jS>QX0-r$YhP^gYItaqw; zMICYe#1ACjm0MIyi)v|6DJ_)0Vc{H0U+6e&KTItK(pm`XNYj@gLqdBEicFbcx+r++ p3OI2AroUDUcq|H@i3QVtDF%Eq3f5!6)3M-k6g(dbejYgU;txJ1Lf8NR literal 0 HcmV?d00001 diff --git a/kotiki-java/models/target/classes/ru/itmo/kotiki/dto/OwnerDto.class b/kotiki-java/models/target/classes/ru/itmo/kotiki/dto/OwnerDto.class new file mode 100644 index 0000000000000000000000000000000000000000..ce7441d85ab3ba0e20ec4d01c4f17222dd2bc38d GIT binary patch literal 2191 zcmbVNT~`}b6x}x@41|Hw@ZIu}QcIH*8c}Q2P;5)AMgvqsso>|3Ov99rbPW@=KgBcMiNLE}~1|T{e+G zlJJU_cR-h1PC_{EYj@UFsm zAh~`~kdJ{|3KM}-Nj=Y)_$Y2-Md~oCFqOy$>|R94BsWEZJ0{-82ZU#pSS=%omUK73 zB)3J=4^4c8yszoK1F6d?s?ssI95WAVQsL{Tk@^V4Nb>oyiBF`IyX)MLGVd)o<*Mb? zT^8v=AiGP!3!AJn%Nd24|Dda15(!iF6+SJ6GkK?KuhsW=YF zzp>fHBID}}-rCfV0li&^bvPBY5oG#WW`xKhHUBYB2JQS z2=fQnsUxV=m8UQc(J%ARA;x4re~6jXGhEy{!lgsZaVK?*s|u_0$9O~Gd(3k2j>7L) zUQ0c}+%w$VS~$Y(W4sr_{U4wIDM4~iv3iKRzwn|i+~=4=l;a?;J`0nuhB1Umj+fby zvlu0`F>GNRC6fA-mT~%JX}5)Kt_T;O;d9Qi`T}2)%vW5GAoQHd@RKuOpvPce!QTui ze7~j!!uJQx-JIi^FUj?%=7s5k(3}X9VQM7O26dW>f#AaI?Y)?$?lS}%C$I}#&1!hd ze#{r3;yNcv?$KG1OvR`$r&PfCo&rRYKs|0fuZe(qTd;Au16zplvViTdx z{XcO*fjM^T%}W}HA0*NM!q!DCPdktO9B@u{bmq6LgY!(#d7+~-zcmfXTVc-yofkVe Z`xRT{-KCD)?*_SF>kve-GDM*V{{q`4)l2{Y literal 0 HcmV?d00001 diff --git a/kotiki-java/models/target/classes/ru/itmo/kotiki/dto/UserDto.class b/kotiki-java/models/target/classes/ru/itmo/kotiki/dto/UserDto.class new file mode 100644 index 0000000000000000000000000000000000000000..a2f1eac00e630023f0a5e930b54631d669fa822b GIT binary patch literal 2225 zcmbVNT~ixn6n#&DrzyJmpQ!S zx#yPbviZ1bdkP&}wqGa(ZiO!N;*^2Y8gC%2a5myr^4-8`!FLtf96G6jWa`%#z@S1m zLrKtzwP!2zXD1hr%3Sq5r?Qoo3}-ZkaaN(T_R2QhYAJz7HQsCneqdFrPhGDh5zc9x z4+M8dV;(m{ln+C@bd%^K%Wk}n4-DMa_z-s#dXLgdAbLB# z?ODD{js{P77aIC}H}2w|fsZuq3(E9Sgr*7MZCll4`+Hw(Ki2pJiwcPf718F0GnzNB z{JL2bC@C!AfySrOaf3}1od8+Yc!bBCP^(0a2eQXzr4e{?gMC$L^L`$<=smsGvTDo>ku}?k-vTjr?=jLMzTzO<^O#P5^cAB%){g zO;pSOGiog7LTajcKV|D=PE4N+XRIH+R^6IcwC_1Wu@(lng=SeF>7Y=Z#j;tK7)M4g+!?h>R@lGAH)XW`%%Xn$(5DN-FV2p=?!XH>#&i#tn=>x1B z;vtj&`0}q`n5-Qee9mxRgCG(tSECR8{Ec$CUdA9y3}FsuSne=v!rI0NKBx70`mU3L zFYqN#EE`|pYf3qN1B;+Gc^*L9ODxDYq}M>F!5fQzxGx2FksJu_7nBBNCcsUQJ-I1C zJS}hs5`uJ~LvRi!3Gt}taqvQBv`eM_Rmvu5p~W}TX_lQwny;PEMVOiHooAmKef@z54< zoD7uNprkNJN24Sz7xLWdJoIzKc`DYKpQ;$=v8eOaSm$qJ%g#p2z8>q$4^d2JGwOUJ c)|sD^#sC~AY&Kfgt~E&#(6n0H@fi!$ZkOIY0$ffrESXsAR0tNZu5wp+sLijrD_}EETAp zP)g=Zpw#JxHLRiLqaL7vK;S4ZB$*_W)6CG6q+XWEP{lM+R^gYFpXk|4MOvUW_-Q#b zIi=CDz;0(X+6@KD=h=j7ngdGpb&-s8eyc{YQ_03E4pmOpUj)nMj%EV=!GC7s?)6BU ztL1zD$# zZ0%J5J`0y`GHTCB*g}gvraLjgBHP$mNJ)N$&Gla4KQr)PrK&F2a5BN1u#n+3J68J} D(3o^# literal 0 HcmV?d00001 diff --git a/kotiki-java/models/target/classes/ru/itmo/kotiki/model/Cat.class b/kotiki-java/models/target/classes/ru/itmo/kotiki/model/Cat.class new file mode 100644 index 0000000000000000000000000000000000000000..0f73e3381f07f6e9659ad862daa969c401681ae2 GIT binary patch literal 3391 zcma)8*-{%v6g_Q(B!d8h@d9|k4%kA*o+Nfw89PQSmMueKDLCFj2C0ED(hQ{;IiXVd zhP>t@@(@>rxXP)@2jrttIXyifkXkMtW~RIE>3dJ#t>@qW-u(k$2DKg>LstT^6uJ=? zIPuDUZCh2_-LRI|UdeJG5WnrXPH;z{D?PPx97!BcpeKc1qy)~^82aH`fE1tD}O zg_Fuw_gY=birRcCh0{30m9kg$>H=2^MjCdxEPdar?^rp7%O)@)FlvM@|LDqk56+@X z=|7jkd0e1=Pb~|aGwTmGg%rnAxP;3B$DE3Q$SXw?DNN!Db!^BW&s91vKSYyX;I+30r$vucS_!}s~C5$%b?8MHQ^SNC{h?J+y_>5id}cq zJX(wen-23~)Laa#dF2dWXL~H2R|XPH{-v-D45y8WmmppPP8rUsRP@8lqIQbR&^1Tn9U(q!ww;krt%}XPb-LaO{I^vX^%qKIG75ZjOoUr zO+?s>9ZYCws5tO+iU{-+y+*w(7aSGKBqMV}rMkJI=2`f`4nsF$$n!Arl*L$W4E>2& z&kIyRZ$Fa3rdRO?;`pHlHr5g-tG-6RPBh!She&>O=#YllBSu%xfF?7>uwZ0GE1wdnB1Nn%~#E`9d1Q<)Ld z~V)%Bv*Jau2ph+hO!d6&an)%JbqC*TN7cA$Ouya{YE zG2Rbl_tVbdrIY0K4aE881q6X>oQu5AhL)y*@rBj`wzi>*Y5R^ish4 zxLt6Q0^Yvuf|C^R5{?9?IlIO2Cla6Hvpub9l^5v&%;y|`A@L=$xXmFc&Co9U2JY~E zm!y9s`EGtEGjAa>*LIP}Oz)yEbA1n>g%KWpf_&~#dP^(DEOMODMC1!KQioTboD5If6^_*LVj;PBMD8ZPg0gN! zu4!ETLjgAlz7-l$?jk5M#L(kPq`=x&@Fy<*PLO7=^n-p=EL%6vVLsY?hv+ccnXz45 zY&D;y!P}t*<#v@5d*_TtxgoHCMFWwrOE0KpJQs_WLC%eFs(IbPcM3#+2mdzd+Y$Z}8kx~aDy0`?s#y19! z47U<_VkGhyMUzK{TZud;kry3^=wcQm`mKS;SSyiLBasz6F%daXsJd3lBvR=>M0X5< z@AgAeWHPG)xs+km@JaCL<1@%-n9tZ>_~0F`0!@c!erP{s-}()0_YR literal 0 HcmV?d00001 diff --git a/kotiki-java/models/target/classes/ru/itmo/kotiki/model/Owner.class b/kotiki-java/models/target/classes/ru/itmo/kotiki/model/Owner.class new file mode 100644 index 0000000000000000000000000000000000000000..65eddb1b11a1606057b2040434de8dd4f78577f4 GIT binary patch literal 3137 zcma)8ZC4XV6n=(;1VVTb6%C?Nt0hEg+G?w90EOU7Y6L40Ut2mPE372DIoXXZr>Fm; zKcXMnbEKYQ&*=~7kLu|&Gb?#vWBXw@Gdp*l`^>%1y_3KHdHWZD1vm-xAreP4iGIWc z#$L)-GFz3-c6M#+rB(I?V)M3R`-=jR^z6nU1~3>$B8ed+1tuHKtnJs_?5^wEyLPtb zR;+4v?FYwd2t*xOvjoPAEzEVlVLRJ7g))-FD8>YaD$=*sUM$-Ue~12!anrY}*%dD2 z;use=suA?ZrA9;U6>ZN?;0PiL=y(znI6-%1>3f|B%1%2=B{7Lp0)2KxKor!r(@C7c zS#E23itMRk=usYWF_*vxI2XrH+m7^`4N7LtoK`1X<#0YcIeF>l7KwT~#O0b} zmE3#M*;8I?vR=0;%REiLCLj|^mR65bKWclhl?x~i{$Gz>O0bTVAb4LvKnD- zg}_wEX6>0TI=+xL2hsHuXy1Hk34C^g8qBk91V)RtW34u8TUMhanNU?bZdq10WW!eT z;A7O^v6L=Gb5+;lv2>`I;I)PeS@vuO%z+|hEYGChW2is}eAfs>AhGT?8)fU3trU>Z`MjhWV0dlaWDD?>%2Od) z)Mw;cOv|3Z9$R)@Uln)#p5^bj6>l^KnZOpxaa2^VqRaEGer-Fi++8bcn3?uLOa05i@hss_6v!RST;3FNmK7k_Cs2DPNVIXL)hFWbGb`LfGNr zs0y5UzbV6SBEf59fY&W})%L0T2m%?-CK16!{?2j!v4u;>;u8*sJbX$!-m`(-5PyS( zAujOtJiPE37kC@;eVK@TxDt2}_?%w8@NgB^o+r6!Wyp)Th110mNvPWMdaKr2Yl`g`}|n literal 0 HcmV?d00001 diff --git a/kotiki-java/models/target/classes/ru/itmo/kotiki/model/Role.class b/kotiki-java/models/target/classes/ru/itmo/kotiki/model/Role.class new file mode 100644 index 0000000000000000000000000000000000000000..7653a3c68643637685b6ae512d6ef510fca5af9a GIT binary patch literal 1730 zcmah}T~8B16uncnErs$`5anAyrGT&~Dr$iQ5loYc25J+1F-tp^fp(W{XN~+PA2gAe z_}~xlM;XuET__(5zRdK_oO|xMXYcgS-(SCpXoXhWC`K(wGSU>MgrM$y>$7FnEW2vH z+1;0AEhw?9Y^7HPwPdGDDQcxulG@VLPH8~{u4gJ;cgzDvs{>`$orY{EzF;x*H@_dv@Q!n)iihB*|HlQWQ^t7s(1=Y|w)Z6xKt?II* z8fv#D*KFI-mR61pc)t(-VjdzHXla+FnXe#eBI4qew54llSt(gHPXg51&>UBfuEnEL z@#xUU=U;AY74yaSf(9e_*PWVIx4~=JRvl&}*^H0eYidVTZA*JDPUkLkxLk$@K9D>po=(Hge~z;QkVAxjYQ;b@>ST7QCRzcW{h=wLP1>x zWy>wEzAN3L1*ZjN3QpOol`L0r93C2aPoc(8v~HdQh`Nyt+VrO?9D(T)lvSn9!x79? z9#JERjBK7Slepx3L4Dcj%lQBR9{^ebWs4vrbAmlPH0Gtl|M}bs?vSxJ6yGFdb^Yhf zz(|CKEL?1{G|sXKBuoCN8@-)F}&^;taxLD zFMwzeaXJ(P~t08b3G)!6i;)(##G|gaVf?2Fgun8n%+n8Wx z_L!1QmQM6R5M)433PPBvKR|~}Tq)>B(0!T=UoYem=LmX zg^&|R7U>b1;ik?C>A5ImF+xZ%1&`6k6Iu#M-kv%GK|SnDi|=b7XbFOzULlAlOW^io f5E7WRF`NWdo`LtdZ%)pix-P`ah*yBX%uf6R^r=$- literal 0 HcmV?d00001 diff --git a/kotiki-java/models/target/classes/ru/itmo/kotiki/model/User.class b/kotiki-java/models/target/classes/ru/itmo/kotiki/model/User.class new file mode 100644 index 0000000000000000000000000000000000000000..e891f535ac8c3e04629a64874f5592cf5abd62cf GIT binary patch literal 2991 zcmbVN*-{%v6uqqlNg$SBOf2>|n~;|w#?A&N5D-|73P}VG zjK{8Q2ue25*=Ah|8ZUNX550zEpR6#@NSa0&C3$AL?rWz}<;AzsG)`9pC8TX0)nrwW zsPOvLG)>amg5nLQCS5Sqm`%^B8AZ$W6k;Y#Q#1`D=e5loW{RN%_jp$wm`&3h%?pZH z?5Kbn9W-svs>`zFT5!K%+m2^?mSe-^q;mO_aV8rsJWBgm8ineLpz9$UI}$!jPgcuj zttnxYbUmJ*ocFbdr_%YEvM+4qcT0uRQ$bT9_?u3xS+{{3(=kqPxWD6T%!F9)*|OxI zfqnc3=^eiiG#g^J&0D_zSaG8Q-*X{m4;{E6=Gz>%=y_W&=6DrOp|h{H%tj z;sDuPSp%&wKaWiNyyS4pyz?77`GauYOsK?if!&}Ags+mJ(+*W6aNM$AA$PLNABzb# zRrF(9ta6O`n-C6h#lMcY(GqTA@|+3~(P74Dd7h0rU$Dkh{^MMDAvbhI6wm8p~y3Et<$> z;w`$y*imBaIZB{4fW1U1TwsLm;LgjG0rh#hr~IvHOy3{S{b=)u!^`XzRIH+E#KDQF z5yv=AYZzLVb&*Ko*8q|AP$Jv3(?f)#A0)B`B6)?-OGGPJ z(1TDS!$BesLWvZ@i3|sc6hY+CB}DX#5%iG03W>8I(!=D zTHS=(sW%gknjQC%o2WPMS8EBUQmMAv&DQscOtaQ(g`goI5yXgwv7J7`JXQ3=Tw`)Bbvw!7vw+|Ig&$>CJ}$XvW65Hx7xn*t#LDG(8e z3Y--GaKdQEh&QXn&TmMsU{B(DrA!;=%POap$T$QY!G0<@8lsNkK3DRhG9=f!JknJ8f zoKCkze*RdzMDw;*sr66r=1`zI=e5&Svz}Bf-R!n1)h$=;%-{#YlDhScWje`qdX|iD zOsQuBKuGh=NYl(nv&%@M%1EQhNVCXD)5l2D#z@1(NW;WP)5A#9!bsD>NaMgrGXR*= zs`IImAg%uu4ydlLiOmwKkKtkESKNGw)hEO>d_%t@Z1a+qT0f9+4od4sM2wteX6FRImE$IEIdruWs{^y0@9`kNSq-EdALYG z2QW)8>fthh^bjKmdsrkG^RPq^@vv;aeLMmWQ0-Nvt@f*W{X5kZ{nY;qcb>w}Bo|L!X(VZ(wUe{b_A0NCc9?OZ<1Nw>^V*`yKDA5XPA9%hB)pbvw~?bn`LI3 zqs%TdE1Hs7jM<(UX12(zWR5XgVzzHam@PlY7f-RGuC3Q4TNtPR0fecurs=xop<@Mt ydM1Qj7}RT{IH3#ujy!(A7=EI6)z2{TgyLS%>*+5{;1zX*uYb+Qcu4ttaQ^{peu19= literal 0 HcmV?d00001 diff --git a/kotiki-java/owners/core/src/main/java/ru/itmo/kotiki/config/RabbitConfig.java b/kotiki-java/owners/core/src/main/java/ru/itmo/kotiki/config/RabbitConfig.java deleted file mode 100644 index b648578..0000000 --- a/kotiki-java/owners/core/src/main/java/ru/itmo/kotiki/config/RabbitConfig.java +++ /dev/null @@ -1,8 +0,0 @@ -package ru.itmo.kotiki.config; - -import org.springframework.context.annotation.Configuration; - -@Configuration -public class RabbitConfig { - -} diff --git a/kotiki-java/owners/core/src/main/java/ru/itmo/kotiki/owners/config/RabbitConfig.java b/kotiki-java/owners/core/src/main/java/ru/itmo/kotiki/owners/config/RabbitConfig.java new file mode 100644 index 0000000..1e97c5f --- /dev/null +++ b/kotiki-java/owners/core/src/main/java/ru/itmo/kotiki/owners/config/RabbitConfig.java @@ -0,0 +1,26 @@ +package ru.itmo.kotiki.owners.config; + +import org.springframework.amqp.core.Binding; +import org.springframework.amqp.core.BindingBuilder; +import org.springframework.amqp.core.DirectExchange; +import org.springframework.amqp.core.Queue; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; + +@Configuration +public class RabbitConfig { + @Bean + public DirectExchange catsDirectExchange() { + return new DirectExchange("owners-exchange"); + } + + @Bean + public Queue findOwnerById() { + return new Queue("findOwnerByIdQueue"); + } + + @Bean + public Binding bindFindOwnerById() { + return BindingBuilder.bind(findOwnerById()).to(catsDirectExchange()).with("findOwnerById"); + } +} diff --git a/kotiki-java/owners/core/src/main/java/ru/itmo/kotiki/owners/rabbitmq/RabbitMqReceiver.java b/kotiki-java/owners/core/src/main/java/ru/itmo/kotiki/owners/rabbitmq/RabbitMqReceiver.java new file mode 100644 index 0000000..3175a6d --- /dev/null +++ b/kotiki-java/owners/core/src/main/java/ru/itmo/kotiki/owners/rabbitmq/RabbitMqReceiver.java @@ -0,0 +1,5 @@ +package ru.itmo.kotiki.owners.rabbitmq; + +public class RabbitMqReceiver { + +} diff --git a/kotiki-java/owners/core/src/main/java/ru/itmo/kotiki/owners/service/OwnerService.java b/kotiki-java/owners/core/src/main/java/ru/itmo/kotiki/owners/service/OwnerService.java new file mode 100644 index 0000000..4ffa112 --- /dev/null +++ b/kotiki-java/owners/core/src/main/java/ru/itmo/kotiki/owners/service/OwnerService.java @@ -0,0 +1,8 @@ +package ru.itmo.kotiki.owners.service; + +import ru.itmo.kotiki.dto.OwnerDto; + +public interface OwnerService { + + OwnerDto findById(int ownerId); +} diff --git a/kotiki-java/owners/core/src/main/java/ru/itmo/kotiki/owners/service/OwnerServiceImpl.java b/kotiki-java/owners/core/src/main/java/ru/itmo/kotiki/owners/service/OwnerServiceImpl.java new file mode 100644 index 0000000..77a9f4e --- /dev/null +++ b/kotiki-java/owners/core/src/main/java/ru/itmo/kotiki/owners/service/OwnerServiceImpl.java @@ -0,0 +1,23 @@ +package ru.itmo.kotiki.owners.service; + +import org.springframework.amqp.rabbit.annotation.EnableRabbit; +import org.springframework.amqp.rabbit.annotation.RabbitListener; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import ru.itmo.kotiki.dto.OwnerDto; +import ru.itmo.kotiki.owners.repository.OwnerRepository; + +@EnableRabbit +@Service +public class OwnerServiceImpl implements OwnerService { + + @Autowired + public OwnerRepository ownerRepository; + + @Override + @RabbitListener(queues = "findOwnerByIdQueue") + public OwnerDto findById(int ownerId) { + return new OwnerDto(ownerRepository.getById(ownerId)); + } + +} diff --git a/kotiki-java/owners/core/src/main/java/ru/itmo/kotiki/service/OwnerService.java b/kotiki-java/owners/core/src/main/java/ru/itmo/kotiki/service/OwnerService.java deleted file mode 100644 index c044c0d..0000000 --- a/kotiki-java/owners/core/src/main/java/ru/itmo/kotiki/service/OwnerService.java +++ /dev/null @@ -1,5 +0,0 @@ -package ru.itmo.kotiki.service; - -public interface OwnerService { - -} diff --git a/kotiki-java/owners/core/src/main/java/ru/itmo/kotiki/service/OwnerServiceImpl.java b/kotiki-java/owners/core/src/main/java/ru/itmo/kotiki/service/OwnerServiceImpl.java deleted file mode 100644 index 93c08fc..0000000 --- a/kotiki-java/owners/core/src/main/java/ru/itmo/kotiki/service/OwnerServiceImpl.java +++ /dev/null @@ -1,8 +0,0 @@ -package ru.itmo.kotiki.service; - -import org.springframework.stereotype.Service; - -@Service -public class OwnerServiceImpl implements OwnerService { - -} diff --git a/kotiki-java/owners/core/src/main/resources/application.yml b/kotiki-java/owners/core/src/main/resources/application.yml index 3267642..1d134cf 100644 --- a/kotiki-java/owners/core/src/main/resources/application.yml +++ b/kotiki-java/owners/core/src/main/resources/application.yml @@ -1 +1,8 @@ -resourcesresources \ No newline at end of file +server: + port: 8082 +spring: + rabbitmq: + host: localhost + password: guest + port: 15672 + username: guest \ No newline at end of file diff --git a/kotiki-java/owners/core/target/classes/ru/itmo/kotiki/owners/config/RabbitConfig.class b/kotiki-java/owners/core/target/classes/ru/itmo/kotiki/owners/config/RabbitConfig.class new file mode 100644 index 0000000000000000000000000000000000000000..16728e1d3c11815278abe38f1c40acdccfdd7bf5 GIT binary patch literal 1760 zcmb7EYg5xe6g^7|!4O`d2*o#`w7i0f_$c65kQv5~jNmZC$FyC_(l)_lBk<9Gq+h_% z8GnF3%JFU}(qe~{&U82TX7}84Z|=Fj|NQs`U~P;ZlE0<41N3dXWOdSPRZKH z@AHCW=vWkvkjo6QRC-%OC&RSsl`Q|j6HaN@v#b2j^~#oA{d8azT#s9;!lR3Cj|zJP z!#klf^ty)*_xu@NbL!AwsF2+ZgQ?s_&@HJ@Gb&Io!`RhdUOr+Ae z7U*PjjNq1r+Xn97Ze*>p#G4Y%2BK2r9z#4&4u*27rC3pn8qvpBxi5udOW`_aSq2{W zh;Rb;4Lrao)v;hpzw!Gq%tdD2c!Lnf@leAf0~1IwWUnq;D?A zjl1avRISoGeq2|qP7LXo!nB4N1GBIgHm;XlWC-ekLm~GVGR<@m(H6B@W(Z`(EpifG zPB{F1P|b7iqn)pi$IQ6}yRvP2LfJKET=n+nA95CcNgjETW;VL_?l2D_SY+URt*=1g;oij zf9x<5VrHy6G*(tBw(oOFY_O?_7)BdguUYeu#1b@Z)h`aF<}IyrWLdN`+S?~j!M@Q$ z8y?fDUISftLaT9h08cSb7E@}aQ|j_OV&OaeC$t^&#wohKlD8hArw&1{Av~iq3V$I) zqv7~JTF;KzcM9_|+CU`QbG)dbEz_=YNKBq!;5(AE-8;dUnLfefW!&L9+(Z+WF}w`( adWCcD8L}7YZ&H+Tnz~C!k~BxKjO1StUg={1 literal 0 HcmV?d00001 diff --git a/kotiki-java/owners/core/target/classes/ru/itmo/kotiki/owners/rabbitmq/RabbitMqReceiver.class b/kotiki-java/owners/core/target/classes/ru/itmo/kotiki/owners/rabbitmq/RabbitMqReceiver.class new file mode 100644 index 0000000000000000000000000000000000000000..60aeff9c68ed69a7d2facc649b32e6be051fdc16 GIT binary patch literal 335 zcmb79yG{c^3>@Dh2S*?g5+6VZ6s)LuG)PnjkpfD;d#u38(|O_V?q2lBHI(7Ol; XO2Ie=QtSy1`#zVtFN|;?m|*k^w{TGm literal 0 HcmV?d00001 diff --git a/kotiki-java/owners/core/target/classes/ru/itmo/kotiki/owners/service/OwnerService.class b/kotiki-java/owners/core/target/classes/ru/itmo/kotiki/owners/service/OwnerService.class new file mode 100644 index 0000000000000000000000000000000000000000..92061fb5fae3a434308e5595981a652af4d245ef GIT binary patch literal 189 zcmX^0Z`VEs1_oOOPId++Mh2~-QvJ-5+T3vdrXEeSZ)) z7{Xy^U}0ns$Vx0r)Xz!GOV{^L%1TWxVPxP)%gjr0s`N}@WKhuX)bv3!F{LCQVvI{k zzBMBQS8#r5QF5wVW=<+2gCMf`dLX0O7#SEDn1K#tU|0^TVtm@R(>l=Zl-XGb|4I`R zyd=hFf0XgeZUapvBs}cQo;l}y=R22~KYxGx0`MGaMI=LgtwYlzl-M$gk{p7$VG@NGRLZVozJOr$pUqQ8^5xd2RJDvKaA@%i$6(6IT07 zwKEGvD9wSY$;4|r5lZb&i!d5nY{`xemDT2muwFhJ!<^V8FsDAnEXFYIVIqesm?Vs! zCRGZoY)V7$4*XUmD-FVQzO+*Q&!RYjXgxRequ&OP0RH&*g zxe)}~`c~;6Bs?i=(-dLHsG!*}ep?=DvnQ(34?@xKYpzkkKXDKnk=2LF$a;~Ge#HrJ zU&|_xZ=-fqn)g1#6DG>K=C^iyqnzA5OxsV2QR`M(}R%Snvk!02rjzYyvxa0B8of5L! zIx;o+M!B4)Vr|dBue!k_JiQ2k&A=5bp~2zvXZkWbBegy1NYM>f#1h}l6bOs_k-ML~ z-sEQ>!}~4XosM4tUT?D`cqiTm3&)@@vHA|LP7UO+9Ivqf?jp|;VFd*San5C=`45=+ z3GYMUD~9L4Ve~tuQuvMeV_g5tx)e_FCS$zm#HWkL-nfVRjO$1`vJd!M{Rj$~TncM3 O#=}_a5?g2a5%3SLV_2pD literal 0 HcmV?d00001 diff --git a/kotiki-java/owners/data/src/main/java/ru/itmo/kotiki/repository/OwnerRepository.java b/kotiki-java/owners/data/src/main/java/ru/itmo/kotiki/owners/repository/OwnerRepository.java similarity index 84% rename from kotiki-java/owners/data/src/main/java/ru/itmo/kotiki/repository/OwnerRepository.java rename to kotiki-java/owners/data/src/main/java/ru/itmo/kotiki/owners/repository/OwnerRepository.java index 7c4b2aa..16c4bfb 100644 --- a/kotiki-java/owners/data/src/main/java/ru/itmo/kotiki/repository/OwnerRepository.java +++ b/kotiki-java/owners/data/src/main/java/ru/itmo/kotiki/owners/repository/OwnerRepository.java @@ -1,4 +1,4 @@ -package ru.itmo.kotiki.repository; +package ru.itmo.kotiki.owners.repository; import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.stereotype.Repository; diff --git a/kotiki-java/owners/data/target/classes/ru/itmo/kotiki/owners/repository/OwnerRepository.class b/kotiki-java/owners/data/target/classes/ru/itmo/kotiki/owners/repository/OwnerRepository.class new file mode 100644 index 0000000000000000000000000000000000000000..13f40aca09c15f777e67fc53cd1e9c2fedcf3fed GIT binary patch literal 436 zcmbVJ%}N7749-;T+N$8ei_cInUOcS|UIb;K(1Q1A8<*Li$&$%h>Z5t^0emQNYQdJp zQxExvFW;AZeSdrcz#W_=&@*r?Ejq0kOIBAp}8xLHLH-m_YD t?1O>Pzf^;g5bLTT+^SCFy$l>gJBr_cm?hEo;1~wKaR?_d_T&5%;0HEGjaUEx literal 0 HcmV?d00001 diff --git a/kotiki-java/user-interface/core/pom.xml b/kotiki-java/user-interface/core/pom.xml index a05aa88..07fda7f 100644 --- a/kotiki-java/user-interface/core/pom.xml +++ b/kotiki-java/user-interface/core/pom.xml @@ -19,6 +19,11 @@ ui-data 1.0-SNAPSHOT + + org.springframework.amqp + spring-rabbit + 2.4.4 + \ No newline at end of file diff --git a/kotiki-java/user-interface/core/src/main/java/ru/itmo/kotiki/config/RabbitConfig.java b/kotiki-java/user-interface/core/src/main/java/ru/itmo/kotiki/config/RabbitConfig.java deleted file mode 100644 index b648578..0000000 --- a/kotiki-java/user-interface/core/src/main/java/ru/itmo/kotiki/config/RabbitConfig.java +++ /dev/null @@ -1,8 +0,0 @@ -package ru.itmo.kotiki.config; - -import org.springframework.context.annotation.Configuration; - -@Configuration -public class RabbitConfig { - -} diff --git a/kotiki-java/user-interface/core/src/main/java/ru/itmo/kotiki/service/UserService.java b/kotiki-java/user-interface/core/src/main/java/ru/itmo/kotiki/service/UserService.java deleted file mode 100644 index 1f8c380..0000000 --- a/kotiki-java/user-interface/core/src/main/java/ru/itmo/kotiki/service/UserService.java +++ /dev/null @@ -1,20 +0,0 @@ -package ru.itmo.kotiki.service; - -import java.util.List; -import ru.itmo.kotiki.dto.UserDto; - -public interface UserService { - void registrationUser(UserDto userDto); - - UserDto findByUserId(int id); - - UserDto findByOwnerId(int id); - - UserDto findByUsername(String username); - - void deleteByUserId (int id); - - void deleteByOwnerId (int id); - - List getUsers(); -} diff --git a/kotiki-java/user-interface/core/src/main/java/ru/itmo/kotiki/ui/rabbitmq/RabbitMqSender.java b/kotiki-java/user-interface/core/src/main/java/ru/itmo/kotiki/ui/rabbitmq/RabbitMqSender.java new file mode 100644 index 0000000..3c78253 --- /dev/null +++ b/kotiki-java/user-interface/core/src/main/java/ru/itmo/kotiki/ui/rabbitmq/RabbitMqSender.java @@ -0,0 +1,6 @@ +package ru.itmo.kotiki.ui.rabbitmq; + +public class RabbitMqSender { + + +} diff --git a/kotiki-java/user-interface/core/src/main/java/ru/itmo/kotiki/ui/service/UserService.java b/kotiki-java/user-interface/core/src/main/java/ru/itmo/kotiki/ui/service/UserService.java new file mode 100644 index 0000000..e548a6f --- /dev/null +++ b/kotiki-java/user-interface/core/src/main/java/ru/itmo/kotiki/ui/service/UserService.java @@ -0,0 +1,17 @@ +package ru.itmo.kotiki.ui.service; + +import java.util.List; +import ru.itmo.kotiki.dto.OwnerDto; +import ru.itmo.kotiki.dto.UserDto; + +public interface UserService { + void registrationUser(UserDto userDto, OwnerDto ownerDto); + + UserDto findById(int id); + + UserDto findByUsername(String username); + + void deleteById(int id); + + List getUsers(); +} diff --git a/kotiki-java/user-interface/core/src/main/java/ru/itmo/kotiki/service/UserServiceImpl.java b/kotiki-java/user-interface/core/src/main/java/ru/itmo/kotiki/ui/service/UserServiceImpl.java similarity index 66% rename from kotiki-java/user-interface/core/src/main/java/ru/itmo/kotiki/service/UserServiceImpl.java rename to kotiki-java/user-interface/core/src/main/java/ru/itmo/kotiki/ui/service/UserServiceImpl.java index 49c5d56..b0263f4 100644 --- a/kotiki-java/user-interface/core/src/main/java/ru/itmo/kotiki/service/UserServiceImpl.java +++ b/kotiki-java/user-interface/core/src/main/java/ru/itmo/kotiki/ui/service/UserServiceImpl.java @@ -1,13 +1,16 @@ -package ru.itmo.kotiki.service; +package ru.itmo.kotiki.ui.service; import java.util.ArrayList; import java.util.List; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import ru.itmo.kotiki.dto.OwnerDto; import ru.itmo.kotiki.dto.UserDto; import ru.itmo.kotiki.model.Owner; import ru.itmo.kotiki.model.Role; import ru.itmo.kotiki.model.User; +import ru.itmo.kotiki.ui.repository.RoleRepository; +import ru.itmo.kotiki.ui.repository.UserRepository; @Service public class UserServiceImpl implements UserService{ @@ -22,8 +25,8 @@ public class UserServiceImpl implements UserService{ private RoleRepository roleRepository; @Override - public void registrationUser(UserDto userDto) { - Owner owner = ownerRepository.save(new Owner(userDto.getName(), userDto.getDateOfBirth())); + public void registrationUser(UserDto userDto, OwnerDto ownerDto) { + Owner owner = ownerRepository.save(new Owner(ownerDto.getName(), ownerDto.getDateOfBirth())); List roles = new ArrayList<>(); for(String role : userDto.getRoles()) { @@ -38,40 +41,28 @@ public void registrationUser(UserDto userDto) { } @Override - public UserDto findByUserId(int id) { + public UserDto findById(int id) { User user = userRepository.getById(id); - return new UserDto(user, user.getOwner()); - } - - @Override - public UserDto findByOwnerId(int id) { - Owner owner = ownerRepository.getById(id); - return new UserDto(owner.getUser(), owner); + return new UserDto(user); } @Override public UserDto findByUsername(String username) { User user = userRepository.findByUsername(username); - return new UserDto(user, user.getOwner()); + return new UserDto(user); } @Override - public void deleteByUserId(int id) { + public void deleteById(int id) { userRepository.deleteById(id); } - @Override - public void deleteByOwnerId(int id) { - ownerRepository.getById(id); - } - - @Override public List getUsers() { List users = userRepository.findAll(); List usersDto = new ArrayList<>(); for(User user : users) { - usersDto.add(new UserDto(user, user.getOwner())); + usersDto.add(new UserDto(user)); } return usersDto; diff --git a/kotiki-java/user-interface/core/src/main/resources/application.yml b/kotiki-java/user-interface/core/src/main/resources/application.yml index e69de29..b179e1a 100644 --- a/kotiki-java/user-interface/core/src/main/resources/application.yml +++ b/kotiki-java/user-interface/core/src/main/resources/application.yml @@ -0,0 +1,8 @@ +server: + port: 8083 +spring: + rabbitmq: + host: localhost + password: guest + port: 15672 + username: guest \ No newline at end of file diff --git a/kotiki-java/user-interface/data/src/main/java/ru/itmo/kotiki/repository/RoleRepository.java b/kotiki-java/user-interface/data/src/main/java/ru/itmo/kotiki/ui/repository/RoleRepository.java similarity index 84% rename from kotiki-java/user-interface/data/src/main/java/ru/itmo/kotiki/repository/RoleRepository.java rename to kotiki-java/user-interface/data/src/main/java/ru/itmo/kotiki/ui/repository/RoleRepository.java index c69488d..36e6c35 100644 --- a/kotiki-java/user-interface/data/src/main/java/ru/itmo/kotiki/repository/RoleRepository.java +++ b/kotiki-java/user-interface/data/src/main/java/ru/itmo/kotiki/ui/repository/RoleRepository.java @@ -1,4 +1,4 @@ -package ru.itmo.kotiki.repository; +package ru.itmo.kotiki.ui.repository; import org.springframework.data.jpa.repository.JpaRepository; import ru.itmo.kotiki.model.Role; diff --git a/kotiki-java/user-interface/data/src/main/java/ru/itmo/kotiki/repository/UserRepository.java b/kotiki-java/user-interface/data/src/main/java/ru/itmo/kotiki/ui/repository/UserRepository.java similarity index 87% rename from kotiki-java/user-interface/data/src/main/java/ru/itmo/kotiki/repository/UserRepository.java rename to kotiki-java/user-interface/data/src/main/java/ru/itmo/kotiki/ui/repository/UserRepository.java index f041de8..b8d8fe7 100644 --- a/kotiki-java/user-interface/data/src/main/java/ru/itmo/kotiki/repository/UserRepository.java +++ b/kotiki-java/user-interface/data/src/main/java/ru/itmo/kotiki/ui/repository/UserRepository.java @@ -1,4 +1,4 @@ -package ru.itmo.kotiki.repository; +package ru.itmo.kotiki.ui.repository; import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.stereotype.Repository; diff --git a/kotiki-java/user-interface/pom.xml b/kotiki-java/user-interface/pom.xml index 7a25910..22cb8b9 100644 --- a/kotiki-java/user-interface/pom.xml +++ b/kotiki-java/user-interface/pom.xml @@ -25,11 +25,15 @@ models 1.0-SNAPSHOT - - org.springframework.amqp - spring-rabbit - 2.4.4 + ru.itmo.kotiki.owners + owners + 1.0-SNAPSHOT + + + ru.itmo.kotiki.cats + cats + 1.0-SNAPSHOT diff --git a/kotiki-java/user-interface/web/pom.xml b/kotiki-java/user-interface/web/pom.xml index 78a9470..7a1c9d6 100644 --- a/kotiki-java/user-interface/web/pom.xml +++ b/kotiki-java/user-interface/web/pom.xml @@ -58,6 +58,11 @@ org.springframework.boot spring-boot-starter-security + + org.springframework.amqp + spring-rabbit + 2.4.4 + diff --git a/kotiki-java/user-interface/web/src/main/java/ru/itmo/kotiki/controller/OwnerController.java b/kotiki-java/user-interface/web/src/main/java/ru/itmo/kotiki/controller/OwnerController.java deleted file mode 100644 index 8081f1f..0000000 --- a/kotiki-java/user-interface/web/src/main/java/ru/itmo/kotiki/controller/OwnerController.java +++ /dev/null @@ -1,5 +0,0 @@ -package ru.itmo.kotiki.controller; - -public class OwnerController { - -} diff --git a/kotiki-java/user-interface/web/src/main/java/ru/itmo/kotiki/WebApplication.java b/kotiki-java/user-interface/web/src/main/java/ru/itmo/kotiki/ui/WebApplication.java similarity index 67% rename from kotiki-java/user-interface/web/src/main/java/ru/itmo/kotiki/WebApplication.java rename to kotiki-java/user-interface/web/src/main/java/ru/itmo/kotiki/ui/WebApplication.java index 98d5ebb..289e3e4 100644 --- a/kotiki-java/user-interface/web/src/main/java/ru/itmo/kotiki/WebApplication.java +++ b/kotiki-java/user-interface/web/src/main/java/ru/itmo/kotiki/ui/WebApplication.java @@ -1,4 +1,4 @@ -package ru.itmo.kotiki; +package ru.itmo.kotiki.ui; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; @@ -7,14 +7,14 @@ import org.springframework.data.jpa.repository.config.EnableJpaRepositories; @SpringBootApplication -@EnableJpaRepositories(basePackages = {"ru.itmo.kotiki.repository"}) +@EnableJpaRepositories(basePackages = {"ru.itmo.kotiki.ui.repository"}) @EntityScan(basePackages = {"ru.itmo.kotiki"}) @ComponentScan({ - "ru.itmo.kotiki.repository", - "ru.itmo.kotiki.service", - "ru.itmo.kotiki.controller", - "ru.itmo.kotiki.security", - "ru.itmo.kotiki.config"}) + "ru.itmo.kotiki.ui.repository", + "ru.itmo.kotiki.ui.service", + "ru.itmo.kotiki.ui.controller", + "ru.itmo.kotiki.ui.security", + "ru.itmo.kotiki.ui.config"}) public class WebApplication { public static void main(String[] args) { diff --git a/kotiki-java/user-interface/web/src/main/java/ru/itmo/kotiki/ui/config/RabbitConfig.java b/kotiki-java/user-interface/web/src/main/java/ru/itmo/kotiki/ui/config/RabbitConfig.java new file mode 100644 index 0000000..ef5cfd5 --- /dev/null +++ b/kotiki-java/user-interface/web/src/main/java/ru/itmo/kotiki/ui/config/RabbitConfig.java @@ -0,0 +1,43 @@ +package ru.itmo.kotiki.ui.config; + +import org.springframework.amqp.rabbit.connection.CachingConnectionFactory; +import org.springframework.amqp.rabbit.connection.ConnectionFactory; +import org.springframework.amqp.rabbit.core.RabbitTemplate; +import org.springframework.amqp.support.converter.Jackson2JsonMessageConverter; +import org.springframework.amqp.support.converter.MessageConverter; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; + +@Configuration +public class RabbitConfig { + + @Value("${spring.rabbitmq.host}") + String host; + + @Value("${spring.rabbitmq.username}") + String username; + + @Value("${spring.rabbitmq.password}") + String password; + + @Bean + CachingConnectionFactory connectionFactory() { + CachingConnectionFactory cachingConnectionFactory = new CachingConnectionFactory(host); + cachingConnectionFactory.setUsername(username); + cachingConnectionFactory.setPassword(password); + return cachingConnectionFactory; + } + + @Bean + public MessageConverter jsonMessageConverter() { + return new Jackson2JsonMessageConverter(); + } + + @Bean + public RabbitTemplate rabbitTemplate(ConnectionFactory connectionFactory) { + final RabbitTemplate rabbitTemplate = new RabbitTemplate(connectionFactory); + rabbitTemplate.setMessageConverter(jsonMessageConverter()); + return rabbitTemplate; + } +} diff --git a/kotiki-java/user-interface/web/src/main/java/ru/itmo/kotiki/config/WebSecurityConfig.java b/kotiki-java/user-interface/web/src/main/java/ru/itmo/kotiki/ui/config/WebSecurityConfig.java similarity index 98% rename from kotiki-java/user-interface/web/src/main/java/ru/itmo/kotiki/config/WebSecurityConfig.java rename to kotiki-java/user-interface/web/src/main/java/ru/itmo/kotiki/ui/config/WebSecurityConfig.java index b8de712..49a5059 100644 --- a/kotiki-java/user-interface/web/src/main/java/ru/itmo/kotiki/config/WebSecurityConfig.java +++ b/kotiki-java/user-interface/web/src/main/java/ru/itmo/kotiki/ui/config/WebSecurityConfig.java @@ -1,4 +1,4 @@ -package ru.itmo.kotiki.config; +package ru.itmo.kotiki.ui.config; import javax.sql.DataSource; diff --git a/kotiki-java/user-interface/web/src/main/java/ru/itmo/kotiki/controller/AdminController.java b/kotiki-java/user-interface/web/src/main/java/ru/itmo/kotiki/ui/controller/AdminController.java similarity index 77% rename from kotiki-java/user-interface/web/src/main/java/ru/itmo/kotiki/controller/AdminController.java rename to kotiki-java/user-interface/web/src/main/java/ru/itmo/kotiki/ui/controller/AdminController.java index e77b968..e4f955f 100644 --- a/kotiki-java/user-interface/web/src/main/java/ru/itmo/kotiki/controller/AdminController.java +++ b/kotiki-java/user-interface/web/src/main/java/ru/itmo/kotiki/ui/controller/AdminController.java @@ -1,4 +1,4 @@ -package ru.itmo.kotiki.controller; +package ru.itmo.kotiki.ui.controller; import java.util.List; import org.springframework.beans.factory.annotation.Autowired; @@ -9,8 +9,9 @@ import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; +import ru.itmo.kotiki.dto.OwnerDto; import ru.itmo.kotiki.dto.UserDto; -import ru.itmo.kotiki.service.UserService; +import ru.itmo.kotiki.ui.service.UserService; @RestController @RequestMapping("/admin") @@ -20,18 +21,18 @@ public class AdminController { private UserService userService; @PostMapping("/registrationUser") - public void registrationUser(@RequestBody UserDto userDto) { - userService.registrationUser(userDto); + public void registrationUser(@RequestBody UserDto userDto, @RequestBody OwnerDto ownerDto) { + userService.registrationUser(userDto, ownerDto); } @GetMapping(value = "/byUserId/{id}") public UserDto getOwner(@PathVariable int id) { - return userService.findByUserId(id); + return userService.findById(id); } @GetMapping(value = "/byOwnerId/{id}") public UserDto findByOwnerId(@PathVariable int id) { - return userService.findByOwnerId(id); + return userService.findById(id); } @GetMapping(value = "/byUsername/{username}") @@ -41,12 +42,12 @@ public UserDto findByUsername(@PathVariable String username) { @DeleteMapping("/byUserId/{id}") public void deleteByUserId(@PathVariable int id) { - userService.deleteByUserId(id); + userService.deleteById(id); } @DeleteMapping("/byOwnerId/{id}") public void deleteByOwnerId(@PathVariable int id) { - userService.deleteByOwnerId(id); + userService.deleteById(id); } @GetMapping(value = "/getAll", produces = "application/json") diff --git a/kotiki-java/user-interface/web/src/main/java/ru/itmo/kotiki/controller/CatController.java b/kotiki-java/user-interface/web/src/main/java/ru/itmo/kotiki/ui/controller/CatController.java similarity index 66% rename from kotiki-java/user-interface/web/src/main/java/ru/itmo/kotiki/controller/CatController.java rename to kotiki-java/user-interface/web/src/main/java/ru/itmo/kotiki/ui/controller/CatController.java index 956f333..06a517a 100644 --- a/kotiki-java/user-interface/web/src/main/java/ru/itmo/kotiki/controller/CatController.java +++ b/kotiki-java/user-interface/web/src/main/java/ru/itmo/kotiki/ui/controller/CatController.java @@ -1,7 +1,8 @@ -package ru.itmo.kotiki.controller; +package ru.itmo.kotiki.ui.controller; import java.util.List; import org.h2.security.auth.AuthenticationException; +import org.springframework.amqp.rabbit.core.RabbitTemplate; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.security.authentication.AnonymousAuthenticationToken; import org.springframework.security.core.Authentication; @@ -15,21 +16,29 @@ import org.springframework.web.bind.annotation.RestController; import ru.itmo.kotiki.dto.CatDto; import ru.itmo.kotiki.exception.ValidationException; +import ru.itmo.kotiki.ui.rabbitmq.RabbitMqSender; +import ru.itmo.kotiki.ui.security.JwtUserDetails; @RestController -@RequestMapping("/myCat") +@RequestMapping("/myCats") public class CatController { @Autowired - private CatService catService; + private RabbitTemplate rabbitTemplate; + + @Autowired + private RabbitMqSender rabbitMqSender; @PostMapping("/save") public CatDto save(@RequestBody CatDto catDto) throws ValidationException, AuthenticationException { Authentication authentication = SecurityContextHolder.getContext().getAuthentication(); if (!(authentication instanceof AnonymousAuthenticationToken)) { - String currentUsername = authentication.getName(); - return catService.save(currentUsername, catDto); + JwtUserDetails jwtUserDetails = (JwtUserDetails) authentication.getPrincipal(); + int ownerId = jwtUserDetails.getOwnerId(); + + return rabbitTemplate.convertSendAndReceive("saveCat", ownerId, catDto); + return catService.save(ownerId, catDto); } throw new AuthenticationException("403"); } @@ -38,8 +47,9 @@ public CatDto save(@RequestBody CatDto catDto) throws ValidationException, Authe public void deleteById(@PathVariable Integer id) { Authentication authentication = SecurityContextHolder.getContext().getAuthentication(); if (!(authentication instanceof AnonymousAuthenticationToken)) { - String currentUsername = authentication.getName(); - catService.deleteById(currentUsername, id); + JwtUserDetails jwtUserDetails = (JwtUserDetails) authentication.getPrincipal(); + int ownerId = jwtUserDetails.getOwnerId(); + catService.deleteById(ownerId, id); } } @@ -47,8 +57,9 @@ public void deleteById(@PathVariable Integer id) { public CatDto findById(@PathVariable int id) throws AuthenticationException { Authentication authentication = SecurityContextHolder.getContext().getAuthentication(); if (!(authentication instanceof AnonymousAuthenticationToken)) { - String currentUsername = authentication.getName(); - return catService.findById(currentUsername, id); + JwtUserDetails jwtUserDetails = (JwtUserDetails) authentication.getPrincipal(); + int ownerId = jwtUserDetails.getOwnerId(); + return catService.findById(ownerId, id); } throw new AuthenticationException("403"); } @@ -58,8 +69,9 @@ public List findAll() throws AuthenticationException { Authentication authentication = SecurityContextHolder.getContext().getAuthentication(); if (!(authentication instanceof AnonymousAuthenticationToken)) { - String currentUsername = authentication.getName(); - return catService.findAllByOwner(currentUsername); + JwtUserDetails jwtUserDetails = (JwtUserDetails) authentication.getPrincipal(); + int ownerId = jwtUserDetails.getOwnerId(); + return catService.findAllByOwner(ownerId); } throw new AuthenticationException("403"); } diff --git a/kotiki-java/user-interface/web/src/main/java/ru/itmo/kotiki/ui/controller/OwnerController.java b/kotiki-java/user-interface/web/src/main/java/ru/itmo/kotiki/ui/controller/OwnerController.java new file mode 100644 index 0000000..b5464ff --- /dev/null +++ b/kotiki-java/user-interface/web/src/main/java/ru/itmo/kotiki/ui/controller/OwnerController.java @@ -0,0 +1,39 @@ +package ru.itmo.kotiki.ui.controller; + +import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.databind.ObjectMapper; +import org.h2.security.auth.AuthenticationException; +import org.springframework.amqp.rabbit.core.RabbitTemplate; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.ResponseEntity; +import org.springframework.security.authentication.AnonymousAuthenticationToken; +import org.springframework.security.core.Authentication; +import org.springframework.security.core.context.SecurityContextHolder; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; +import ru.itmo.kotiki.dto.OwnerDto; +import ru.itmo.kotiki.ui.security.JwtUserDetails; + +@RestController +@RequestMapping("/myAccount") +public class OwnerController { + + @Autowired + private RabbitTemplate rabbitTemplate; + + @Autowired + private ObjectMapper objectMapper; + + @GetMapping(value = "/getMyInfo") + public ResponseEntity findOwner() throws AuthenticationException, JsonProcessingException { + Authentication authentication = SecurityContextHolder.getContext().getAuthentication(); + if (!(authentication instanceof AnonymousAuthenticationToken)) { + JwtUserDetails jwtUserDetails = (JwtUserDetails) authentication.getPrincipal(); + OwnerDto ownerDto = new OwnerDto(jwtUserDetails.getOwnerId(), null, null, null, jwtUserDetails.getId()); + String rabbitResponse = (String) rabbitTemplate.convertSendAndReceive("ownerQueue", objectMapper.writeValueAsString(ownerDto)); + return ResponseEntity.ok(objectMapper.readValue(rabbitResponse, OwnerDto.class)); + } + throw new AuthenticationException("403"); + } +} diff --git a/kotiki-java/user-interface/web/src/main/java/ru/itmo/kotiki/ui/rabbitmq/RabbitMqSender.java b/kotiki-java/user-interface/web/src/main/java/ru/itmo/kotiki/ui/rabbitmq/RabbitMqSender.java new file mode 100644 index 0000000..d73d50d --- /dev/null +++ b/kotiki-java/user-interface/web/src/main/java/ru/itmo/kotiki/ui/rabbitmq/RabbitMqSender.java @@ -0,0 +1,5 @@ +package ru.itmo.kotiki.ui.rabbitmq; + +public class RabbitMqSender { + +} diff --git a/kotiki-java/user-interface/web/src/main/java/ru/itmo/kotiki/security/JwtUserDetails.java b/kotiki-java/user-interface/web/src/main/java/ru/itmo/kotiki/ui/security/JwtUserDetails.java similarity index 97% rename from kotiki-java/user-interface/web/src/main/java/ru/itmo/kotiki/security/JwtUserDetails.java rename to kotiki-java/user-interface/web/src/main/java/ru/itmo/kotiki/ui/security/JwtUserDetails.java index bfc99fb..050504f 100644 --- a/kotiki-java/user-interface/web/src/main/java/ru/itmo/kotiki/security/JwtUserDetails.java +++ b/kotiki-java/user-interface/web/src/main/java/ru/itmo/kotiki/ui/security/JwtUserDetails.java @@ -1,4 +1,4 @@ -package ru.itmo.kotiki.security; +package ru.itmo.kotiki.ui.security; import java.util.ArrayList; import java.util.Collection; diff --git a/kotiki-java/user-interface/web/src/main/resources/application.properties b/kotiki-java/user-interface/web/src/main/resources/application.properties new file mode 100644 index 0000000..a3bfe38 --- /dev/null +++ b/kotiki-java/user-interface/web/src/main/resources/application.properties @@ -0,0 +1,8 @@ +spring.datasource.url=jdbc:postgresql://localhost:5432/postgres +spring.datasource.username=postgres +spring.datasource.password=637804275 +spring.datasource.driver-class-name=org.postgresql.Driver +spring.datasource.hikari.jdbc-url=jdbc:postgresql://localhost:5432/postgres +spring.datasource.hikari.username=postgres +spring.datasource.hikari.password=637804275 +spring.jpa.properties.hibernate.dialect = org.hibernate.dialect.PostgreSQLDialect \ No newline at end of file From e884d7495d08256a566f6d3aa249955c979de368 Mon Sep 17 00:00:00 2001 From: FuchsbauFox Date: Tue, 21 Jun 2022 12:49:42 +0300 Subject: [PATCH 3/3] feat: some new realization --- .../itmo/kotiki/cats/config/RabbitConfig.java | 4 +- .../kotiki/cats/rabbitmq/RabbiMqReceiver.java | 5 --- .../kotiki/cats/rabbitmq/RabbitMqSender.java | 9 ----- .../itmo/kotiki/cats/service/CatService.java | 8 ++-- .../kotiki/cats/service/CatServiceImpl.java | 37 +++++++++++------- .../java/ru/itmo/kotiki/dto/OwnerDto.java | 29 ++------------ .../main/java/ru/itmo/kotiki/dto/UserDto.java | 17 +------- .../ru/itmo/kotiki/entity/CatDtoOwnerId.java | 21 ++++++++++ .../ru/itmo/kotiki/entity/CatOwnerId.java | 21 ++++++++++ .../ru/itmo/kotiki/entity/OwnerIdCatId.java | 19 +++++++++ .../main/java/ru/itmo/kotiki/model/Owner.java | 4 ++ .../classes/ru/itmo/kotiki/dto/OwnerDto.class | Bin 2191 -> 1296 bytes .../classes/ru/itmo/kotiki/dto/UserDto.class | Bin 2225 -> 1849 bytes .../ru/itmo/kotiki/entity/CatDtoOwnerId.class | Bin 0 -> 658 bytes .../ru/itmo/kotiki/entity/CatOwnerId.class | Bin 0 -> 640 bytes .../ru/itmo/kotiki/entity/OwnerIdCatId.class | Bin 0 -> 565 bytes .../classes/ru/itmo/kotiki/model/Owner.class | Bin 3137 -> 3355 bytes .../kotiki/owners/config/RabbitConfig.java | 24 +++++++++++- .../owners/rabbitmq/RabbitMqReceiver.java | 5 --- .../kotiki/owners/service/OwnerService.java | 5 +++ .../owners/service/OwnerServiceImpl.java | 15 +++++++ .../itmo/kotiki/ui/config/RabbitConfig.java | 0 .../kotiki/ui/rabbitmq/RabbitMqSender.java | 6 --- .../kotiki/ui/service/UserServiceImpl.java | 6 +-- .../itmo/kotiki/ui/config/RabbitConfig.class | Bin 0 -> 2092 bytes .../itmo/kotiki/ui/service/UserService.class | Bin 0 -> 487 bytes .../kotiki/ui/service/UserServiceImpl.class | Bin 0 -> 3564 bytes .../kotiki/ui/repository/RoleRepository.class | Bin 0 -> 414 bytes .../kotiki/ui/repository/UserRepository.class | Bin 0 -> 504 bytes .../ru/itmo/kotiki/ui/WebApplication.java | 2 +- .../kotiki/ui/config/WebSecurityConfig.java | 2 +- .../kotiki/ui/controller/CatController.java | 22 +++++------ .../kotiki/ui/controller/OwnerController.java | 12 ++---- .../kotiki/ui/rabbitmq/RabbitMqSender.java | 5 --- 34 files changed, 158 insertions(+), 120 deletions(-) delete mode 100644 kotiki-java/cats/core/src/main/java/ru/itmo/kotiki/cats/rabbitmq/RabbiMqReceiver.java delete mode 100644 kotiki-java/cats/core/src/main/java/ru/itmo/kotiki/cats/rabbitmq/RabbitMqSender.java create mode 100644 kotiki-java/models/src/main/java/ru/itmo/kotiki/entity/CatDtoOwnerId.java create mode 100644 kotiki-java/models/src/main/java/ru/itmo/kotiki/entity/CatOwnerId.java create mode 100644 kotiki-java/models/src/main/java/ru/itmo/kotiki/entity/OwnerIdCatId.java create mode 100644 kotiki-java/models/target/classes/ru/itmo/kotiki/entity/CatDtoOwnerId.class create mode 100644 kotiki-java/models/target/classes/ru/itmo/kotiki/entity/CatOwnerId.class create mode 100644 kotiki-java/models/target/classes/ru/itmo/kotiki/entity/OwnerIdCatId.class delete mode 100644 kotiki-java/owners/core/src/main/java/ru/itmo/kotiki/owners/rabbitmq/RabbitMqReceiver.java rename kotiki-java/user-interface/{web => core}/src/main/java/ru/itmo/kotiki/ui/config/RabbitConfig.java (100%) delete mode 100644 kotiki-java/user-interface/core/src/main/java/ru/itmo/kotiki/ui/rabbitmq/RabbitMqSender.java create mode 100644 kotiki-java/user-interface/core/target/classes/ru/itmo/kotiki/ui/config/RabbitConfig.class create mode 100644 kotiki-java/user-interface/core/target/classes/ru/itmo/kotiki/ui/service/UserService.class create mode 100644 kotiki-java/user-interface/core/target/classes/ru/itmo/kotiki/ui/service/UserServiceImpl.class create mode 100644 kotiki-java/user-interface/data/target/classes/ru/itmo/kotiki/ui/repository/RoleRepository.class create mode 100644 kotiki-java/user-interface/data/target/classes/ru/itmo/kotiki/ui/repository/UserRepository.class delete mode 100644 kotiki-java/user-interface/web/src/main/java/ru/itmo/kotiki/ui/rabbitmq/RabbitMqSender.java diff --git a/kotiki-java/cats/core/src/main/java/ru/itmo/kotiki/cats/config/RabbitConfig.java b/kotiki-java/cats/core/src/main/java/ru/itmo/kotiki/cats/config/RabbitConfig.java index 4c9e221..5953ab3 100644 --- a/kotiki-java/cats/core/src/main/java/ru/itmo/kotiki/cats/config/RabbitConfig.java +++ b/kotiki-java/cats/core/src/main/java/ru/itmo/kotiki/cats/config/RabbitConfig.java @@ -17,7 +17,7 @@ public DirectExchange catsDirectExchange() { @Bean public Queue saveCat() { - return new Queue("saveQueue"); + return new Queue("saveCatQueue"); } @Bean @@ -36,7 +36,7 @@ public Queue findAllCatsByOwner() { } @Bean - public Binding bindSaveCatQueue() { + public Binding bindSaveCat() { return BindingBuilder.bind(saveCat()).to(catsDirectExchange()).with("saveCat"); } diff --git a/kotiki-java/cats/core/src/main/java/ru/itmo/kotiki/cats/rabbitmq/RabbiMqReceiver.java b/kotiki-java/cats/core/src/main/java/ru/itmo/kotiki/cats/rabbitmq/RabbiMqReceiver.java deleted file mode 100644 index cfd04d7..0000000 --- a/kotiki-java/cats/core/src/main/java/ru/itmo/kotiki/cats/rabbitmq/RabbiMqReceiver.java +++ /dev/null @@ -1,5 +0,0 @@ -package ru.itmo.kotiki.cats.rabbitmq; - -public class RabbiMqReceiver { - -} diff --git a/kotiki-java/cats/core/src/main/java/ru/itmo/kotiki/cats/rabbitmq/RabbitMqSender.java b/kotiki-java/cats/core/src/main/java/ru/itmo/kotiki/cats/rabbitmq/RabbitMqSender.java deleted file mode 100644 index 8162aaf..0000000 --- a/kotiki-java/cats/core/src/main/java/ru/itmo/kotiki/cats/rabbitmq/RabbitMqSender.java +++ /dev/null @@ -1,9 +0,0 @@ -package ru.itmo.kotiki.cats.rabbitmq; - -import org.springframework.amqp.rabbit.annotation.EnableRabbit; -import org.springframework.stereotype.Component; - -@EnableRabbit -@Component -public class RabbitMqSender { -} diff --git a/kotiki-java/cats/core/src/main/java/ru/itmo/kotiki/cats/service/CatService.java b/kotiki-java/cats/core/src/main/java/ru/itmo/kotiki/cats/service/CatService.java index 2dac098..fa5015d 100644 --- a/kotiki-java/cats/core/src/main/java/ru/itmo/kotiki/cats/service/CatService.java +++ b/kotiki-java/cats/core/src/main/java/ru/itmo/kotiki/cats/service/CatService.java @@ -2,15 +2,17 @@ import java.util.List; import ru.itmo.kotiki.dto.CatDto; +import ru.itmo.kotiki.entity.CatDtoOwnerId; +import ru.itmo.kotiki.entity.OwnerIdCatId; import ru.itmo.kotiki.exception.ValidationException; public interface CatService { - CatDto save(int ownerId, CatDto catDto) throws ValidationException; + CatDto save(CatDtoOwnerId catDto) throws ValidationException; - void deleteById(int ownerId, int id); + void deleteById(OwnerIdCatId ids); - CatDto findById(int ownerId, int id); + CatDto findById(OwnerIdCatId ids); List findAllByOwner(int ownerId); } diff --git a/kotiki-java/cats/core/src/main/java/ru/itmo/kotiki/cats/service/CatServiceImpl.java b/kotiki-java/cats/core/src/main/java/ru/itmo/kotiki/cats/service/CatServiceImpl.java index a4cc12d..cdabc21 100644 --- a/kotiki-java/cats/core/src/main/java/ru/itmo/kotiki/cats/service/CatServiceImpl.java +++ b/kotiki-java/cats/core/src/main/java/ru/itmo/kotiki/cats/service/CatServiceImpl.java @@ -4,11 +4,17 @@ import java.util.ArrayList; import java.util.List; +import java.util.Objects; import org.springframework.amqp.rabbit.annotation.EnableRabbit; import org.springframework.amqp.rabbit.annotation.RabbitListener; +import org.springframework.amqp.rabbit.core.RabbitTemplate; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import ru.itmo.kotiki.dto.CatDto; +import ru.itmo.kotiki.dto.OwnerDto; +import ru.itmo.kotiki.entity.CatDtoOwnerId; +import ru.itmo.kotiki.entity.CatOwnerId; +import ru.itmo.kotiki.entity.OwnerIdCatId; import ru.itmo.kotiki.model.Cat; import ru.itmo.kotiki.model.accessory.Color; import ru.itmo.kotiki.exception.ValidationException; @@ -21,30 +27,33 @@ public class CatServiceImpl implements CatService { @Autowired private CatRepository catRepository; + @Autowired + private RabbitTemplate rabbitTemplate; + @Override - @RabbitListener(queues = "saveQueue") - public CatDto save(int ownerId, CatDto catDto) throws ValidationException { - validateCatDto(catDto); - Cat cat = catDto.toCat(); - cat.setOwner(ownerRepository.); + @RabbitListener(queues = "saveCatQueue") + public CatDto save(CatDtoOwnerId catDto) throws ValidationException { + validateCatDto(catDto.getCatDto()); + Cat cat = catDto.getCatDto().toCat(); + rabbitTemplate.convertSendAndReceive("addCat", new CatOwnerId(cat, catDto.getOwnerId())); return new CatDto(catRepository.save(cat)); } @Override @RabbitListener(queues = "deleteByIdQueue") - public void deleteById(int ownerId, int id) { - if (userRepository.findByUsername(username).getOwner().getId() != catRepository.getById(id).getOwner().getId()){ - throw new ValidationException("Cat " + id + " not found"); + public void deleteById(OwnerIdCatId ids) { + if (ids.getOwnerId() != catRepository.getById(ids.getCatId()).getOwner().getId()){ + throw new ValidationException("Cat " + ids.getCatId() + " not found"); } - catRepository.deleteById(id); + catRepository.deleteById(ids.getCatId()); } @Override @RabbitListener(queues = "findByIdQueue") - public CatDto findById(int ownerId, int id) { - Cat cat = catRepository.getById(id); - if (userRepository.findByUsername(username).getOwner().getId() != cat.getOwner().getId()){ - throw new ValidationException("Cat " + id + " not found"); + public CatDto findById(OwnerIdCatId ids) { + Cat cat = catRepository.getById(ids.getCatId()); + if (ids.getOwnerId() != cat.getOwner().getId()){ + throw new ValidationException("Cat " + ids.getCatId() + " not found"); } return new CatDto(cat); } @@ -53,7 +62,7 @@ public CatDto findById(int ownerId, int id) { @RabbitListener(queues = "findAllByOwnerQueue") public List findAllByOwner(int ownerId) { List catsDto = new ArrayList<>(); - for(Cat cat : catRepository.findAllByOwnerId(userRepository.findByUsername(username).getOwner().getId())) { + for(Cat cat : catRepository.findAllByOwnerId(ownerId)) { catsDto.add(new CatDto(cat)); } return catsDto; diff --git a/kotiki-java/models/src/main/java/ru/itmo/kotiki/dto/OwnerDto.java b/kotiki-java/models/src/main/java/ru/itmo/kotiki/dto/OwnerDto.java index 8eac8b0..9ad1d77 100644 --- a/kotiki-java/models/src/main/java/ru/itmo/kotiki/dto/OwnerDto.java +++ b/kotiki-java/models/src/main/java/ru/itmo/kotiki/dto/OwnerDto.java @@ -1,40 +1,25 @@ package ru.itmo.kotiki.dto; -import java.util.ArrayList; import java.util.Date; import java.util.List; -import ru.itmo.kotiki.model.Cat; import ru.itmo.kotiki.model.Owner; public final class OwnerDto { - private final int id; private final String name; private final Date dateOfBirth; - private final List cats; - private final int userId; public OwnerDto(Owner owner) { - this.id = owner.getId(); this.name = owner.getName(); this.dateOfBirth = owner.getDateOfBirth(); - this.cats = new ArrayList<>(); - for(Cat cat : owner.getCats()) { - this.cats.add(new CatDto(cat)); - } - this.userId = owner.getUser().getId(); } - public OwnerDto(int id, String name, Date dateOfBirth, - List cats, int userId) { - this.id = id; + public OwnerDto(String name, Date dateOfBirth, List cats) { this.name = name; this.dateOfBirth = dateOfBirth; - this.cats = cats; - this.userId = userId; } - public int getId() { - return id; + public Owner toOwner() { + return new Owner(name, dateOfBirth); } public String getName() { @@ -44,12 +29,4 @@ public String getName() { public Date getDateOfBirth() { return dateOfBirth; } - - public List getCats() { - return cats; - } - - public int getUserId() { - return userId; - } } diff --git a/kotiki-java/models/src/main/java/ru/itmo/kotiki/dto/UserDto.java b/kotiki-java/models/src/main/java/ru/itmo/kotiki/dto/UserDto.java index 2205520..ad38124 100644 --- a/kotiki-java/models/src/main/java/ru/itmo/kotiki/dto/UserDto.java +++ b/kotiki-java/models/src/main/java/ru/itmo/kotiki/dto/UserDto.java @@ -6,19 +6,14 @@ import ru.itmo.kotiki.model.User; public final class UserDto { - - private final int id; private final String username; private final String password; - private final int ownerId; private final boolean enabled; private final List roles; public UserDto(User user) { - this.id = user.getId(); this.username = user.getUsername(); this.password = user.getPassword(); - this.ownerId = user.getOwner().getId(); this.enabled = user.isEnabled(); this.roles = new ArrayList<>(); for(Role role : user.getRoles()) { @@ -26,20 +21,14 @@ public UserDto(User user) { } } - public UserDto(int id, String username, String password, int ownerId, boolean enabled, + public UserDto(String username, String password, boolean enabled, List roles) { - this.id = id; this.username = username; this.password = password; - this.ownerId = ownerId; this.enabled = enabled; this.roles = roles; } - public int getId() { - return id; - } - public String getUsername() { return username; } @@ -48,10 +37,6 @@ public String getPassword() { return password; } - public int getOwnerId() { - return ownerId; - } - public boolean isEnabled() { return enabled; } diff --git a/kotiki-java/models/src/main/java/ru/itmo/kotiki/entity/CatDtoOwnerId.java b/kotiki-java/models/src/main/java/ru/itmo/kotiki/entity/CatDtoOwnerId.java new file mode 100644 index 0000000..584fc64 --- /dev/null +++ b/kotiki-java/models/src/main/java/ru/itmo/kotiki/entity/CatDtoOwnerId.java @@ -0,0 +1,21 @@ +package ru.itmo.kotiki.entity; + +import ru.itmo.kotiki.dto.CatDto; + +public class CatDtoOwnerId { + private final CatDto catDto; + private final int ownerId; + + public CatDtoOwnerId(CatDto catDto, int ownerId) { + this.catDto = catDto; + this.ownerId = ownerId; + } + + public CatDto getCatDto() { + return catDto; + } + + public int getOwnerId() { + return ownerId; + } +} diff --git a/kotiki-java/models/src/main/java/ru/itmo/kotiki/entity/CatOwnerId.java b/kotiki-java/models/src/main/java/ru/itmo/kotiki/entity/CatOwnerId.java new file mode 100644 index 0000000..2bf9311 --- /dev/null +++ b/kotiki-java/models/src/main/java/ru/itmo/kotiki/entity/CatOwnerId.java @@ -0,0 +1,21 @@ +package ru.itmo.kotiki.entity; + +import ru.itmo.kotiki.model.Cat; + +public class CatOwnerId { + private final Cat cat; + private final int ownerId; + + public CatOwnerId(Cat cat, int ownerId) { + this.cat = cat; + this.ownerId = ownerId; + } + + public Cat getCat() { + return cat; + } + + public int getOwnerId() { + return ownerId; + } +} diff --git a/kotiki-java/models/src/main/java/ru/itmo/kotiki/entity/OwnerIdCatId.java b/kotiki-java/models/src/main/java/ru/itmo/kotiki/entity/OwnerIdCatId.java new file mode 100644 index 0000000..9a27c3e --- /dev/null +++ b/kotiki-java/models/src/main/java/ru/itmo/kotiki/entity/OwnerIdCatId.java @@ -0,0 +1,19 @@ +package ru.itmo.kotiki.entity; + +public class OwnerIdCatId { + private final int ownerId; + private final int catId; + + public OwnerIdCatId(int ownerId, int catId) { + this.ownerId = ownerId; + this.catId = catId; + } + + public int getOwnerId() { + return ownerId; + } + + public int getCatId() { + return catId; + } +} diff --git a/kotiki-java/models/src/main/java/ru/itmo/kotiki/model/Owner.java b/kotiki-java/models/src/main/java/ru/itmo/kotiki/model/Owner.java index 8a6c883..b5afac5 100644 --- a/kotiki-java/models/src/main/java/ru/itmo/kotiki/model/Owner.java +++ b/kotiki-java/models/src/main/java/ru/itmo/kotiki/model/Owner.java @@ -75,6 +75,10 @@ public void setCats(List cats) { this.cats = cats; } + public void addCat(Cat cat) { + this.cats.add(cat); + } + public User getUser() { return user; } diff --git a/kotiki-java/models/target/classes/ru/itmo/kotiki/dto/OwnerDto.class b/kotiki-java/models/target/classes/ru/itmo/kotiki/dto/OwnerDto.class index ce7441d85ab3ba0e20ec4d01c4f17222dd2bc38d..92f784df7457ca4ea981e09a0e387c33557d2d5c 100644 GIT binary patch literal 1296 zcmb7@TTc^F5Xb+gx25g&!ctl-Q1F7b<+AeNi$xxU_|(wEY7-x~?OG1ByJk7n_^mVn zNi^{T_@Rt5y9L(85X~lM&t>NKpP4h~=dW)+06fP|1~J4nBy=Q^5-1*9A1rfhIU}>v zKeh)-AhjzUsrCfo^+qp)IixjYbY!6mRK2Mw)xD`BZOZ6nF3gI+di|z!)V|RZSgp4siG*s> zVvEE+6-l7bmX3Wmo%C(*wbdWfj?s1p*0^VRlGn4%ggTO^0xMB!xI8U^q#M+HIcgVH z7kK&)S%k7`%TpD^Jg^i+5w4JbCQ$w}=uhu21K)~pcB7GT2K$zx>uv2(2I;OGIhLAw zREbyrALi|NuDhn(S!33yD{i?YflSw(dIS5VrPUjE3|Xu_`h(D$`?9_VU0!u2^zCB>h$GMBK$qtDF@ED zj|a3O3?5>g&@AzY&RAkffA%f}63pM6!Q&x#k&Nb%CaF9Ye0Vc(yMh<|Oa!C+TsZCm z9;1#p8Z_5QHrQ#>&IZk6*rdHJY}3f0JR>686u)EcZS#yGIYZ?FOP_t)H5ya?dD+(w rc*U7My+dDtIVM>#C&`Scb2a3gymF?OPcBjCO4PabS7(#7VtDc!;3X6{ literal 2191 zcmbVNT~`}b6x}x@41|Hw@ZIu}QcIH*8c}Q2P;5)AMgvqsso>|3Ov99rbPW@=KgBcMiNLE}~1|T{e+G zlJJU_cR-h1PC_{EYj@UFsm zAh~`~kdJ{|3KM}-Nj=Y)_$Y2-Md~oCFqOy$>|R94BsWEZJ0{-82ZU#pSS=%omUK73 zB)3J=4^4c8yszoK1F6d?s?ssI95WAVQsL{Tk@^V4Nb>oyiBF`IyX)MLGVd)o<*Mb? zT^8v=AiGP!3!AJn%Nd24|Dda15(!iF6+SJ6GkK?KuhsW=YF zzp>fHBID}}-rCfV0li&^bvPBY5oG#WW`xKhHUBYB2JQS z2=fQnsUxV=m8UQc(J%ARA;x4re~6jXGhEy{!lgsZaVK?*s|u_0$9O~Gd(3k2j>7L) zUQ0c}+%w$VS~$Y(W4sr_{U4wIDM4~iv3iKRzwn|i+~=4=l;a?;J`0nuhB1Umj+fby zvlu0`F>GNRC6fA-mT~%JX}5)Kt_T;O;d9Qi`T}2)%vW5GAoQHd@RKuOpvPce!QTui ze7~j!!uJQx-JIi^FUj?%=7s5k(3}X9VQM7O26dW>f#AaI?Y)?$?lS}%C$I}#&1!hd ze#{r3;yNcv?$KG1OvR`$r&PfCo&rRYKs|0fuZe(qTd;Au16zplvViTdx z{XcO*fjM^T%}W}HA0*NM!q!DCPdktO9B@u{bmq6LgY!(#d7+~-zcmfXTVc-yofkVe Z`xRT{-KCD)?*_SF>kve-GDM*V{{q`4)l2{Y diff --git a/kotiki-java/models/target/classes/ru/itmo/kotiki/dto/UserDto.class b/kotiki-java/models/target/classes/ru/itmo/kotiki/dto/UserDto.class index a2f1eac00e630023f0a5e930b54631d669fa822b..efb2d5e1425d5109a517deff38c01fe3f0a4a169 100644 GIT binary patch literal 1849 zcmbVMT~`xV6x}x;41~)^1EeKc-}Rk+ z$2@SWcFo*s*q%cFp6!cOw+?KD(OkaNu3h#$r@mM0!ytwX3~PLVv_dvgt?Ii$tySMu z=xx5Km43UD;2PB!6HwB4!)i2sa=of__)y~`Dc^e-Iwd%(F@Z^iKBsZ3Ztc|UYCv#X z5~elIU`D~PPySKc20m682^cher)J*pJnM1EY4|CeMO?DZYs_I@A?dj_yFn>iD1> zEK1wFMgbRyg%~$map@Cf+L8TO#6<(9#wWO>FxYM@g_!O5wrBY+RnDBsz8m_B{rC)* z4ScTgg|JMwE1ZOo-b1UgZvX5{>=lix_(~yBrz1M8)+Q7UEWK;uLM4SFmNmYX5f~vo zA#y|GCRV7fRi(ybxsKt5h4b5-L)qD@TYl5yuFOW1Tk1#&H)px1Fr6z!7N)&^#e9Wi zR=AD|LnWtfuQv~NZ128InsSufU8`2HJV$8 zSKnDmE(L=I%D%O`zh)hV{jYQ?6ViN}_;y5_fN174pT~zMoJ#Liv#Z`B=-jDglU?i@ zs*ozXO>ft}?TDgU2=fkKlqJL^UX>W%o&?fz>uIIsdIl$NU2yUqL1C4447bojJBi!; zenZcHh%*0c8u#WJoxR^|9`M@9C!GgLm$6`>@@_9VT=;(ByrATgvds*$;W03 z8Qf*m40Bc)`z^ksMQkWxji*@axJTq0w8s#8Mf!Yg2MzQZymfeia{;;UNmR)F!ZXP; z+af2-7KGN6a2ijLP8(pB!T{q0m?hK+wx1-lDSD;@P?uYk-ayF)ax1AG2rfg&%0m}G z&dTG(TATE0Vv_&nD1IUwLzzB4`TPn_lc&TaDd4~p8nHk#nH2aQiYBch$*?^ye%Ito qH2HkjWIokhI#2x`>74JH%m+7=w-fekwDV$@#&DrzyJmpQ!S zx#yPbviZ1bdkP&}wqGa(ZiO!N;*^2Y8gC%2a5myr^4-8`!FLtf96G6jWa`%#z@S1m zLrKtzwP!2zXD1hr%3Sq5r?Qoo3}-ZkaaN(T_R2QhYAJz7HQsCneqdFrPhGDh5zc9x z4+M8dV;(m{ln+C@bd%^K%Wk}n4-DMa_z-s#dXLgdAbLB# z?ODD{js{P77aIC}H}2w|fsZuq3(E9Sgr*7MZCll4`+Hw(Ki2pJiwcPf718F0GnzNB z{JL2bC@C!AfySrOaf3}1od8+Yc!bBCP^(0a2eQXzr4e{?gMC$L^L`$<=smsGvTDo>ku}?k-vTjr?=jLMzTzO<^O#P5^cAB%){g zO;pSOGiog7LTajcKV|D=PE4N+XRIH+R^6IcwC_1Wu@(lng=SeF>7Y=Z#j;tK7)M4g+!?h>R@lGAH)XW`%%Xn$(5DN-FV2p=?!XH>#&i#tn=>x1B z;vtj&`0}q`n5-Qee9mxRgCG(tSECR8{Ec$CUdA9y3}FsuSne=v!rI0NKBx70`mU3L zFYqN#EE`|pYf3qN1B;+Gc^*L9ODxDYq}M>F!5fQzxGx2FksJu_7nBBNCcsUQJ-I1C zJS}hs5`uJ~LvRi!3Gt}taqvQBv`eM_Rmvu5p~W}TX_lQwny;PEMVOiHooAmKef@z54< zoD7uNprkNJN24Sz7xLWdJoIzKc`DYKpQ;$=v8eOaSm$qJ%g#p2z8>q$4^d2JGwOUJ c)|sD^#sC~AY&KfRCXz4-2f^4Da^%|sUy6aST~7-6XxAKhF8$_%=LYpID|Et~kZ&y1ccnio zt}5lUi43v?-T$Fdov>T_hgL7Q2+^9~bqSe<@Z8JssO<*VPJ76R)$lvcu;m0oyn!l56X=z~1gRH>H00P?h_X$vHP|MRX0bI! z_NFwfV}mmm2-{E?sYV(%*u>VXjm=)Y#VW7RpE;O{$3rj^3Yyb`nIK^sJB+9q=gFz3 N1#)gFIUiOPz5%+me5?Qf literal 0 HcmV?d00001 diff --git a/kotiki-java/models/target/classes/ru/itmo/kotiki/entity/CatOwnerId.class b/kotiki-java/models/target/classes/ru/itmo/kotiki/entity/CatOwnerId.class new file mode 100644 index 0000000000000000000000000000000000000000..ab4f5a7f98eceef501128f2059c77087037c66df GIT binary patch literal 640 zcmZ`$%TB^T6g^WOl~ODgpNIxs6-?|0pl(P^NQf*nBrXSNaG@F8lyL z%6O+>FjY7AHRqiBn2*o5cL1l@GoT@*BW)ssEJJa`@3`ypVCZ&wBd;$RvL_-C@{A$n z)VevWAg9AHk%!4pji#=Ulh7T9QjCS`1yaZdx5;JaKJcQ}fLMJ_BIR}hISB`zuYe6D zxoW~fkwFi?X{^Pt@BGhd)w&GnCaEx3Z4r1E(@D>Zu6WO{rC{snv_>)|COpr@| Jl6PZN3z32h%)R%_oO|v)U*8{}04~t7Q9#jx;lMkfj0}HvDY6?M5qX*a~Vl> zNhr2Eg9^&1Sg;+e!66(c3s0(f>`h}Or_vLVlIq#(KSd((N8LdABZ3uYC4qd+Uw2T` zWHZd(&9?7%1_YxUj|8FClaaVy%!eYm4TdvDn!Pv-W`iJ+y3RpE-OC5UN$>v=&ItBc zsC=q)5uZ?ID4)>2i5E#IuB29L{GR?)`+*~#y1;%F(A0Z#*3>I-EQ0qyo$m%$ciK#j zHTNClwwAEmgC(l33~8#S8GN(d+D1O>u(83&VMfCywz%R3sSKr=7Amm7Hg<9ukE4Dw j-8Wb-oMg>QDOgP#I@yQ3Az^nVx%!vfSV`VXCH8*+-T7O^ literal 0 HcmV?d00001 diff --git a/kotiki-java/models/target/classes/ru/itmo/kotiki/model/Owner.class b/kotiki-java/models/target/classes/ru/itmo/kotiki/model/Owner.class index 65eddb1b11a1606057b2040434de8dd4f78577f4..bd067af07d3841e9012a6ae168f94f891aadfa3c 100644 GIT binary patch delta 1395 zcmZ`(%TiN85IvK}y&(y~vLNKa+Xs-SQ9)6Ifbvp_f}#WgkpK}v9%=%*i&d5%V9nBB zZ~-M~$-*kDT)A-J7x)uyEzjJ04Kakpo$0>QeNJ~z_k0b!3%S4l+5H0GGG4xQ{~qw5 z7Iix6y=XwAfNv?ak&3Nn7nfs+#Y|Sfo|>N*sA@?V2g|9|h1l@yQhF{MZ=EQE3rD;- zies`&H2a#-qNCM|2%-W(xn--8Gfsz0io@DTFHRx$VNLw7do&{UrU+fzA~$UzPwN<2 z=G2dn(q-KF)Az)UWvu8}ReozStbG&DgCrf9B z)$5vsNTVA)xH8dBn6yZE2Z3V#HZryw5Ps9j;-@{+2ph}^+*Dw4t<0ZOk(<s4N$@?rCFRN4;{frtLlEvu`b6Q3U$h`Rr_u>Jji6rn4GZtdL@I-8~ z>YgK$*#e^_(icc!*7DwKJ*M4M97&RCj~7IuTaS!G927MK!AOo%z;JZc z3M#CRIKImn!d_eWj47PrGcbbytFt#=L5stId1Bd+HeP`WN{^^7kb#fOV=Pi}QCZ^m P6wj%-DP^#Z7YP0Z2q%#h delta 1201 zcmZ`&OHWfl6#k~%-rL?5Fa}Cr7JSr7t5$6lwLHp0Q9(fq%FDM^e32+|-NZjY%q(5H zbfZxuA<@J{H!jq_;)1R5n>#mx*LE>8=gge*o$s4D^D_Q9YJdB^{s}-ImR{H!Z9xRE zBa9R}1&n9Q)u#dpDU3+_H0_d&o!DhzcNlw+7Kq7TM!Q@Q5i=9UK6Jl(ExtF&ul}Dc zH*MU)Z3}nQepS9QzleKs(JC7c1k&<{nKmsv5=hZZ$qg%6%aTGIO~`TG4}k+!97G<6 zXoi+?7(Rp$rlaCQT-}2Z4_dM9|AQkuh@gXWff+s&oy<4`kFv_KW%S_qJVX^Ia1y1t z40;(v)mxDIXgh(;H2mo2JRsKsxm=lu5$*tK7}$#-GH9XB7`idY-7Z#8YKAZ@n}eN0 z1M~{a7F_+=HHfz~d?<6axq_k%idLygB7;;aSD~(%^MG6mMrvj5n9g~=ZtMt7saQt! z6IJ1w*~BWM-f9Kn7afF%j&iFh^f(g45IBud7c1}h roles = new ArrayList<>(); for(String role : userDto.getRoles()) { roles.add(roleRepository.findByRole(role)); diff --git a/kotiki-java/user-interface/core/target/classes/ru/itmo/kotiki/ui/config/RabbitConfig.class b/kotiki-java/user-interface/core/target/classes/ru/itmo/kotiki/ui/config/RabbitConfig.class new file mode 100644 index 0000000000000000000000000000000000000000..2c7979ba7a023474b7c96440c53e43c150e8439b GIT binary patch literal 2092 zcmb7F=}sG07(EwE3}#9LWGx8^X;N$;OiPw7PDqHGREkJjk<=1@DqTAlbHSc*W}&UB zzEdkzAQh<((1)seKF`=tJf>8Z@AhryTj#I8|M(NYV>~Zl2*Y{g9E{+c!ucJ&r`@LZ z8tyl>9aE1K&ONf8jaC(gi=}EFqY4#2Xt-fJuwG*;&@JmE1TlYPW zvex(9imq>yuhM&Yq3e+!{4|CF#`AC-yoU*eJ3;K)sO7u6eq?v88(UGbWgG5BMrARo#qDSz%;P4holV|D3eKa*~wRyJe}- zUleBgDc!2ergqDW)Lg}XOXcscThDwQw`wMMqX}Fp->>UtRR>n?>0>V1w)A9v{Y+g% z@RMw=v_sQ=Wc{9&$X>y9#RfJuwO^?ZXnKX`nZf>_vx6q?X6m6=k@+z?o~~!iBl#y1 z2fAIN5T8<18P1*zSNW8p?}_&{CxNVH0v{BBKC=oB&Y&R6aN)Hd2X*tpN)=6R9Gj}k zGD{U6W-87IDJKF1 zANfJzdY??9NO2!oIDq<%hao)RDrB+wkgJn0;8T3Y8}K>4AeRV#Ph^5`_7M5ah2JrD zz_wcCVQL>2WxukInZ;kpk!YQwalz$ahOn>kcfDibQlcfb;9v@6JfcZXV#~k%a{Jtz)=HQ?38jwTdUHu1)$N@tr=z+~(o|K76&bu#b=Sv9NTc tcA~>Fk1>LnBn%15%|xshmT3m&DPhUyZ53-&f868{o>689mEP-@z&{>`Liqpy literal 0 HcmV?d00001 diff --git a/kotiki-java/user-interface/core/target/classes/ru/itmo/kotiki/ui/service/UserService.class b/kotiki-java/user-interface/core/target/classes/ru/itmo/kotiki/ui/service/UserService.class new file mode 100644 index 0000000000000000000000000000000000000000..f5542cdc9770efa69d5dc6c08df086329ffbb2b3 GIT binary patch literal 487 zcmah`K~BRk5FD4bX#57HxnS-s91udPRH=su?j|vj+tijEr--j{-~l`ev33qf zRRyOV?at1O*I(Zsp8#%g5uwL$Wm~S?*6@vSYNL3ocq8pj6_P&@$U7XN&ycLePVidj zimzVQvT)S0vQmw+!YQLYpJARZ_asYag4TmGvqQ7ho0irOvuB3UtJ3BD`=VsHOc&W9 zzW4EThDk^E4K22k;U-=FhRmH+x|;o?5tp)-PIi`kvh*P;>AYyeFio>gvURHFOL{E% zj&oIM;aVFk_X+dALf_GPoSW7b@=?{apLnCZJM*;oXTo2GMOTy)p#Tld}JyWhR<_3u}I`4zwe_%?+E zY78Vz)S^yd^96g!wsN*RXPub2pfiC&-9g87f&qn^j?U=@)T6;b%EShk3Y~tza)JfV zn)d={-mwafmDm1~lhM{mE+(V($iiYyq0zTzW}IM3^OqfHg?mOlf6mG;`i?s{>)Q+Z zqUX~%l*o-CvTTI-9W`zU)!=%F2jOQ+C zKbX{RcF@gE=!|xj7-3(>XbF$WKmtvdNg{;Oo$Eygwkfn$fV1Fbb13L}eV&YcpT5l&Ccpn zZ+`K;B{-DS8Tx(bGjP9&exwz;ZeXuMYSwYHL(5`P!K%W8&dOM#^2&w~_6JN1;1D6P zvsp5%+`=kv&PuX_CWdf?$rji!rRcAltn^n&ooF6aXsJjs3Q07DQV*JV2qOv`NEwm2 zY&nIswTVeC>c>rtuBty`=kx5&tjNbroDeEBIQgTlJ(JUv4&zZ7AQK8x<%zCunOJf* zYMByItAiQ#O1g7;1Ez4&z_f`|IDNfJt_6l1lv$y$w>+@b3aszk6wcx?1CN_{0#7P5 zmHL0g4fLF5rx;6iuAooMO3#dxH-D_b@=xI@6Sl-^5bUAlkr26zU_>(9+EG1Si9F7B z*2EmnlNAvSOXa!&Du(7HmJ254!3mt={Lz7yaIV3~5NX$hCv(RT--EfFfu|MPE2vd{ z(vyM{1vhXO^t6+A$c;hQ^#VI^JeLEiuj;^`(YBknX6=mhxMdeNSc8SYyXg2j%jQiU z;qX-0H0ro|ys$8%{VAay2hymQv2)Y5@5t|1m<-N4^w(7hbM>I*c%qBVzMkVy%X-vsiZW&|HX#YU7R}|wRYZF#bPraBQa1et=wst#U}xsX?8Ueu z^%0MSc)O%&D%g}Q9ckR0aHys@sgeSc!j4My(p;nV{_@6-@x6|Nda)agza*n!spJ?H z%n3`ayyP=f%7?)J$Lz>C(rG9$Mx3%7%tXXU?^Qf={~aUp*{~({UZxmD^L3Uct}k zV~)_RS;Cks-Mo5*eF_~_n=j9EUV8xxZN*#CyfW1DQmC+q8a{c?8fd~2zr_(1a1odIR9MC{{N`r0lOY+D zdHa5Zv1McTPuTPuwvJ!H_A{5!(x2@539Tz=Q|Pa4sa?Tdg|E>rt8Rtgu)n{qCCQz4 zwbZTP-UL=~Fo9Fw{qrYfhp%Ax47VTS=V5-vT9Q4N@yH4$sUl$}Az}6s2k<)9h+Vv) zwV{tF9mj1L$L&0m_TVwJ;~e(lJb%0B4AU84a(%p(K8xqLV(@WdvU(mbgvok%5ib$Z zMxGWg;}s&l9jEasUZdaFxkn(0ByUjiCM8WsT$MZBRs*{Y-0?TMsPY!x=C{E7I8D^> z*($m1_!(zba4ta%hR3d8$C>WSnE9S>6Jb(v_Xm1tvNsI4E!tTOvlZ{)UD|Cz1Kz{? z)K)x|K8QU{$DW$SQ`ZV~0@w6$fbiX2=A*gjqZuC(9$reye9Ysc*vB#Ylo%UJ**FQ5 z*b`-NKQ{7;Ck)yaX&0?G#u+Gl%)%u?g#I9qwbUIFn=4pQ7>#)}#w^+t#(QE0?dBpR z&~SgUTi|O+62DdU{M9W;M)YV63p{`n4q*!p6VpNdxfNE~ z3GxYx%|inF@hMk{u!Nm!qwNse*Fgc7hOE5 Ar~m)} literal 0 HcmV?d00001 diff --git a/kotiki-java/user-interface/data/target/classes/ru/itmo/kotiki/ui/repository/RoleRepository.class b/kotiki-java/user-interface/data/target/classes/ru/itmo/kotiki/ui/repository/RoleRepository.class new file mode 100644 index 0000000000000000000000000000000000000000..294558bb56dbd4ca175e87a5ee9136c749200995 GIT binary patch literal 414 zcmbV|O-{o=423;yAvA!5#3evT^{T4?3l>PANR^rsm}WYf{EQ=a0?O4`Z~zX4m;{Li z7A#nJ>{O~z!7KM%0}PY{*3dV fsV(}OLPQFtp$s-Oo!DG0mhJ-eMP(?3Z`r%GSVgAd?CiPIHq z74hI9nFR99_se{5?=P2LBS`!yeXO1Z&U6b}$x{BEOMn6>OXJ6L;X*hJqiQe1KXBL!#9C%P&<*<|HSfzQroIyP){TAF^xyV7(G6--xT_>(S-{zZ2Fhh@*>)-opO!%N|q%w6r5 zctg2>9DJYLY5OMyhqKx;75GRMEpoiF*0Eu7wvr%z1+5r8I&MnT-Pl4IxPqaqO-WKo aC;@EAX$WK42QY!{b=`qosUvwe1^58VFQHlh literal 0 HcmV?d00001 diff --git a/kotiki-java/user-interface/web/src/main/java/ru/itmo/kotiki/ui/WebApplication.java b/kotiki-java/user-interface/web/src/main/java/ru/itmo/kotiki/ui/WebApplication.java index 289e3e4..509bb5e 100644 --- a/kotiki-java/user-interface/web/src/main/java/ru/itmo/kotiki/ui/WebApplication.java +++ b/kotiki-java/user-interface/web/src/main/java/ru/itmo/kotiki/ui/WebApplication.java @@ -8,7 +8,7 @@ @SpringBootApplication @EnableJpaRepositories(basePackages = {"ru.itmo.kotiki.ui.repository"}) -@EntityScan(basePackages = {"ru.itmo.kotiki"}) +@EntityScan(basePackages = {"ru.itmo.kotiki.ui"}) @ComponentScan({ "ru.itmo.kotiki.ui.repository", "ru.itmo.kotiki.ui.service", diff --git a/kotiki-java/user-interface/web/src/main/java/ru/itmo/kotiki/ui/config/WebSecurityConfig.java b/kotiki-java/user-interface/web/src/main/java/ru/itmo/kotiki/ui/config/WebSecurityConfig.java index 49a5059..084287c 100644 --- a/kotiki-java/user-interface/web/src/main/java/ru/itmo/kotiki/ui/config/WebSecurityConfig.java +++ b/kotiki-java/user-interface/web/src/main/java/ru/itmo/kotiki/ui/config/WebSecurityConfig.java @@ -37,7 +37,7 @@ protected void configure(HttpSecurity http) throws Exception { .csrf().disable() .authorizeRequests() .antMatchers("/admin/**").hasRole("ADMIN") - .antMatchers("/myCat/**").hasRole("USER") + .antMatchers("/myCat/**", "/myAccount/**").hasRole("USER") .anyRequest().authenticated() .and() .formLogin().permitAll() diff --git a/kotiki-java/user-interface/web/src/main/java/ru/itmo/kotiki/ui/controller/CatController.java b/kotiki-java/user-interface/web/src/main/java/ru/itmo/kotiki/ui/controller/CatController.java index 06a517a..4e68035 100644 --- a/kotiki-java/user-interface/web/src/main/java/ru/itmo/kotiki/ui/controller/CatController.java +++ b/kotiki-java/user-interface/web/src/main/java/ru/itmo/kotiki/ui/controller/CatController.java @@ -1,6 +1,5 @@ package ru.itmo.kotiki.ui.controller; -import java.util.List; import org.h2.security.auth.AuthenticationException; import org.springframework.amqp.rabbit.core.RabbitTemplate; import org.springframework.beans.factory.annotation.Autowired; @@ -15,8 +14,9 @@ import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import ru.itmo.kotiki.dto.CatDto; +import ru.itmo.kotiki.entity.CatDtoOwnerId; +import ru.itmo.kotiki.entity.OwnerIdCatId; import ru.itmo.kotiki.exception.ValidationException; -import ru.itmo.kotiki.ui.rabbitmq.RabbitMqSender; import ru.itmo.kotiki.ui.security.JwtUserDetails; @@ -27,30 +27,26 @@ public class CatController { @Autowired private RabbitTemplate rabbitTemplate; - @Autowired - private RabbitMqSender rabbitMqSender; - @PostMapping("/save") public CatDto save(@RequestBody CatDto catDto) throws ValidationException, AuthenticationException { Authentication authentication = SecurityContextHolder.getContext().getAuthentication(); if (!(authentication instanceof AnonymousAuthenticationToken)) { JwtUserDetails jwtUserDetails = (JwtUserDetails) authentication.getPrincipal(); int ownerId = jwtUserDetails.getOwnerId(); - - return rabbitTemplate.convertSendAndReceive("saveCat", ownerId, catDto); - return catService.save(ownerId, catDto); + return (CatDto) rabbitTemplate.convertSendAndReceive("saveCat", new CatDtoOwnerId(catDto, ownerId)); } throw new AuthenticationException("403"); } @DeleteMapping("/byId/{id}") - public void deleteById(@PathVariable Integer id) { + public void deleteById(@PathVariable Integer id) throws AuthenticationException { Authentication authentication = SecurityContextHolder.getContext().getAuthentication(); if (!(authentication instanceof AnonymousAuthenticationToken)) { JwtUserDetails jwtUserDetails = (JwtUserDetails) authentication.getPrincipal(); int ownerId = jwtUserDetails.getOwnerId(); - catService.deleteById(ownerId, id); + rabbitTemplate.convertSendAndReceive("deleteCatById", new OwnerIdCatId(ownerId, id)); } + throw new AuthenticationException("403"); } @GetMapping(value = "/getById/{id}") @@ -59,19 +55,19 @@ public CatDto findById(@PathVariable int id) throws AuthenticationException { if (!(authentication instanceof AnonymousAuthenticationToken)) { JwtUserDetails jwtUserDetails = (JwtUserDetails) authentication.getPrincipal(); int ownerId = jwtUserDetails.getOwnerId(); - return catService.findById(ownerId, id); + return (CatDto) rabbitTemplate.convertSendAndReceive("findCatById", new OwnerIdCatId(ownerId, id)); } throw new AuthenticationException("403"); } @GetMapping(value = "/getAll", produces = "application/json") - public List findAll() throws AuthenticationException { + public Object findAll() throws AuthenticationException { Authentication authentication = SecurityContextHolder.getContext().getAuthentication(); if (!(authentication instanceof AnonymousAuthenticationToken)) { JwtUserDetails jwtUserDetails = (JwtUserDetails) authentication.getPrincipal(); int ownerId = jwtUserDetails.getOwnerId(); - return catService.findAllByOwner(ownerId); + return rabbitTemplate.convertSendAndReceive("findAllCatsByOwner", ownerId); } throw new AuthenticationException("403"); } diff --git a/kotiki-java/user-interface/web/src/main/java/ru/itmo/kotiki/ui/controller/OwnerController.java b/kotiki-java/user-interface/web/src/main/java/ru/itmo/kotiki/ui/controller/OwnerController.java index b5464ff..2f6ef39 100644 --- a/kotiki-java/user-interface/web/src/main/java/ru/itmo/kotiki/ui/controller/OwnerController.java +++ b/kotiki-java/user-interface/web/src/main/java/ru/itmo/kotiki/ui/controller/OwnerController.java @@ -1,11 +1,9 @@ package ru.itmo.kotiki.ui.controller; import com.fasterxml.jackson.core.JsonProcessingException; -import com.fasterxml.jackson.databind.ObjectMapper; import org.h2.security.auth.AuthenticationException; import org.springframework.amqp.rabbit.core.RabbitTemplate; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.http.ResponseEntity; import org.springframework.security.authentication.AnonymousAuthenticationToken; import org.springframework.security.core.Authentication; import org.springframework.security.core.context.SecurityContextHolder; @@ -22,17 +20,13 @@ public class OwnerController { @Autowired private RabbitTemplate rabbitTemplate; - @Autowired - private ObjectMapper objectMapper; - @GetMapping(value = "/getMyInfo") - public ResponseEntity findOwner() throws AuthenticationException, JsonProcessingException { + public OwnerDto findOwner() throws AuthenticationException, JsonProcessingException { Authentication authentication = SecurityContextHolder.getContext().getAuthentication(); if (!(authentication instanceof AnonymousAuthenticationToken)) { JwtUserDetails jwtUserDetails = (JwtUserDetails) authentication.getPrincipal(); - OwnerDto ownerDto = new OwnerDto(jwtUserDetails.getOwnerId(), null, null, null, jwtUserDetails.getId()); - String rabbitResponse = (String) rabbitTemplate.convertSendAndReceive("ownerQueue", objectMapper.writeValueAsString(ownerDto)); - return ResponseEntity.ok(objectMapper.readValue(rabbitResponse, OwnerDto.class)); + int ownerId = jwtUserDetails.getOwnerId(); + return (OwnerDto) rabbitTemplate.convertSendAndReceive("findOwnerById", ownerId); } throw new AuthenticationException("403"); } diff --git a/kotiki-java/user-interface/web/src/main/java/ru/itmo/kotiki/ui/rabbitmq/RabbitMqSender.java b/kotiki-java/user-interface/web/src/main/java/ru/itmo/kotiki/ui/rabbitmq/RabbitMqSender.java deleted file mode 100644 index d73d50d..0000000 --- a/kotiki-java/user-interface/web/src/main/java/ru/itmo/kotiki/ui/rabbitmq/RabbitMqSender.java +++ /dev/null @@ -1,5 +0,0 @@ -package ru.itmo.kotiki.ui.rabbitmq; - -public class RabbitMqSender { - -}