-
Notifications
You must be signed in to change notification settings - Fork 1
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #13 from 2dongyeop/dongyeop
feat: 의료진 조회 및 수정, 삭제 유스케이스 개발(#8)
- Loading branch information
Showing
28 changed files
with
411 additions
and
10 deletions.
There are no files selected for viewing
15 changes: 9 additions & 6 deletions
15
...t/avocadobackendhexagonal/domain/auth/application/port/in/command/SignupStaffCommand.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,11 +1,14 @@ | ||
package io.wisoft.avocadobackendhexagonal.domain.auth.application.port.in.command; | ||
|
||
import jakarta.validation.constraints.NotBlank; | ||
import jakarta.validation.constraints.NotNull; | ||
|
||
public record SignupStaffCommand( | ||
String name, | ||
String email, | ||
String password, | ||
String license_path, | ||
String dept, | ||
Long hospitalId | ||
@NotBlank String name, | ||
@NotBlank String email, | ||
@NotBlank String password, | ||
@NotBlank String license_path, | ||
@NotBlank String dept, | ||
@NotNull Long hospitalId | ||
) { | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
1 change: 0 additions & 1 deletion
1
...isoft/avocadobackendhexagonal/domain/hospital/adapter/out/persistence/HospitalMapper.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
21 changes: 21 additions & 0 deletions
21
.../io/wisoft/avocadobackendhexagonal/domain/staff/adapter/in/web/DeleteStaffController.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,21 @@ | ||
package io.wisoft.avocadobackendhexagonal.domain.staff.adapter.in.web; | ||
|
||
import io.wisoft.avocadobackendhexagonal.domain.staff.application.port.in.DeleteStaffUseCase; | ||
import lombok.RequiredArgsConstructor; | ||
import org.springframework.http.ResponseEntity; | ||
import org.springframework.web.bind.annotation.DeleteMapping; | ||
import org.springframework.web.bind.annotation.PathVariable; | ||
import org.springframework.web.bind.annotation.RestController; | ||
|
||
@RestController | ||
@RequiredArgsConstructor | ||
public class DeleteStaffController { | ||
|
||
private final DeleteStaffUseCase deleteStaffUseCase; | ||
|
||
@DeleteMapping("api/staff/{id}") | ||
public ResponseEntity<Void> deleteStaff(@PathVariable("id") final Long id) { | ||
deleteStaffUseCase.delete(id); | ||
return ResponseEntity.ok().build(); | ||
} | ||
} |
47 changes: 47 additions & 0 deletions
47
...va/io/wisoft/avocadobackendhexagonal/domain/staff/adapter/in/web/LoadStaffController.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,47 @@ | ||
package io.wisoft.avocadobackendhexagonal.domain.staff.adapter.in.web; | ||
|
||
import io.wisoft.avocadobackendhexagonal.domain.staff.adapter.in.web.dto.StaffDto; | ||
import io.wisoft.avocadobackendhexagonal.domain.staff.application.port.in.LoadStaffUseCase; | ||
import io.wisoft.avocadobackendhexagonal.domain.staff.domain.Staff; | ||
import lombok.RequiredArgsConstructor; | ||
import org.springframework.http.ResponseEntity; | ||
import org.springframework.web.bind.annotation.GetMapping; | ||
import org.springframework.web.bind.annotation.PathVariable; | ||
import org.springframework.web.bind.annotation.RestController; | ||
|
||
import java.util.List; | ||
|
||
|
||
@RestController | ||
@RequiredArgsConstructor | ||
public class LoadStaffController { | ||
|
||
private final LoadStaffUseCase loadStaffUseCase; | ||
|
||
@GetMapping("api/staff/{id}/details") | ||
public ResponseEntity<StaffDto> staff(@PathVariable("id") final Long id) { | ||
|
||
return ResponseEntity.ok(getStaffDto(loadStaffUseCase.loadStaff(id))); | ||
} | ||
|
||
@GetMapping("/api/staff") | ||
public ResponseEntity<List<StaffDto>> staffs() { | ||
return ResponseEntity.ok( | ||
loadStaffUseCase.loadStaffList().stream() | ||
.map(staff -> getStaffDto(staff)) | ||
.toList() | ||
); | ||
} | ||
|
||
private StaffDto getStaffDto(final Staff staff) { | ||
final StaffDto staffDto = new StaffDto( | ||
staff.getId(), | ||
staff.getName(), | ||
staff.getEmail(), | ||
staff.getLicense_path(), | ||
staff.getDept().name(), | ||
staff.getHospital().getName() | ||
); | ||
return staffDto; | ||
} | ||
} |
45 changes: 45 additions & 0 deletions
45
.../io/wisoft/avocadobackendhexagonal/domain/staff/adapter/in/web/UpdateStaffController.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,45 @@ | ||
package io.wisoft.avocadobackendhexagonal.domain.staff.adapter.in.web; | ||
|
||
import io.wisoft.avocadobackendhexagonal.domain.staff.adapter.in.web.dto.UpdateStaffPasswordRequest; | ||
import io.wisoft.avocadobackendhexagonal.domain.staff.application.port.in.UpdateStaffUseCase; | ||
import io.wisoft.avocadobackendhexagonal.domain.staff.application.port.in.command.UpdateStaffPasswordCommand; | ||
import jakarta.validation.Valid; | ||
import lombok.RequiredArgsConstructor; | ||
import org.springframework.http.ResponseEntity; | ||
import org.springframework.web.bind.annotation.*; | ||
|
||
@RestController | ||
@RequiredArgsConstructor | ||
public class UpdateStaffController { | ||
|
||
private final UpdateStaffUseCase updateStaffUseCase; | ||
|
||
@PatchMapping("/api/staff/{id}/password") | ||
public ResponseEntity<Void> updateStaffPassword( | ||
@PathVariable("id") final Long id, | ||
@RequestBody @Valid final UpdateStaffPasswordRequest request) { | ||
|
||
final UpdateStaffPasswordCommand command = getUpdateStaffPasswordCommand(request); | ||
updateStaffUseCase.updatePassword(id, command); | ||
|
||
return ResponseEntity.ok().build(); | ||
} | ||
|
||
@PatchMapping("/api/staff/{id}") | ||
public ResponseEntity<Void> updateStaff( | ||
@PathVariable("id") final Long id, | ||
@RequestParam(value = "hospitalName", required = false) final String hospitalName, | ||
@RequestParam(value = "photoPath", required = false) final String photoPath) { | ||
|
||
updateStaffUseCase.updateStaff(id, hospitalName, photoPath); | ||
return ResponseEntity.ok().build(); | ||
} | ||
|
||
private UpdateStaffPasswordCommand getUpdateStaffPasswordCommand(final UpdateStaffPasswordRequest request) { | ||
final UpdateStaffPasswordCommand command = new UpdateStaffPasswordCommand( | ||
request.oldPassword(), | ||
request.newPassword() | ||
); | ||
return command; | ||
} | ||
} |
15 changes: 15 additions & 0 deletions
15
...main/java/io/wisoft/avocadobackendhexagonal/domain/staff/adapter/in/web/dto/StaffDto.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,15 @@ | ||
package io.wisoft.avocadobackendhexagonal.domain.staff.adapter.in.web.dto; | ||
|
||
|
||
import jakarta.validation.constraints.NotBlank; | ||
import jakarta.validation.constraints.NotNull; | ||
|
||
public record StaffDto( | ||
@NotNull Long id, | ||
@NotBlank String name, | ||
@NotBlank String email, | ||
@NotBlank String license_path, | ||
@NotBlank String dept, | ||
@NotBlank String hospital | ||
) { | ||
} |
9 changes: 9 additions & 0 deletions
9
...t/avocadobackendhexagonal/domain/staff/adapter/in/web/dto/UpdateStaffPasswordRequest.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,9 @@ | ||
package io.wisoft.avocadobackendhexagonal.domain.staff.adapter.in.web.dto; | ||
|
||
import jakarta.validation.constraints.NotBlank; | ||
|
||
public record UpdateStaffPasswordRequest( | ||
@NotBlank String oldPassword, | ||
@NotBlank String newPassword | ||
) { | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
38 changes: 37 additions & 1 deletion
38
...ackendhexagonal/domain/staff/adapter/out/persistence/adapter/StaffPersistenceAdapter.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,20 +1,56 @@ | ||
package io.wisoft.avocadobackendhexagonal.domain.staff.adapter.out.persistence.adapter; | ||
|
||
import io.wisoft.avocadobackendhexagonal.domain.auth.application.port.out.SaveStaffPort; | ||
import io.wisoft.avocadobackendhexagonal.domain.staff.adapter.out.persistence.StaffEntity; | ||
import io.wisoft.avocadobackendhexagonal.domain.staff.adapter.out.persistence.StaffMapper; | ||
import io.wisoft.avocadobackendhexagonal.domain.staff.adapter.out.persistence.StaffRepository; | ||
import io.wisoft.avocadobackendhexagonal.domain.staff.application.port.out.DeleteStaffPort; | ||
import io.wisoft.avocadobackendhexagonal.domain.staff.application.port.out.LoadStaffPort; | ||
import io.wisoft.avocadobackendhexagonal.domain.staff.domain.Staff; | ||
import io.wisoft.avocadobackendhexagonal.global.exception.notfound.NotFoundStaffException; | ||
import lombok.RequiredArgsConstructor; | ||
import org.springframework.stereotype.Component; | ||
|
||
import java.util.List; | ||
|
||
@Component | ||
@RequiredArgsConstructor | ||
public class StaffPersistenceAdapter implements SaveStaffPort { | ||
public class StaffPersistenceAdapter implements SaveStaffPort, LoadStaffPort, DeleteStaffPort { | ||
|
||
private final StaffRepository staffRepository; | ||
|
||
@Override | ||
public Long save(final Staff staff) { | ||
return staffRepository.save(StaffMapper.staffToStaffEntity(staff)).getId(); | ||
} | ||
|
||
@Override | ||
public Staff findById(final Long staffId) { | ||
final StaffEntity staffEntity = staffRepository.findById(staffId).orElseThrow(NotFoundStaffException::new); | ||
return StaffMapper.staffEntityToStaff(staffEntity); | ||
} | ||
|
||
@Override | ||
public StaffEntity findStaffEntityById(final Long staffId) { | ||
return staffRepository.findById(staffId) | ||
.orElseThrow(NotFoundStaffException::new); | ||
} | ||
|
||
@Override | ||
public List<Staff> findAll() { | ||
return staffRepository.findAll().stream() | ||
.map(staffEntity | ||
-> StaffMapper.staffEntityToStaff(staffEntity)) | ||
.toList(); | ||
} | ||
|
||
@Override | ||
public boolean existsByEmail(final String email) { | ||
return staffRepository.existsByEmail(email); | ||
} | ||
|
||
@Override | ||
public void delete(final StaffEntity staffEntity) { | ||
staffRepository.delete(staffEntity); | ||
} | ||
} |
6 changes: 6 additions & 0 deletions
6
...o/wisoft/avocadobackendhexagonal/domain/staff/application/port/in/DeleteStaffUseCase.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,6 @@ | ||
package io.wisoft.avocadobackendhexagonal.domain.staff.application.port.in; | ||
|
||
public interface DeleteStaffUseCase { | ||
|
||
void delete(final Long staffId); | ||
} |
11 changes: 11 additions & 0 deletions
11
.../io/wisoft/avocadobackendhexagonal/domain/staff/application/port/in/LoadStaffUseCase.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,11 @@ | ||
package io.wisoft.avocadobackendhexagonal.domain.staff.application.port.in; | ||
|
||
import io.wisoft.avocadobackendhexagonal.domain.staff.domain.Staff; | ||
|
||
import java.util.List; | ||
|
||
public interface LoadStaffUseCase { | ||
|
||
Staff loadStaff(final Long staffId); | ||
List<Staff> loadStaffList(); | ||
} |
Oops, something went wrong.