diff --git a/src/main/java/com/example/onomatopoeiaback/controller/EmployeeController.java b/src/main/java/com/example/onomatopoeiaback/controller/EmployeeController.java index 33d25bc..12451fb 100644 --- a/src/main/java/com/example/onomatopoeiaback/controller/EmployeeController.java +++ b/src/main/java/com/example/onomatopoeiaback/controller/EmployeeController.java @@ -31,21 +31,13 @@ public class EmployeeController { @GetMapping("/{username}/info") public ResponseEntity info(@PathVariable String username) { - return employeeService.info(username); + return ResponseEntity.ok(employeeService.info(username)); } @GetMapping("/{username}/auth") public ResponseEntity auth(@PathVariable String username) { - return new ResponseEntity<>(null, employeeService.auth(username)); - } - - @GetMapping("/{username}/visits") - public ResponseEntity> visits( - @PathVariable String username, - @RequestParam Integer offset, - @RequestParam Integer limit - ) { - return ResponseEntity.ok(employeeService.getVisits(username, offset, limit)); + employeeService.auth(username); + return new ResponseEntity<>(HttpStatus.OK); } @PatchMapping("/{username}/open") diff --git a/src/main/java/com/example/onomatopoeiaback/controller/VisitController.java b/src/main/java/com/example/onomatopoeiaback/controller/VisitController.java new file mode 100644 index 0000000..11f5507 --- /dev/null +++ b/src/main/java/com/example/onomatopoeiaback/controller/VisitController.java @@ -0,0 +1,28 @@ +package com.example.onomatopoeiaback.controller; + +import com.example.onomatopoeiaback.domain.visit.Visit; +import com.example.onomatopoeiaback.domain.visit.VisitDTO; +import com.example.onomatopoeiaback.service.VisitService; +import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.*; + +import java.util.List; + +@RestController +@RequestMapping("/visit") +public class VisitController { + private final VisitService visitService; + + public VisitController(VisitService visitService) { + this.visitService = visitService; + } + + @GetMapping("/{username}/visits") + public ResponseEntity> visits( + @PathVariable String username, + @RequestParam Integer offset, + @RequestParam Integer limit + ) { + return ResponseEntity.ok(visitService.getVisits(username, offset, limit)); + } +} diff --git a/src/main/java/com/example/onomatopoeiaback/service/EmployeeService.java b/src/main/java/com/example/onomatopoeiaback/service/EmployeeService.java index 3368340..ede2eb6 100644 --- a/src/main/java/com/example/onomatopoeiaback/service/EmployeeService.java +++ b/src/main/java/com/example/onomatopoeiaback/service/EmployeeService.java @@ -2,19 +2,12 @@ package com.example.onomatopoeiaback.service; import com.example.onomatopoeiaback.domain.employee.Employee; import com.example.onomatopoeiaback.domain.employee.EmployeeDTO; -import com.example.onomatopoeiaback.domain.visit.Visit; +import com.example.onomatopoeiaback.exceptions.UnauthorizedException; import com.example.onomatopoeiaback.repository.EmployeeRepository; -import jakarta.persistence.criteria.CriteriaBuilder; -import org.springframework.http.HttpStatus; -import org.springframework.http.ResponseEntity; +import com.example.onomatopoeiaback.repository.VisitRepository; import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder; import org.springframework.stereotype.Service; -import java.time.LocalDateTime; -import java.time.temporal.ChronoUnit; -import java.util.ArrayList; -import java.util.List; - @Service public class EmployeeService { @@ -38,33 +31,21 @@ public class EmployeeService { return employee; } - public HttpStatus auth(String login) { + public void auth(String login) { Employee employee = employeeRepository.getEmployeesByLogin(login); - if (employee == null) return HttpStatus.UNAUTHORIZED; - LocalDateTime localDateTime = LocalDateTime.now().truncatedTo(ChronoUnit.SECONDS); - employee.setLastVisit(localDateTime); - employeeRepository.save(employee); - - return HttpStatus.OK; + if (employee == null) { + throw new UnauthorizedException(); + } } - public ResponseEntity info(String login) { + public Employee info(String login) { Employee employee = employeeRepository.getEmployeesByLogin(login); - HttpStatus response_status = HttpStatus.OK; - if (employee == null) response_status = HttpStatus.UNAUTHORIZED; - else { - LocalDateTime localDateTime = LocalDateTime.now().truncatedTo(ChronoUnit.SECONDS); - employee.setLastVisit(localDateTime); - employeeRepository.save(employee); + if (employee == null) { + throw new UnauthorizedException(); } - return new ResponseEntity<>(employee, response_status); - } - - public List getVisits(String login, Integer offset, Integer limit) { - Employee employee = employeeRepository.getEmployeesByLogin(login); - return new ArrayList<>(); + return employee; } } diff --git a/src/main/java/com/example/onomatopoeiaback/service/VisitService.java b/src/main/java/com/example/onomatopoeiaback/service/VisitService.java index 3183371..baaa25e 100644 --- a/src/main/java/com/example/onomatopoeiaback/service/VisitService.java +++ b/src/main/java/com/example/onomatopoeiaback/service/VisitService.java @@ -14,6 +14,8 @@ import org.springframework.stereotype.Service; import java.time.LocalDateTime; import java.time.temporal.ChronoUnit; +import java.util.ArrayList; +import java.util.List; import java.util.Optional; @Service @@ -32,6 +34,8 @@ public class VisitService { public void register(String login, VisitDTO visitDTO) { Employee employee = employeeRepository.getEmployeesByLogin(login); + LocalDateTime localDateTime = LocalDateTime.now().truncatedTo(ChronoUnit.SECONDS); + Optional qrCodeOptional = qrCodeRepository.findById(visitDTO.getQrCodeId()); if (qrCodeOptional.isEmpty()) { throw new BadRequestException(); @@ -45,10 +49,15 @@ public class VisitService { Visit visit = new Visit(); visit.setQrCode(qrCode); visit.setVisitType(visitDTO.getVisitType()); + visit.setVisitTime(localDateTime); visit.setEmployee(employee); visitRepository.saveAndFlush(visit); - LocalDateTime localDateTime = LocalDateTime.now().truncatedTo(ChronoUnit.SECONDS); employee.setLastVisit(localDateTime); employeeRepository.saveAndFlush(employee); } + + public List getVisits(String login, Integer offset, Integer limit) { + Employee employee = employeeRepository.getEmployeesByLogin(login); + return new ArrayList<>(); + } }