feat: UserApi.php Swagger 점검 및 개선 (Phase 3-4)

- UserUpdateRequest.php 생성 (검증 로직 분리)
- PasswordChangeRequest.php 생성 (비밀번호 변경 검증)
- SwitchTenantRequest.php 생성 (테넌트 전환 검증)
- UserApi.php에 Request 스키마 추가
- UserController.php FormRequest 적용 및 DI 패턴 적용
- MemberService static 호출 → DI 인스턴스 호출
- lang/ko/message.php user 메시지 키 추가
- SAM API Development Rules 준수 완료
This commit is contained in:
2025-11-07 02:44:11 +09:00
parent c87aadc357
commit 97c0d8245e
7 changed files with 412 additions and 21 deletions

View File

@@ -4,59 +4,62 @@
use App\Helpers\ApiResponse;
use App\Http\Controllers\Controller;
use App\Http\Requests\User\PasswordChangeRequest;
use App\Http\Requests\User\SwitchTenantRequest;
use App\Http\Requests\User\UserUpdateRequest;
use App\Services\MemberService;
use Illuminate\Http\Request;
class UserController extends Controller
{
public function __construct(private MemberService $service) {}
public function index(Request $request)
{
return ApiResponse::handle(function () use ($request) {
return MemberService::getMembers($request->all());
}, '회원목록 조회');
return $this->service->getMembers($request->all());
}, __('message.user.fetched'));
}
public function show($userNo)
{
return ApiResponse::handle(function () use ($userNo) {
return MemberService::getMember($userNo);
}, '회원 상세조회');
return $this->service->getMember($userNo);
}, __('message.user.fetched'));
}
public function me(Request $request)
{
return ApiResponse::handle(function () use ($request) {
return MemberService::getMyInfo($request);
}, '나의 정보 조회');
return $this->service->getMyInfo($request);
}, __('message.user.me_fetched'));
}
public function meUpdate(Request $request)
public function meUpdate(UserUpdateRequest $request)
{
return ApiResponse::handle(function () use ($request) {
return MemberService::getMyUpdate($request);
}, '나의 정보 수정');
return $this->service->getMyUpdate($request);
}, __('message.user.me_updated'));
}
public function changePassword(Request $request)
public function changePassword(PasswordChangeRequest $request)
{
return ApiResponse::handle(function () use ($request) {
return MemberService::setMyPassword($request);
}, '나의 비밀번호 수정');
return $this->service->setMyPassword($request);
}, __('message.user.password_changed'));
}
public function tenants(Request $request)
{
return ApiResponse::handle(function () use ($request) {
return MemberService::getMyTenants($request);
}, '나의 테넌트 목록 조회');
return $this->service->getMyTenants($request);
}, __('message.user.tenants_fetched'));
}
public function switchTenant(Request $request)
public function switchTenant(SwitchTenantRequest $request)
{
$tenant_id = $request->tenant_id;
return ApiResponse::handle(function () use ($tenant_id) {
return MemberService::switchMyTenant($tenant_id);
}, '활성 테넌트 전환');
return ApiResponse::handle(function () use ($request) {
return $this->service->switchMyTenant($request->validated()['tenant_id']);
}, __('message.user.tenant_switched'));
}
}
}