diff --git a/src/main/java/com/example/onomatopoeiaback/controller/EmployeeController.java b/src/main/java/com/example/onomatopoeiaback/controller/EmployeeController.java index 79179e9..48feedf 100644 --- a/src/main/java/com/example/onomatopoeiaback/controller/EmployeeController.java +++ b/src/main/java/com/example/onomatopoeiaback/controller/EmployeeController.java @@ -12,7 +12,7 @@ import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.*; @RestController -@RequestMapping("/api") +@RequestMapping("/employee") public class EmployeeController { private final VisitService visitService; private final EmployeeService employeeService; @@ -22,11 +22,6 @@ public class EmployeeController { this.visitService = visitService; } - @GetMapping("/hello") - public String hello(@RequestParam(value = "name", defaultValue = "World") String name) { - return String.format("Hello %s!", name); - } - @PostMapping("/create") public ResponseEntity createEmployee(@RequestBody EmployeeDTO employeeDTO) { return ResponseEntity.ok(employeeService.createEmployee(employeeDTO)); @@ -43,8 +38,8 @@ public class EmployeeController { } @PatchMapping("/{username}/open") - public ResponseEntity open(@PathVariable String username, VisitDTO visitDTO) { - visitService.open(username, visitDTO.getValue()); + public ResponseEntity open(@PathVariable String username, @RequestBody VisitDTO visitDTO) { + visitService.open(username, visitDTO); return new ResponseEntity<>(HttpStatus.OK); } } diff --git a/src/main/java/com/example/onomatopoeiaback/service/EmployeeService.java b/src/main/java/com/example/onomatopoeiaback/service/EmployeeService.java index f0def79..f199f53 100644 --- a/src/main/java/com/example/onomatopoeiaback/service/EmployeeService.java +++ b/src/main/java/com/example/onomatopoeiaback/service/EmployeeService.java @@ -5,6 +5,7 @@ import com.example.onomatopoeiaback.domain.employee.EmployeeDTO; import com.example.onomatopoeiaback.repository.EmployeeRepository; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; +import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder; import org.springframework.stereotype.Service; import java.time.LocalDateTime; @@ -20,10 +21,16 @@ public class EmployeeService { } public Employee createEmployee(EmployeeDTO employeeDTO) { -// TODO + BCryptPasswordEncoder passwordEncoder = new BCryptPasswordEncoder(); + Employee employee = new Employee(); employee.setLogin(employeeDTO.getLogin()); - employee.setPassword(employeeDTO.getPassword()); + employee.setPassword(passwordEncoder.encode(employeeDTO.getPassword())); + employee.setName(employeeDTO.getName()); + employee.setPhoto(employeeDTO.getPhoto()); + employee.setPosition(employeeDTO.getPosition()); + + employee = employeeRepository.saveAndFlush(employee); 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 73987d8..6cc3d5d 100644 --- a/src/main/java/com/example/onomatopoeiaback/service/VisitService.java +++ b/src/main/java/com/example/onomatopoeiaback/service/VisitService.java @@ -1,10 +1,13 @@ package com.example.onomatopoeiaback.service; +import com.example.onomatopoeiaback.domain.employee.Employee; import com.example.onomatopoeiaback.domain.visit.Visit; +import com.example.onomatopoeiaback.domain.visit.VisitDTO; import com.example.onomatopoeiaback.exceptions.BadRequestException; import com.example.onomatopoeiaback.exceptions.UnauthorizedException; import com.example.onomatopoeiaback.repository.EmployeeRepository; +import com.example.onomatopoeiaback.repository.QrCodeRepository; import com.example.onomatopoeiaback.repository.VisitRepository; import org.springframework.stereotype.Service; @@ -15,14 +18,25 @@ import java.time.temporal.ChronoUnit; public class VisitService { private final VisitRepository visitRepository; private final EmployeeRepository employeeRepository; + final + QrCodeRepository qrCodeRepository; - public VisitService(VisitRepository visitRepository, EmployeeRepository employeeRepository) { + public VisitService(VisitRepository visitRepository, EmployeeRepository employeeRepository, QrCodeRepository qrCodeRepository) { this.visitRepository = visitRepository; this.employeeRepository = employeeRepository; + this.qrCodeRepository = qrCodeRepository; } - public void open(String login, Long value) { - Visit visit = visitRepository.getVisitByValue(value); +// TDDO: удалить это. и оставить open и доработать его. После этого объект Visit добавить пользователю в массив посещений. Реализовать получение посещений с offset и limit. Реализовать авторизацию и разделение методов на роли. + public Visit create(VisitDTO visitDTO) { + Visit visit = new Visit(); + visit.setQrCode(qrCodeRepository.getReferenceById(visitDTO.getQrCodeId())); + visit.setVisitType(visitDTO.getVisitType()); + return visitRepository.saveAndFlush(visit); + } + + public void open(String login, VisitDTO visitDTO) { + Visit visit = visitRepository.getVisitByValue(visitDTO.getValue()); Employee employee = employeeRepository.getEmployeesByLogin(login); if (employee == null) {