获取/设置 个人资料
parent
42718e72ff
commit
2ac4887268
|
|
@ -0,0 +1,77 @@
|
|||
<?php
|
||||
|
||||
namespace App\Endpoint\Api\Http\Controllers\Account;
|
||||
|
||||
use App\Endpoint\Api\Http\Controllers\Controller;
|
||||
use App\Endpoint\Api\Http\Resources\UserInfoResource;
|
||||
use App\Models\UserInfo;
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Validation\Rule;
|
||||
|
||||
class UserController extends Controller
|
||||
{
|
||||
/**
|
||||
* 获取个人资料
|
||||
*
|
||||
* @param Request $request
|
||||
* @return \Illuminate\Http\JsonResponse
|
||||
*/
|
||||
public function show(Request $request)
|
||||
{
|
||||
$user = $request->user();
|
||||
|
||||
return response()->json([
|
||||
'phone' => $user->phone,
|
||||
'user_info' => UserInfoResource::make($user->userInfo),
|
||||
]);
|
||||
}
|
||||
|
||||
/**
|
||||
* 设置个人资料
|
||||
*
|
||||
* @param Request $request
|
||||
* @return \Illuminate\Http\JsonResponse
|
||||
*/
|
||||
public function update(Request $request)
|
||||
{
|
||||
$request->validate([
|
||||
'nickname' => ['bail', 'filled', 'string', 'max:10'],
|
||||
'avatar' => ['bail', 'filled', 'string'],
|
||||
'gender' => [
|
||||
'bail',
|
||||
'filled',
|
||||
Rule::in([
|
||||
UserInfo::GENDER_UNKNOWN,
|
||||
UserInfo::GENDER_MALE,
|
||||
UserInfo::GENDER_FEMALE,
|
||||
]),
|
||||
],
|
||||
'birthday' => ['bail', 'filled', 'date:Y-m-d'],
|
||||
]);
|
||||
|
||||
$user = $request->user();
|
||||
|
||||
if ($request->has('nickname')) {
|
||||
$user->userInfo->nickname = $request->input('nickname');
|
||||
}
|
||||
|
||||
if ($request->has('avatar')) {
|
||||
$user->userInfo->avatar = $request->input('avatar');
|
||||
}
|
||||
|
||||
if ($request->has('gender')) {
|
||||
$user->userInfo->gender = $request->input('gender');
|
||||
}
|
||||
|
||||
if ($request->has('birthday')) {
|
||||
$user->userInfo->birthday = $request->input('birthday');
|
||||
}
|
||||
|
||||
$user->userInfo->save();
|
||||
|
||||
return response()->json([
|
||||
'phone' => $user->phone,
|
||||
'user_info' => UserInfoResource::make($user->userInfo),
|
||||
]);
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,25 @@
|
|||
<?php
|
||||
|
||||
namespace App\Endpoint\Api\Http\Resources;
|
||||
|
||||
use Illuminate\Http\Resources\Json\JsonResource;
|
||||
|
||||
class UserInfoResource extends JsonResource
|
||||
{
|
||||
/**
|
||||
* Transform the resource into an array.
|
||||
*
|
||||
* @param \Illuminate\Http\Request $request
|
||||
* @return array|\Illuminate\Contracts\Support\Arrayable|\JsonSerializable
|
||||
*/
|
||||
public function toArray($request)
|
||||
{
|
||||
return [
|
||||
'nickname' => (string) $this->nickname,
|
||||
'avatar' => (string) $this->avatar,
|
||||
'gender' => (string) $this->gender,
|
||||
'birthday' => (string) $this->birthday?->toDateString(),
|
||||
'code' => (string) $this->code,
|
||||
];
|
||||
}
|
||||
}
|
||||
|
|
@ -1,5 +1,6 @@
|
|||
<?php
|
||||
|
||||
use App\Endpoint\Api\Http\Controllers\Account\UserController;
|
||||
use App\Endpoint\Api\Http\Controllers\AdController;
|
||||
use App\Endpoint\Api\Http\Controllers\Auth\LoginController;
|
||||
use App\Endpoint\Api\Http\Controllers\Auth\LogoutController;
|
||||
|
|
@ -42,6 +43,10 @@ Route::group([
|
|||
Route::get('product/products/{product}', [ProductSkuController::class, 'show']);
|
||||
|
||||
Route::middleware(['auth:api'])->group(function () {
|
||||
// 我的信息
|
||||
Route::get('me', [UserController::class, 'show']);
|
||||
Route::put('me', [UserController::class, 'update']);
|
||||
|
||||
// 收藏商品
|
||||
Route::post('product/products/{product}/collect', [ProductSkuController::class, 'collect']);
|
||||
// 取消商品收藏
|
||||
|
|
|
|||
Loading…
Reference in New Issue