profile update
This commit is contained in:
@@ -12,11 +12,14 @@ class ProfileController extends Controller
|
|||||||
*/
|
*/
|
||||||
public function index(): JsonResponse
|
public function index(): JsonResponse
|
||||||
{
|
{
|
||||||
|
/** @var \App\Models\User */
|
||||||
$user = auth()->user();
|
$user = auth()->user();
|
||||||
|
|
||||||
return response()->json([
|
return response()->json([
|
||||||
'name' => $user->name,
|
'name' => $user->name,
|
||||||
'phone' => $user->phone,
|
'phone' => $user->phone,
|
||||||
|
'passport_serie' => $user->getOption('passport_serie'),
|
||||||
|
'passport_id' => $user->getOption('passport_id'),
|
||||||
]);
|
]);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -25,7 +28,21 @@ class ProfileController extends Controller
|
|||||||
*/
|
*/
|
||||||
public function store(UpdateUserProfileRequest $request): JsonResponse
|
public function store(UpdateUserProfileRequest $request): JsonResponse
|
||||||
{
|
{
|
||||||
auth()->user()->update($request->validated());
|
/** @var \App\Models\User */
|
||||||
|
$user = auth()->user();
|
||||||
|
|
||||||
|
$data = [
|
||||||
|
'name' => $request->name,
|
||||||
|
'phone' => $request->phone,
|
||||||
|
'options->passport_serie' => $request->passport_serie,
|
||||||
|
'options->passport_id' => $request->passport_id,
|
||||||
|
];
|
||||||
|
|
||||||
|
if ($request->password) {
|
||||||
|
$data['password'] = $request->password;
|
||||||
|
}
|
||||||
|
|
||||||
|
$user->update($data);
|
||||||
|
|
||||||
return response()->json([
|
return response()->json([
|
||||||
'message' => __('Successfully updated profile'),
|
'message' => __('Successfully updated profile'),
|
||||||
|
|||||||
@@ -2,6 +2,7 @@
|
|||||||
|
|
||||||
namespace App\Http\Requests;
|
namespace App\Http\Requests;
|
||||||
|
|
||||||
|
use App\Repos\System\Settings\Legal\PassportRepo;
|
||||||
use Illuminate\Foundation\Http\FormRequest;
|
use Illuminate\Foundation\Http\FormRequest;
|
||||||
use Illuminate\Validation\Rule;
|
use Illuminate\Validation\Rule;
|
||||||
|
|
||||||
@@ -27,14 +28,33 @@ class UpdateUserProfileRequest extends FormRequest
|
|||||||
*
|
*
|
||||||
* @example 65707012
|
* @example 65707012
|
||||||
*/
|
*/
|
||||||
'phone' => ['required', 'int', 'between:61000000,71999999', Rule::unique('users', 'phone')->ignore(auth()->id())],
|
'phone' => [
|
||||||
|
'required',
|
||||||
|
'int',
|
||||||
|
'between:61000000,71999999',
|
||||||
|
Rule::unique('users', 'phone')->ignore(auth()->id()),
|
||||||
|
],
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Password (leave empty to save it same)
|
* Password (leave empty to save it same)
|
||||||
*
|
*
|
||||||
* @example Mpassword
|
* @example MyFcpassword
|
||||||
*/
|
*/
|
||||||
'password' => ['nullable', 'string'],
|
'password' => ['nullable', 'string'],
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Passport serie
|
||||||
|
*
|
||||||
|
* @example I-AS
|
||||||
|
*/
|
||||||
|
'passport_serie' => ['nullable', 'string', Rule::in(array_keys(PassportRepo::values()))],
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Passport id
|
||||||
|
*
|
||||||
|
* @example 100999
|
||||||
|
*/
|
||||||
|
'passport_id' => ['nullable', 'numeric', 'digits:6'],
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -24,6 +24,7 @@ use Spatie\Permission\Traits\HasRoles;
|
|||||||
* @property null|\Illuminate\Support\Carbon $phone_verified_at
|
* @property null|\Illuminate\Support\Carbon $phone_verified_at
|
||||||
* @property string $password
|
* @property string $password
|
||||||
* @property string $locale
|
* @property string $locale
|
||||||
|
* @property null|array $options
|
||||||
* @property bool $active
|
* @property bool $active
|
||||||
* @property string $remember_token
|
* @property string $remember_token
|
||||||
* @property \Illuminate\Support\Carbon $created_at
|
* @property \Illuminate\Support\Carbon $created_at
|
||||||
@@ -71,6 +72,7 @@ class User extends Authenticatable
|
|||||||
protected $casts = [
|
protected $casts = [
|
||||||
'email_verified_at' => 'datetime',
|
'email_verified_at' => 'datetime',
|
||||||
'password' => 'hashed',
|
'password' => 'hashed',
|
||||||
|
'options' => 'array',
|
||||||
];
|
];
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -210,4 +212,12 @@ class User extends Authenticatable
|
|||||||
{
|
{
|
||||||
return sprintf('/resources/users/%s', $this->id);
|
return sprintf('/resources/users/%s', $this->id);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get option from options
|
||||||
|
*/
|
||||||
|
public function getOption(string $option): null|int|string
|
||||||
|
{
|
||||||
|
return $this->options && array_key_exists($option, $this->options) ? $this->options[$option] : '';
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,28 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
use Illuminate\Database\Migrations\Migration;
|
||||||
|
use Illuminate\Database\Schema\Blueprint;
|
||||||
|
use Illuminate\Support\Facades\Schema;
|
||||||
|
|
||||||
|
return new class extends Migration
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* Run the migrations.
|
||||||
|
*/
|
||||||
|
public function up(): void
|
||||||
|
{
|
||||||
|
Schema::table('users', function (Blueprint $table) {
|
||||||
|
$table->json('options')->nullable();
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Reverse the migrations.
|
||||||
|
*/
|
||||||
|
public function down(): void
|
||||||
|
{
|
||||||
|
Schema::table('users', function (Blueprint $table) {
|
||||||
|
$table->dropColumn('options');
|
||||||
|
});
|
||||||
|
}
|
||||||
|
};
|
||||||
@@ -7,7 +7,7 @@
|
|||||||
|
|
||||||
Schema::getColumnListing('branches')
|
Schema::getColumnListing('branches')
|
||||||
|
|
||||||
$a = collect(Schema::getColumns('branches'))->map(fn ($column) => [
|
$a = collect(Schema::getColumns('users'))->map(fn ($column) => [
|
||||||
'name' => $column['name'],
|
'name' => $column['name'],
|
||||||
'type' => ($column['nullable'] ? 'null|' : '') . dbTypeToPhp($column['type']),
|
'type' => ($column['nullable'] ? 'null|' : '') . dbTypeToPhp($column['type']),
|
||||||
])->pluck('type', 'name')
|
])->pluck('type', 'name')
|
||||||
|
|||||||
Reference in New Issue
Block a user