diff --git a/src/main/java/com/example/nto/controller/AuthorizationController.java b/src/main/java/com/example/nto/controller/AuthorizationController.java new file mode 100644 index 0000000..54aa07b --- /dev/null +++ b/src/main/java/com/example/nto/controller/AuthorizationController.java @@ -0,0 +1,27 @@ +package com.example.nto.controller; + +import com.example.nto.dto.entity.employee.EmployeeCreateDTO; +import com.example.nto.dto.entity.employee.EmployeeDTO; +import com.example.nto.service.EmployeeService; +import lombok.RequiredArgsConstructor; +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; +import org.springframework.security.core.Authentication; +import org.springframework.web.bind.annotation.*; + +@RestController +@RequiredArgsConstructor +@RequestMapping("api/v1/authorization") +public class AuthorizationController { + private final EmployeeService employeeService; + + @GetMapping("/login") + public ResponseEntity login(Authentication authentication) { + return ResponseEntity.ok(employeeService.getByEmail(authentication.getName())); + } + + @PostMapping("/register") + public ResponseEntity registerEmployee(@RequestBody EmployeeCreateDTO employeeCreateDTO) { + return ResponseEntity.status(HttpStatus.CREATED).body(employeeService.create(employeeCreateDTO)); + } +} diff --git a/src/main/java/com/example/nto/controller/EmployeeController.java b/src/main/java/com/example/nto/controller/EmployeeController.java new file mode 100644 index 0000000..14535b4 --- /dev/null +++ b/src/main/java/com/example/nto/controller/EmployeeController.java @@ -0,0 +1,69 @@ +package com.example.nto.controller; + +import com.example.nto.dto.entity.employee.EmployeeDTO; +import com.example.nto.dto.entity.employee.EmployeeItemDTO; +import com.example.nto.service.EmployeeService; +import com.example.nto.service.PhotoService; +import lombok.RequiredArgsConstructor; +import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.*; + +import java.util.List; + +@RestController +@RequiredArgsConstructor +@RequestMapping("api/v1/employees") +public class EmployeeController { + private final EmployeeService employeeService; + private final PhotoService photoService; + + @GetMapping + public ResponseEntity> getAll() { + return ResponseEntity.ok(employeeService.getAll()); + } + + @GetMapping("/working/{isWorking}") + public ResponseEntity> getAllWorking(@PathVariable boolean isWorking) { + return ResponseEntity.ok(employeeService.getWorkingEmployee(isWorking)); + } + + @GetMapping("/{employeeId}") + public ResponseEntity getEmployeeById(@PathVariable long employeeId) { + return ResponseEntity.ok(employeeService.getById(employeeId)); + } + + @GetMapping("/email/{email}") + public ResponseEntity getEmployeeByEmail(@PathVariable String email) { + return ResponseEntity.ok(employeeService.getByEmail(email)); + } + + @GetMapping("/telephone/{telephone}") + public ResponseEntity getEmployeeByTelephone(@PathVariable String telephone) { + return ResponseEntity.ok(employeeService.getByTelephone(telephone)); + } + + @PutMapping("/{id}") + public ResponseEntity updateEmployee(@PathVariable long employeeId, @RequestBody EmployeeDTO employeeDTO) { + return ResponseEntity.ok(employeeService.update(employeeId, employeeDTO)); + } + + @DeleteMapping("/{id}") + public ResponseEntity deleteEmployeeById(@PathVariable long employeeId) { + employeeService.delete(employeeId); + return ResponseEntity.noContent().build(); + } + + @PatchMapping("/image/profile/{id}") + public ResponseEntity patchImageProfile(@PathVariable long employeeId, @RequestBody byte[] photo) { + String imageUrl = photoService.uploadProfilePhoto(employeeId, photo); + employeeService.patchProfileImage(employeeId, imageUrl); + return ResponseEntity.noContent().build(); + } + + @PatchMapping("/block/{id}/{blockStatus}") + public ResponseEntity patchImageProfile(@PathVariable long employeeId, @PathVariable boolean blockStatus) { + employeeService.patchBlockEmployee(employeeId, blockStatus); + return ResponseEntity.noContent().build(); + } + +} diff --git a/src/main/java/com/example/nto/controller/OfficeController.java b/src/main/java/com/example/nto/controller/OfficeController.java new file mode 100644 index 0000000..276935b --- /dev/null +++ b/src/main/java/com/example/nto/controller/OfficeController.java @@ -0,0 +1,50 @@ +package com.example.nto.controller; + +import com.example.nto.dto.entity.OfficeDTO; +import com.example.nto.service.OfficeService; +import lombok.RequiredArgsConstructor; +import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.*; + +import java.util.List; + +@RestController +@RequiredArgsConstructor +@RequestMapping("api/v1/offices") +public class OfficeController { + private final OfficeService officeService; + + @GetMapping + public ResponseEntity> getAll() { + return ResponseEntity.ok(officeService.getAllOffice()); + } + + @GetMapping("/sorted/distance") + public ResponseEntity> getAllSortedByDistance( + @RequestParam(name = "latitude") double latitude, + @RequestParam(name = "longitude") double longitude + ) { + return ResponseEntity.ok(officeService.getAllSortedDistance(latitude, longitude)); + } + + @GetMapping("/{officeId}") + public ResponseEntity getById(@PathVariable long officeId) { + return ResponseEntity.ok(officeService.getById(officeId)); + } + + @PostMapping + public ResponseEntity createOffice(@RequestBody OfficeDTO officeDTO) { + return ResponseEntity.ok(officeService.create(officeDTO)); + } + + @PutMapping("/{officeId}") + public ResponseEntity updateOffice(@PathVariable long officeId, @RequestBody OfficeDTO officeDTO) { + return ResponseEntity.ok(officeService.update(officeId, officeDTO)); + } + + @DeleteMapping("/{officeId}") + public ResponseEntity deleteOffice(@PathVariable long officeId) { + officeService.delete(officeId); + return ResponseEntity.noContent().build(); + } +} diff --git a/src/main/java/com/example/nto/controller/TerminalController.java b/src/main/java/com/example/nto/controller/TerminalController.java new file mode 100644 index 0000000..5e3fa20 --- /dev/null +++ b/src/main/java/com/example/nto/controller/TerminalController.java @@ -0,0 +1,47 @@ +package com.example.nto.controller; + +import com.example.nto.dto.entity.TerminalDTO; +import com.example.nto.service.TerminalService; +import lombok.RequiredArgsConstructor; +import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.*; + +import java.util.List; + +@RestController +@RequiredArgsConstructor +@RequestMapping("api/v1/terminals") +public class TerminalController { + private final TerminalService terminalService; + + @GetMapping + public ResponseEntity> getAll() { + return ResponseEntity.ok(terminalService.getAllTerminal()); + } + + @GetMapping("/{terminalId}") + public ResponseEntity getTerminalById(@PathVariable long terminalId) { + return ResponseEntity.ok(terminalService.getById(terminalId)); + } + + @GetMapping("/check/{code}") + public ResponseEntity checkCode(@PathVariable String code) { + return ResponseEntity.ok(terminalService.checkCode(code)); + } + + @PostMapping + public ResponseEntity createTerminal(@RequestBody TerminalDTO terminalDTO) { + return ResponseEntity.ok(terminalService.create(terminalDTO)); + } + + @PutMapping("/{terminalId}") + public ResponseEntity updateTerminal(@PathVariable long terminalId, @RequestBody TerminalDTO terminalDTO) { + return ResponseEntity.ok(terminalService.update(terminalId, terminalDTO)); + } + + @DeleteMapping("/{terminalId}") + public ResponseEntity deleteTerminal(@PathVariable long terminalId) { + terminalService.delete(terminalId); + return ResponseEntity.noContent().build(); + } +}