Compare commits

...

3 Commits

Author SHA1 Message Date
Bhumi Shah
bbd0182ae8 Win 2025-12-05 20:56:00 +03:00
Bhumi Shah
884adb5d6e Win 2025-12-05 20:55:19 +03:00
Bhumi Shah
9f437b83e2 Win 2025-12-05 20:52:06 +03:00
10 changed files with 0 additions and 55 deletions

View File

@@ -15,11 +15,4 @@ public class App {
public static void main(String[] args) { public static void main(String[] args) {
SpringApplication.run(App.class , args); SpringApplication.run(App.class , args);
} }
@RestController
public static class HomeController {
@GetMapping("/")
public String home() {
return "Сервер работает!";
}
}
} }

View File

@@ -9,13 +9,11 @@ import com.example.nto.repository.PlaceRepository;
import com.example.nto.service.BookingService; import com.example.nto.service.BookingService;
import com.example.nto.service.EmployeeService; import com.example.nto.service.EmployeeService;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.format.annotation.DateTimeFormat;
import org.springframework.http.HttpStatus; import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity; import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import java.time.LocalDate; import java.time.LocalDate;
import java.util.HashMap;
import java.util.LinkedHashMap; import java.util.LinkedHashMap;
import java.util.Map; import java.util.Map;
@@ -58,7 +56,6 @@ public class BookingController {
@RequestParam String date @RequestParam String date
) { ) {
try { try {
// Проверка обязательных параметров
if (placeId == null || date == null || date.isEmpty()) { if (placeId == null || date == null || date.isEmpty()) {
return ResponseEntity.status(HttpStatus.BAD_REQUEST) return ResponseEntity.status(HttpStatus.BAD_REQUEST)
.body("Place ID and date must be provided"); .body("Place ID and date must be provided");
@@ -68,15 +65,11 @@ public class BookingController {
return ResponseEntity.status(HttpStatus.UNAUTHORIZED) return ResponseEntity.status(HttpStatus.UNAUTHORIZED)
.body("Employee not found"); .body("Employee not found");
} }
// Получаем место
Place place = placeRepository.findById(placeId).orElse(null); Place place = placeRepository.findById(placeId).orElse(null);
if (place == null) { if (place == null) {
return ResponseEntity.status(HttpStatus.BAD_REQUEST) return ResponseEntity.status(HttpStatus.BAD_REQUEST)
.body("Place not found"); .body("Place not found");
} }
// Парсим дату
LocalDate bookingDate; LocalDate bookingDate;
try { try {
bookingDate = LocalDate.parse(date); bookingDate = LocalDate.parse(date);
@@ -84,8 +77,6 @@ public class BookingController {
return ResponseEntity.status(HttpStatus.BAD_REQUEST) return ResponseEntity.status(HttpStatus.BAD_REQUEST)
.body("Invalid date format. Use yyyy-MM-dd"); .body("Invalid date format. Use yyyy-MM-dd");
} }
// Проверяем, свободно ли место на эту дату
boolean exists = bookingRepository.findByDateBetween(bookingDate, bookingDate) boolean exists = bookingRepository.findByDateBetween(bookingDate, bookingDate)
.stream() .stream()
.anyMatch(b -> b.getPlace().getId() == placeId); .anyMatch(b -> b.getPlace().getId() == placeId);
@@ -98,16 +89,12 @@ public class BookingController {
booking.setPlace(place); booking.setPlace(place);
booking.setDate(bookingDate); booking.setDate(bookingDate);
bookingRepository.save(booking); bookingRepository.save(booking);
// Формируем ответ
Map<String, Object> response = new LinkedHashMap<>(); Map<String, Object> response = new LinkedHashMap<>();
response.put("id", booking.getId()); response.put("id", booking.getId());
response.put("date", booking.getDate()); response.put("date", booking.getDate());
response.put("placeId", place.getId()); response.put("placeId", place.getId());
response.put("employeeId", employee.getId()); response.put("employeeId", employee.getId());
return ResponseEntity.status(HttpStatus.CREATED).body(response); return ResponseEntity.status(HttpStatus.CREATED).body(response);
} catch (java.lang.IllegalArgumentException e) { } catch (java.lang.IllegalArgumentException e) {
return ResponseEntity.status(HttpStatus.BAD_REQUEST).body(e.getMessage()); return ResponseEntity.status(HttpStatus.BAD_REQUEST).body(e.getMessage());
} catch (Exception e) { } catch (Exception e) {

View File

@@ -1,20 +1,12 @@
package com.example.nto.controller; package com.example.nto.controller;
import com.example.nto.entity.Booking;
import com.example.nto.entity.Employee; import com.example.nto.entity.Employee;
import com.example.nto.excepation.EmployeeNotFoundException; import com.example.nto.excepation.EmployeeNotFoundException;
import com.example.nto.repository.BookingRepository;
import com.example.nto.repository.EmployeeRepository;
import com.example.nto.service.EmployeeService; import com.example.nto.service.EmployeeService;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpStatus; import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity; import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/** /**
* TODO: ДОРАБОТАТЬ в рамках задания * TODO: ДОРАБОТАТЬ в рамках задания
* ================================= * =================================
@@ -24,7 +16,6 @@ import java.util.Map;
@RestController @RestController
@RequestMapping("/api") @RequestMapping("/api")
public class EmployeeController { public class EmployeeController {
@Autowired @Autowired
private EmployeeService employeeService; private EmployeeService employeeService;
@GetMapping("/{code}/auth") @GetMapping("/{code}/auth")
@@ -43,7 +34,6 @@ public class EmployeeController {
return ResponseEntity.status(HttpStatus.NOT_FOUND).build(); return ResponseEntity.status(HttpStatus.NOT_FOUND).build();
} }
} }
@GetMapping("/{code}/info") @GetMapping("/{code}/info")
public ResponseEntity<?> getEmployeeInfo(@PathVariable String code) { public ResponseEntity<?> getEmployeeInfo(@PathVariable String code) {
try { try {

View File

@@ -1,7 +0,0 @@
package com.example.nto.excepation;
public class ConflictException extends RuntimeException {
public ConflictException(String message) {
super(message);
}
}

View File

@@ -2,13 +2,11 @@ package com.example.nto.repository;
import com.example.nto.entity.Booking; import com.example.nto.entity.Booking;
import com.example.nto.entity.Employee; import com.example.nto.entity.Employee;
import com.example.nto.entity.Place;
import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.stereotype.Repository; import org.springframework.stereotype.Repository;
import java.time.LocalDate; import java.time.LocalDate;
import java.util.List; import java.util.List;
import java.util.Optional;
/** /**
* TODO: ДОРАБОТАТЬ в рамках задания * TODO: ДОРАБОТАТЬ в рамках задания

View File

@@ -1,8 +1,6 @@
package com.example.nto.service; package com.example.nto.service;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.util.List;
import java.util.Map; import java.util.Map;
@Service @Service

View File

@@ -1,11 +1,7 @@
package com.example.nto.service; package com.example.nto.service;
import com.example.nto.entity.Booking;
import com.example.nto.entity.Employee; import com.example.nto.entity.Employee;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.util.List;
import java.util.Map;
/** /**
* TODO: ДОРАБОТАТЬ в рамках задания * TODO: ДОРАБОТАТЬ в рамках задания
* ================================= * =================================

View File

@@ -7,7 +7,6 @@ import org.springframework.stereotype.Service;
@Service @Service
public class PlaceServise { public class PlaceServise {
private final PlaceRepository placeRepository; private final PlaceRepository placeRepository;
public PlaceServise(PlaceRepository placeRepository) { public PlaceServise(PlaceRepository placeRepository) {
this.placeRepository = placeRepository; this.placeRepository = placeRepository;
} }

View File

@@ -35,7 +35,6 @@ public class BookingServiceImpl implements BookingService {
if (employee == null) { if (employee == null) {
throw new EmployeeNotFoundException("Employee not found with code: " + employeeCode); throw new EmployeeNotFoundException("Employee not found with code: " + employeeCode);
} }
LocalDate today = LocalDate.now(); LocalDate today = LocalDate.now();
LocalDate endDate = today.plusDays(3); LocalDate endDate = today.plusDays(3);
List<Booking> bookings = bookingRepository.findByDateBetween(today, endDate); List<Booking> bookings = bookingRepository.findByDateBetween(today, endDate);

View File

@@ -1,5 +1,4 @@
package com.example.nto.service.impl; package com.example.nto.service.impl;
import com.example.nto.entity.Booking;
import com.example.nto.entity.Employee; import com.example.nto.entity.Employee;
import com.example.nto.excepation.EmployeeNotFoundException; import com.example.nto.excepation.EmployeeNotFoundException;
import com.example.nto.repository.BookingRepository; import com.example.nto.repository.BookingRepository;
@@ -8,8 +7,6 @@ import com.example.nto.service.EmployeeService;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.util.List;
/** /**
* TODO: ДОРАБОТАТЬ в рамках задания * TODO: ДОРАБОТАТЬ в рамках задания
@@ -19,13 +16,8 @@ import java.util.List;
*/ */
@Service @Service
public class EmployeeServiceImpl implements EmployeeService { public class EmployeeServiceImpl implements EmployeeService {
@Autowired @Autowired
private EmployeeRepository employeeRepository; private EmployeeRepository employeeRepository;
@Autowired
private BookingRepository bookingRepository;
@Override @Override
public Employee getEmployeeWithBookings(String code) { public Employee getEmployeeWithBookings(String code) {
if (code == null || code.isEmpty()) { if (code == null || code.isEmpty()) {