From 02a8c05142c0e15923b6c1e19a25113abe5347a0 Mon Sep 17 00:00:00 2001 From: indx0 Date: Fri, 21 Nov 2025 21:39:00 +0300 Subject: [PATCH] Commit #2 --- .../nto/controller/BookingController.java | 30 +++++++++++++++++++ .../nto/controller/EmployeeController.java | 26 ++++------------ .../com/example/nto/dto/CreateBookingDTO.java | 11 +++++++ .../java/com/example/nto/dto/EmployeeDTO.java | 2 -- .../handler/GlobalExceptionHandler.java | 2 +- .../nto/repository/BookingRepository.java | 4 +++ .../nto/repository/EmployeeRepository.java | 4 +-- .../example/nto/service/BookingService.java | 8 +++++ .../example/nto/service/EmployeeService.java | 4 +-- .../nto/service/impl/BookingServiceImpl.java | 22 ++++++++++++++ .../nto/service/impl/EmployeeServiceImpl.java | 7 ++++- 11 files changed, 92 insertions(+), 28 deletions(-) create mode 100644 src/main/java/com/example/nto/dto/CreateBookingDTO.java diff --git a/src/main/java/com/example/nto/controller/BookingController.java b/src/main/java/com/example/nto/controller/BookingController.java index 9885f84..0bb9be5 100644 --- a/src/main/java/com/example/nto/controller/BookingController.java +++ b/src/main/java/com/example/nto/controller/BookingController.java @@ -1,10 +1,40 @@ package com.example.nto.controller; +import com.example.nto.dto.CreateBookingDTO; +import com.example.nto.entity.Place; +import com.example.nto.service.BookingService; +import com.example.nto.service.EmployeeService; +import lombok.RequiredArgsConstructor; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.*; + +import java.time.LocalDate; +import java.util.List; +import java.util.Map; + /** * TODO: ДОРАБОТАТЬ в рамках задания * ================================= * МОЖНО: Добавлять методы, аннотации, зависимости * НЕЛЬЗЯ: Изменять название класса и пакета */ +@RestController +@RequestMapping("/api") +@RequiredArgsConstructor public class BookingController { + + @Autowired + private BookingService bookingService; + + @GetMapping("/{code}/booking") + public ResponseEntity>> getAvailablePlaces(@PathVariable String code) { + return ResponseEntity.noContent().build(); + } + + @PostMapping("/{code}/book") + public ResponseEntity createBooking(@RequestBody CreateBookingDTO createBookingDTO, @PathVariable String code) { + bookingService.createBooking(createBookingDTO); + return ResponseEntity.ok().build(); + } } diff --git a/src/main/java/com/example/nto/controller/EmployeeController.java b/src/main/java/com/example/nto/controller/EmployeeController.java index 788f1ee..f10a76d 100644 --- a/src/main/java/com/example/nto/controller/EmployeeController.java +++ b/src/main/java/com/example/nto/controller/EmployeeController.java @@ -1,11 +1,8 @@ package com.example.nto.controller; -import com.example.nto.dto.EmployeeDTO; -import com.example.nto.entity.Employee; +import com.example.nto.dto.EmployeeDTO;; import com.example.nto.exception.CodeNotFoundException; -import com.example.nto.repository.EmployeeRepository; import com.example.nto.service.EmployeeService; -import com.example.nto.util.EmployeeMapper; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.GetMapping; @@ -14,7 +11,7 @@ import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; /** - * TODO: ДОРАБОТАТЬ в рамках задания + * FINISHED_TODO: ДОРАБОТАТЬ в рамках задания * ================================= * МОЖНО: Добавлять методы, аннотации, зависимости * НЕЛЬЗЯ: Изменять название класса и пакета @@ -28,24 +25,13 @@ public class EmployeeController { @GetMapping("/{code}/auth") public ResponseEntity auth(@PathVariable String code) { - boolean codeExists = employeeService.codeExists(code); - if(codeExists) { - return ResponseEntity.ok().build(); - } - else { - throw new CodeNotFoundException("Code Does Not Exist"); - } + employeeService.codeExists(code); + return ResponseEntity.ok().build(); + } @GetMapping("/{code}/info") public ResponseEntity info(@PathVariable String code) { - boolean codeExists = employeeService.codeExists(code); - - if(codeExists) { - return ResponseEntity.ok(employeeService.getInfo(code)); - } - else { - throw new CodeNotFoundException("Code Does Not Exist"); - } + return ResponseEntity.ok(employeeService.getInfo(code)); } } diff --git a/src/main/java/com/example/nto/dto/CreateBookingDTO.java b/src/main/java/com/example/nto/dto/CreateBookingDTO.java new file mode 100644 index 0000000..2d03d9d --- /dev/null +++ b/src/main/java/com/example/nto/dto/CreateBookingDTO.java @@ -0,0 +1,11 @@ +package com.example.nto.dto; + +import lombok.Data; + +import java.time.LocalDate; + +@Data +public class CreateBookingDTO { + LocalDate date; + Long placeID; +} diff --git a/src/main/java/com/example/nto/dto/EmployeeDTO.java b/src/main/java/com/example/nto/dto/EmployeeDTO.java index 1fe6236..dd33647 100644 --- a/src/main/java/com/example/nto/dto/EmployeeDTO.java +++ b/src/main/java/com/example/nto/dto/EmployeeDTO.java @@ -1,11 +1,9 @@ package com.example.nto.dto; -import com.example.nto.entity.Booking; import com.example.nto.entity.Place; import lombok.Data; import java.time.LocalDate; -import java.util.List; import java.util.Map; @Data diff --git a/src/main/java/com/example/nto/exception/handler/GlobalExceptionHandler.java b/src/main/java/com/example/nto/exception/handler/GlobalExceptionHandler.java index 9ebccff..70823e1 100644 --- a/src/main/java/com/example/nto/exception/handler/GlobalExceptionHandler.java +++ b/src/main/java/com/example/nto/exception/handler/GlobalExceptionHandler.java @@ -10,6 +10,6 @@ import org.springframework.web.bind.annotation.ExceptionHandler; public class GlobalExceptionHandler { @ExceptionHandler(CodeNotFoundException.class) public ResponseEntity handleCodeNotFoundException(CodeNotFoundException e) { - return new ResponseEntity(HttpStatus.UNAUTHORIZED); + return new ResponseEntity<>(HttpStatus.UNAUTHORIZED); } } diff --git a/src/main/java/com/example/nto/repository/BookingRepository.java b/src/main/java/com/example/nto/repository/BookingRepository.java index abc2acd..33977d5 100644 --- a/src/main/java/com/example/nto/repository/BookingRepository.java +++ b/src/main/java/com/example/nto/repository/BookingRepository.java @@ -3,6 +3,9 @@ package com.example.nto.repository; import com.example.nto.entity.Booking; import org.springframework.data.jpa.repository.JpaRepository; +import java.time.LocalDate; +import java.util.List; + /** * FINISHED_TODO: ДОРАБОТАТЬ в рамках задания * ================================= @@ -10,4 +13,5 @@ import org.springframework.data.jpa.repository.JpaRepository; * НЕЛЬЗЯ: Изменять название класса и пакета */ public interface BookingRepository extends JpaRepository { + List findByDateBetween(LocalDate startDate, LocalDate endDate); } diff --git a/src/main/java/com/example/nto/repository/EmployeeRepository.java b/src/main/java/com/example/nto/repository/EmployeeRepository.java index 3b2a5e9..9473afc 100644 --- a/src/main/java/com/example/nto/repository/EmployeeRepository.java +++ b/src/main/java/com/example/nto/repository/EmployeeRepository.java @@ -10,6 +10,6 @@ import org.springframework.data.jpa.repository.JpaRepository; * НЕЛЬЗЯ: Изменять название класса и пакета */ public interface EmployeeRepository extends JpaRepository { - public boolean existsByCode(String code); - public Employee findByCode(String code); + boolean existsByCode(String code); + Employee findByCode(String code); } diff --git a/src/main/java/com/example/nto/service/BookingService.java b/src/main/java/com/example/nto/service/BookingService.java index 31ec148..555cd39 100644 --- a/src/main/java/com/example/nto/service/BookingService.java +++ b/src/main/java/com/example/nto/service/BookingService.java @@ -1,5 +1,11 @@ package com.example.nto.service; +import com.example.nto.dto.CreateBookingDTO; +import com.example.nto.entity.Place; +import java.time.LocalDate; +import java.util.List; +import java.util.Map; + /** * TODO: ДОРАБОТАТЬ в рамках задания * ================================= @@ -7,4 +13,6 @@ package com.example.nto.service; * НЕЛЬЗЯ: Изменять название класса и пакета */ public interface BookingService { + Map> getAvailablePlaces(); + void createBooking(CreateBookingDTO createBookingDTO); } diff --git a/src/main/java/com/example/nto/service/EmployeeService.java b/src/main/java/com/example/nto/service/EmployeeService.java index 83c95b5..6ca99f2 100644 --- a/src/main/java/com/example/nto/service/EmployeeService.java +++ b/src/main/java/com/example/nto/service/EmployeeService.java @@ -9,6 +9,6 @@ import com.example.nto.dto.EmployeeDTO; * НЕЛЬЗЯ: Изменять название класса и пакета */ public interface EmployeeService { - public boolean codeExists(String code); - public EmployeeDTO getInfo(String code); + boolean codeExists(String code); + EmployeeDTO getInfo(String code); } diff --git a/src/main/java/com/example/nto/service/impl/BookingServiceImpl.java b/src/main/java/com/example/nto/service/impl/BookingServiceImpl.java index d24b244..71f08a4 100644 --- a/src/main/java/com/example/nto/service/impl/BookingServiceImpl.java +++ b/src/main/java/com/example/nto/service/impl/BookingServiceImpl.java @@ -1,6 +1,15 @@ package com.example.nto.service.impl; +import com.example.nto.dto.CreateBookingDTO; +import com.example.nto.entity.Place; +import com.example.nto.repository.BookingRepository; import com.example.nto.service.BookingService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.time.LocalDate; +import java.util.List; +import java.util.Map; /** * TODO: ДОРАБОТАТЬ в рамках задания @@ -8,5 +17,18 @@ import com.example.nto.service.BookingService; * МОЖНО: Добавлять методы, аннотации, зависимости * НЕЛЬЗЯ: Изменять название класса и пакета */ +@Service public class BookingServiceImpl implements BookingService { + @Autowired + BookingRepository bookingRepository; + + @Override + public Map> getAvailablePlaces() { + return Map.of(); + } + + @Override + public void createBooking(CreateBookingDTO createBookingDTO) { + + } } diff --git a/src/main/java/com/example/nto/service/impl/EmployeeServiceImpl.java b/src/main/java/com/example/nto/service/impl/EmployeeServiceImpl.java index 0cfbc24..6069bae 100644 --- a/src/main/java/com/example/nto/service/impl/EmployeeServiceImpl.java +++ b/src/main/java/com/example/nto/service/impl/EmployeeServiceImpl.java @@ -2,6 +2,7 @@ package com.example.nto.service.impl; import com.example.nto.dto.EmployeeDTO; import com.example.nto.entity.Employee; +import com.example.nto.exception.CodeNotFoundException; import com.example.nto.repository.EmployeeRepository; import com.example.nto.service.EmployeeService; import com.example.nto.util.EmployeeMapper; @@ -22,11 +23,15 @@ public class EmployeeServiceImpl implements EmployeeService { @Override public boolean codeExists(String code) { boolean codeExists = employeeRepository.existsByCode(code); - return codeExists; + if(!codeExists) { + throw new CodeNotFoundException("Code Not Found"); + } + return employeeRepository.existsByCode(code); } @Override public EmployeeDTO getInfo(String code) { + this.codeExists(code); Employee employee = employeeRepository.findByCode(code); return EmployeeMapper.convertToDTO(employee); }