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:
@@ -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'));
|
||||
}
|
||||
}
|
||||
}
|
||||
22
app/Http/Requests/User/PasswordChangeRequest.php
Normal file
22
app/Http/Requests/User/PasswordChangeRequest.php
Normal file
@@ -0,0 +1,22 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Requests\User;
|
||||
|
||||
use Illuminate\Foundation\Http\FormRequest;
|
||||
|
||||
class PasswordChangeRequest extends FormRequest
|
||||
{
|
||||
public function authorize(): bool
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
public function rules(): array
|
||||
{
|
||||
return [
|
||||
'current_password' => 'required|string',
|
||||
'new_password' => 'required|string|min:8|confirmed',
|
||||
'new_password_confirmation' => 'required|string',
|
||||
];
|
||||
}
|
||||
}
|
||||
20
app/Http/Requests/User/SwitchTenantRequest.php
Normal file
20
app/Http/Requests/User/SwitchTenantRequest.php
Normal file
@@ -0,0 +1,20 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Requests\User;
|
||||
|
||||
use Illuminate\Foundation\Http\FormRequest;
|
||||
|
||||
class SwitchTenantRequest extends FormRequest
|
||||
{
|
||||
public function authorize(): bool
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
public function rules(): array
|
||||
{
|
||||
return [
|
||||
'tenant_id' => 'required|integer|exists:tenants,id',
|
||||
];
|
||||
}
|
||||
}
|
||||
22
app/Http/Requests/User/UserUpdateRequest.php
Normal file
22
app/Http/Requests/User/UserUpdateRequest.php
Normal file
@@ -0,0 +1,22 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Requests\User;
|
||||
|
||||
use Illuminate\Foundation\Http\FormRequest;
|
||||
|
||||
class UserUpdateRequest extends FormRequest
|
||||
{
|
||||
public function authorize(): bool
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
public function rules(): array
|
||||
{
|
||||
return [
|
||||
'name' => 'sometimes|string|max:100',
|
||||
'phone' => 'nullable|string|max:20',
|
||||
'email' => 'sometimes|email|max:100',
|
||||
];
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user