From 7c12e4af159fd4da34cd3382b1deeafa61f9cb5b Mon Sep 17 00:00:00 2001 From: Jan Olszewski Date: Wed, 27 Apr 2022 17:46:05 +0200 Subject: [PATCH] JE-1 Project structure refactors. Basic courier functionalities. --- ...tilService.java => CommonUtilService.java} | 2 +- .../java/com/interview/exercise/Package.java | 14 ----- .../interview/exercise/entities/AppUser.java | 30 ---------- .../exercise/entities/AppUserMapper.java | 20 ------- .../exercise/entities/AppUserRepository.java | 14 ----- .../exercise/entities/FakturaSerwis.java | 8 --- .../entities/GiveMeAllPackagesFacade.java | 55 ------------------- .../com/interview/exercise/entities/Role.java | 28 ---------- .../exercise/entities/courier/Courier.java | 10 ++++ .../entities/courier/CourierController.java | 28 ++++++++++ .../exercise/entities/courier/CourierDto.java | 5 ++ .../entities/courier/CourierService.java | 20 +++++++ .../InvoiceController.java} | 6 +- .../entities/invoice/InvoiceService.java | 8 +++ .../exercise/entities/pack/Package.java | 18 ++++++ .../entities/pack/PackageController.java | 52 ++++++++++++++++++ .../exercise/entities/role/Role.java | 43 +++++++++++++++ .../exercise/entities/{ => role}/RoleDto.java | 8 +-- .../entities/{ => role}/RoleMapper.java | 2 +- .../exercise/entities/user/User.java | 40 ++++++++++++++ .../exercise/entities/{ => user}/UserDto.java | 4 +- .../exercise/entities/user/UserMapper.java | 12 ++++ .../entities/user/UserRepository.java | 14 +++++ 23 files changed, 260 insertions(+), 181 deletions(-) rename src/main/java/com/interview/exercise/{COmmonUtilService.java => CommonUtilService.java} (87%) delete mode 100644 src/main/java/com/interview/exercise/Package.java delete mode 100644 src/main/java/com/interview/exercise/entities/AppUser.java delete mode 100644 src/main/java/com/interview/exercise/entities/AppUserMapper.java delete mode 100644 src/main/java/com/interview/exercise/entities/AppUserRepository.java delete mode 100644 src/main/java/com/interview/exercise/entities/FakturaSerwis.java delete mode 100644 src/main/java/com/interview/exercise/entities/GiveMeAllPackagesFacade.java delete mode 100644 src/main/java/com/interview/exercise/entities/Role.java create mode 100644 src/main/java/com/interview/exercise/entities/courier/Courier.java create mode 100644 src/main/java/com/interview/exercise/entities/courier/CourierController.java create mode 100644 src/main/java/com/interview/exercise/entities/courier/CourierDto.java create mode 100644 src/main/java/com/interview/exercise/entities/courier/CourierService.java rename src/main/java/com/interview/exercise/entities/{FaktraController.java => invoice/InvoiceController.java} (56%) create mode 100644 src/main/java/com/interview/exercise/entities/invoice/InvoiceService.java create mode 100644 src/main/java/com/interview/exercise/entities/pack/Package.java create mode 100644 src/main/java/com/interview/exercise/entities/pack/PackageController.java create mode 100644 src/main/java/com/interview/exercise/entities/role/Role.java rename src/main/java/com/interview/exercise/entities/{ => role}/RoleDto.java (52%) rename src/main/java/com/interview/exercise/entities/{ => role}/RoleMapper.java (80%) create mode 100644 src/main/java/com/interview/exercise/entities/user/User.java rename src/main/java/com/interview/exercise/entities/{ => user}/UserDto.java (62%) create mode 100644 src/main/java/com/interview/exercise/entities/user/UserMapper.java create mode 100644 src/main/java/com/interview/exercise/entities/user/UserRepository.java diff --git a/src/main/java/com/interview/exercise/COmmonUtilService.java b/src/main/java/com/interview/exercise/CommonUtilService.java similarity index 87% rename from src/main/java/com/interview/exercise/COmmonUtilService.java rename to src/main/java/com/interview/exercise/CommonUtilService.java index c627426..3798be7 100644 --- a/src/main/java/com/interview/exercise/COmmonUtilService.java +++ b/src/main/java/com/interview/exercise/CommonUtilService.java @@ -3,7 +3,7 @@ import org.springframework.stereotype.Service; @Service -public class COmmonUtilService { +public class CommonUtilService { public static String standardUpperCase (String givenString){ diff --git a/src/main/java/com/interview/exercise/Package.java b/src/main/java/com/interview/exercise/Package.java deleted file mode 100644 index 0a541d7..0000000 --- a/src/main/java/com/interview/exercise/Package.java +++ /dev/null @@ -1,14 +0,0 @@ -package com.interview.exercise; - -import com.interview.exercise.entities.AppUser; - -import javax.persistence.Entity; - -@Entity -public class Package { - - private int id; - - private AppUser PackageUserToDeliveryFrom; - -} diff --git a/src/main/java/com/interview/exercise/entities/AppUser.java b/src/main/java/com/interview/exercise/entities/AppUser.java deleted file mode 100644 index efc7448..0000000 --- a/src/main/java/com/interview/exercise/entities/AppUser.java +++ /dev/null @@ -1,30 +0,0 @@ -package com.interview.exercise.entities; - -import com.interview.exercise.Package; -import lombok.AllArgsConstructor; -import lombok.Data; -import lombok.NoArgsConstructor; - -import javax.persistence.*; -import java.time.LocalDateTime; -import java.util.List; - -@Entity -@Data -@NoArgsConstructor -public class AppUser { - - @Id - @GeneratedValue - private Long id; - private String name; - private String lastName; - private String company; - private LocalDateTime insertTime; - - @OneToOne - private Role role; - - @ManyToMany - public List aPackage; -} diff --git a/src/main/java/com/interview/exercise/entities/AppUserMapper.java b/src/main/java/com/interview/exercise/entities/AppUserMapper.java deleted file mode 100644 index e9741d6..0000000 --- a/src/main/java/com/interview/exercise/entities/AppUserMapper.java +++ /dev/null @@ -1,20 +0,0 @@ -package com.interview.exercise.entities; - -//Zakres szkolenia: - -import com.interview.exercise.entities.AppUser; -import com.interview.exercise.entities.UserDto; -import org.mapstruct.Mapper; -import org.mapstruct.Mapping; -import org.mapstruct.Named; - -import java.time.LocalDateTime; - -public interface AppUserMapper { - - AppUser userDtoToAppUser(UserDto userDto); - - default LocalDateTime modifyInsertName (UserDto userDto) { - return LocalDateTime.now(); - } -} diff --git a/src/main/java/com/interview/exercise/entities/AppUserRepository.java b/src/main/java/com/interview/exercise/entities/AppUserRepository.java deleted file mode 100644 index 6f8e196..0000000 --- a/src/main/java/com/interview/exercise/entities/AppUserRepository.java +++ /dev/null @@ -1,14 +0,0 @@ -package com.interview.exercise.entities; - -import org.springframework.data.jpa.repository.JpaRepository; -import org.springframework.stereotype.Repository; - -import java.util.List; - -@Repository -public interface AppUserRepository extends JpaRepository { - - List findAllByIdLike (List ids); - - List findAllByLastName (List nazwiska); -} diff --git a/src/main/java/com/interview/exercise/entities/FakturaSerwis.java b/src/main/java/com/interview/exercise/entities/FakturaSerwis.java deleted file mode 100644 index 8bf1de4..0000000 --- a/src/main/java/com/interview/exercise/entities/FakturaSerwis.java +++ /dev/null @@ -1,8 +0,0 @@ -package com.interview.exercise.entities; - - -import org.springframework.stereotype.Component; - -@Component -public class FakturaSerwis { -} diff --git a/src/main/java/com/interview/exercise/entities/GiveMeAllPackagesFacade.java b/src/main/java/com/interview/exercise/entities/GiveMeAllPackagesFacade.java deleted file mode 100644 index a9b4373..0000000 --- a/src/main/java/com/interview/exercise/entities/GiveMeAllPackagesFacade.java +++ /dev/null @@ -1,55 +0,0 @@ -package com.interview.exercise.entities; - -import com.interview.exercise.Package; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Controller; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.PathVariable; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; - -import java.util.ArrayList; -import java.util.List; - -@RestController -@RequestMapping("/paczki") - -public class GiveMeAllPackagesFacade { - - @Autowired - AppUserRepository appUserRepository; - - - @GetMapping("/all") - public List getAllPackagesInSystem(List użytkownicy) { - - int helper = 0; - - List wszyscy = new ArrayList(); - List userSurnames = new ArrayList<>(); - for (UserDto myUser :użytkownicy) { - - System.out.println(myUser.getName()); - - userSurnames.add( użytkownicy.get(helper).getSurname()); - - helper++; - - - wszyscy = appUserRepository.findAllByLastName(userSurnames); - } - - List paczki = new ArrayList<>(); - - for (AppUser user: wszyscy) { - List aPackage = user.aPackage; - paczki.addAll(aPackage); - } - - - return paczki; - - - } - -} diff --git a/src/main/java/com/interview/exercise/entities/Role.java b/src/main/java/com/interview/exercise/entities/Role.java deleted file mode 100644 index 046bdd3..0000000 --- a/src/main/java/com/interview/exercise/entities/Role.java +++ /dev/null @@ -1,28 +0,0 @@ -package com.interview.exercise.entities; - -import com.fasterxml.jackson.annotation.JsonBackReference; -import lombok.Data; - -import javax.persistence.Entity; -import javax.persistence.GeneratedValue; -import javax.persistence.Id; -import javax.persistence.OneToOne; - -@Entity -@Data -public class Role { - - @Id - @GeneratedValue - private Double id; - private String name; - private String lastName; - public String roleType; - public String upperName; - - @JsonBackReference - @OneToOne - public AppUser user; - - -} diff --git a/src/main/java/com/interview/exercise/entities/courier/Courier.java b/src/main/java/com/interview/exercise/entities/courier/Courier.java new file mode 100644 index 0000000..1d41f22 --- /dev/null +++ b/src/main/java/com/interview/exercise/entities/courier/Courier.java @@ -0,0 +1,10 @@ +package com.interview.exercise.entities.courier; + +import javax.persistence.Entity; +import javax.persistence.Id; + +@Entity +public class Courier { + @Id + int courierId; +} diff --git a/src/main/java/com/interview/exercise/entities/courier/CourierController.java b/src/main/java/com/interview/exercise/entities/courier/CourierController.java new file mode 100644 index 0000000..434056d --- /dev/null +++ b/src/main/java/com/interview/exercise/entities/courier/CourierController.java @@ -0,0 +1,28 @@ +package com.interview.exercise.entities.courier; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + +import java.util.ArrayList; + +@RestController +@RequestMapping("/courier") +public class CourierController { + @Autowired + CourierService service; + + @GetMapping("/all") + public ArrayList getAllCouriers() { + return service.getAllCouriers(); + } + + @GetMapping("/all/{name}") + public ArrayList getAllCouriersByName(@RequestParam("name") String name) { + return service.getAllCouriersByName(name); + } + + @PostMapping("") + public CourierDto createCourier(CourierDto courier) { + return service.createCourier(courier); + } +} diff --git a/src/main/java/com/interview/exercise/entities/courier/CourierDto.java b/src/main/java/com/interview/exercise/entities/courier/CourierDto.java new file mode 100644 index 0000000..2027f7e --- /dev/null +++ b/src/main/java/com/interview/exercise/entities/courier/CourierDto.java @@ -0,0 +1,5 @@ +package com.interview.exercise.entities.courier; + +public class CourierDto { + private int courierId; +} diff --git a/src/main/java/com/interview/exercise/entities/courier/CourierService.java b/src/main/java/com/interview/exercise/entities/courier/CourierService.java new file mode 100644 index 0000000..a45df0c --- /dev/null +++ b/src/main/java/com/interview/exercise/entities/courier/CourierService.java @@ -0,0 +1,20 @@ +package com.interview.exercise.entities.courier; + +import org.springframework.stereotype.Service; + +import java.util.ArrayList; + +@Service +class CourierService { + public ArrayList getAllCouriers() { + return null; + } + + public CourierDto createCourier(CourierDto courier) { + return null; + } + + public ArrayList getAllCouriersByName(String name) { + return null; + } +} diff --git a/src/main/java/com/interview/exercise/entities/FaktraController.java b/src/main/java/com/interview/exercise/entities/invoice/InvoiceController.java similarity index 56% rename from src/main/java/com/interview/exercise/entities/FaktraController.java rename to src/main/java/com/interview/exercise/entities/invoice/InvoiceController.java index 4ab3e6d..7a317f6 100644 --- a/src/main/java/com/interview/exercise/entities/FaktraController.java +++ b/src/main/java/com/interview/exercise/entities/invoice/InvoiceController.java @@ -1,11 +1,11 @@ -package com.interview.exercise.entities; +package com.interview.exercise.entities.invoice; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.RestController; @RestController -public class FaktraController { +public class InvoiceController { @Autowired - private FakturaSerwis fakturaSerwis; + private InvoiceService invoiceService; } diff --git a/src/main/java/com/interview/exercise/entities/invoice/InvoiceService.java b/src/main/java/com/interview/exercise/entities/invoice/InvoiceService.java new file mode 100644 index 0000000..78a0c8d --- /dev/null +++ b/src/main/java/com/interview/exercise/entities/invoice/InvoiceService.java @@ -0,0 +1,8 @@ +package com.interview.exercise.entities.invoice; + + +import org.springframework.stereotype.Component; + +@Component +public class InvoiceService { +} diff --git a/src/main/java/com/interview/exercise/entities/pack/Package.java b/src/main/java/com/interview/exercise/entities/pack/Package.java new file mode 100644 index 0000000..5a40891 --- /dev/null +++ b/src/main/java/com/interview/exercise/entities/pack/Package.java @@ -0,0 +1,18 @@ +package com.interview.exercise.entities.pack; + +import com.interview.exercise.entities.user.User; + +import javax.persistence.Entity; +import javax.persistence.Id; +import javax.persistence.ManyToMany; + +@Entity +public class Package { + + @Id + private int id; + + @ManyToMany + private User packageUserToDeliveryFrom; + +} diff --git a/src/main/java/com/interview/exercise/entities/pack/PackageController.java b/src/main/java/com/interview/exercise/entities/pack/PackageController.java new file mode 100644 index 0000000..6f140c2 --- /dev/null +++ b/src/main/java/com/interview/exercise/entities/pack/PackageController.java @@ -0,0 +1,52 @@ +package com.interview.exercise.entities.pack; + +import com.interview.exercise.entities.user.User; +import com.interview.exercise.entities.user.UserRepository; +import com.interview.exercise.entities.user.UserDto; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import java.util.ArrayList; +import java.util.List; + +@RestController +@RequestMapping("/paczki") + +public class PackageController { + + @Autowired + UserRepository appUserRepository; + + + @GetMapping("/all") + public List getAllPackagesInSystem(List consideredUsers) { + + int helper = 0; + + List allUsers = new ArrayList(); + List userSurnames = new ArrayList<>(); + for (UserDto myUser :consideredUsers) { + + System.out.println(myUser.getName()); + + userSurnames.add( consideredUsers.get(helper).getSurname()); + + helper++; + + + allUsers = appUserRepository.findAllByLastName(userSurnames); + } + + List paczki = new ArrayList<>(); + + for (User user: allUsers) { + List packages = user.getPackages(); + paczki.addAll(packages); + } + + return paczki; + } + +} diff --git a/src/main/java/com/interview/exercise/entities/role/Role.java b/src/main/java/com/interview/exercise/entities/role/Role.java new file mode 100644 index 0000000..9503d25 --- /dev/null +++ b/src/main/java/com/interview/exercise/entities/role/Role.java @@ -0,0 +1,43 @@ +package com.interview.exercise.entities.role; + +import com.fasterxml.jackson.annotation.JsonBackReference; +import com.interview.exercise.entities.user.User; +import lombok.Data; + +import javax.persistence.Entity; +import javax.persistence.GeneratedValue; +import javax.persistence.Id; +import javax.persistence.OneToOne; + +@Entity +@Data +public class Role implements RoleMapper { + + @Id + @GeneratedValue + private Double id; + private String name; + private String surname; + public String roleType; + public String upperName; + + @JsonBackReference + @OneToOne + public User user; + + + @Override + public Role roleDtoToRole(RoleDto roleDto) { + Role role = new Role(); + role.setName(roleDto.getName()); + role.setSurname(roleDto.getSurname()); + role.setUser(new User().userDtoToUser(roleDto.getUser())); + return role; + + } + + @Override + public String nameToUpper(RoleDto roleDto) { + return RoleMapper.super.nameToUpper(roleDto); + } +} diff --git a/src/main/java/com/interview/exercise/entities/RoleDto.java b/src/main/java/com/interview/exercise/entities/role/RoleDto.java similarity index 52% rename from src/main/java/com/interview/exercise/entities/RoleDto.java rename to src/main/java/com/interview/exercise/entities/role/RoleDto.java index b227b6c..2c0e4f4 100644 --- a/src/main/java/com/interview/exercise/entities/RoleDto.java +++ b/src/main/java/com/interview/exercise/entities/role/RoleDto.java @@ -1,15 +1,13 @@ -package com.interview.exercise.entities; +package com.interview.exercise.entities.role; +import com.interview.exercise.entities.user.UserDto; import lombok.Builder; import lombok.Data; @Data @Builder public class RoleDto { - private String name; private String surname; - private UserDto user; - - + private UserDto user; } diff --git a/src/main/java/com/interview/exercise/entities/RoleMapper.java b/src/main/java/com/interview/exercise/entities/role/RoleMapper.java similarity index 80% rename from src/main/java/com/interview/exercise/entities/RoleMapper.java rename to src/main/java/com/interview/exercise/entities/role/RoleMapper.java index 86c097a..c41ce16 100644 --- a/src/main/java/com/interview/exercise/entities/RoleMapper.java +++ b/src/main/java/com/interview/exercise/entities/role/RoleMapper.java @@ -1,4 +1,4 @@ -package com.interview.exercise.entities; +package com.interview.exercise.entities.role; public interface RoleMapper { diff --git a/src/main/java/com/interview/exercise/entities/user/User.java b/src/main/java/com/interview/exercise/entities/user/User.java new file mode 100644 index 0000000..72d70de --- /dev/null +++ b/src/main/java/com/interview/exercise/entities/user/User.java @@ -0,0 +1,40 @@ +package com.interview.exercise.entities.user; + +import com.interview.exercise.entities.pack.Package; +import com.interview.exercise.entities.role.Role; +import lombok.Data; +import lombok.NoArgsConstructor; + +import javax.persistence.*; +import java.time.LocalDateTime; +import java.util.List; + +@Entity +@Data +@NoArgsConstructor +public class User implements UserMapper { + + @Id + @GeneratedValue + private Long id; + private String name; + private String surname; + private String company; + private LocalDateTime insertTime; + + @OneToOne + private Role role; + + @ManyToMany + private List packages; + + @Override + public User userDtoToUser(UserDto userDto) { + return null; + } + + @Override + public LocalDateTime modifyInsertName(UserDto userDto) { + return UserMapper.super.modifyInsertName(userDto); + } +} diff --git a/src/main/java/com/interview/exercise/entities/UserDto.java b/src/main/java/com/interview/exercise/entities/user/UserDto.java similarity index 62% rename from src/main/java/com/interview/exercise/entities/UserDto.java rename to src/main/java/com/interview/exercise/entities/user/UserDto.java index 721135e..93420e7 100644 --- a/src/main/java/com/interview/exercise/entities/UserDto.java +++ b/src/main/java/com/interview/exercise/entities/user/UserDto.java @@ -1,12 +1,12 @@ -package com.interview.exercise.entities; +package com.interview.exercise.entities.user; +import com.interview.exercise.entities.role.RoleDto; import lombok.Builder; import lombok.Data; @Data @Builder public class UserDto { - private String name; private String surname; private RoleDto role; diff --git a/src/main/java/com/interview/exercise/entities/user/UserMapper.java b/src/main/java/com/interview/exercise/entities/user/UserMapper.java new file mode 100644 index 0000000..f43e48f --- /dev/null +++ b/src/main/java/com/interview/exercise/entities/user/UserMapper.java @@ -0,0 +1,12 @@ +package com.interview.exercise.entities.user; + +import java.time.LocalDateTime; + +public interface UserMapper { + + User userDtoToUser(UserDto userDto); + + default LocalDateTime modifyInsertName (UserDto userDto) { + return LocalDateTime.now(); + } +} diff --git a/src/main/java/com/interview/exercise/entities/user/UserRepository.java b/src/main/java/com/interview/exercise/entities/user/UserRepository.java new file mode 100644 index 0000000..cf4804f --- /dev/null +++ b/src/main/java/com/interview/exercise/entities/user/UserRepository.java @@ -0,0 +1,14 @@ +package com.interview.exercise.entities.user; + +import org.springframework.data.jpa.repository.JpaRepository; +import org.springframework.stereotype.Repository; + +import java.util.List; + +@Repository +public interface UserRepository extends JpaRepository { + + List findAllByIdLike (List ids); + + List findAllByLastName (List surnames); +}