fix apis
This commit is contained in:
@@ -2,6 +2,7 @@
|
||||
|
||||
namespace App\Http\Controllers;
|
||||
|
||||
use App\Http\Requests\UpdateUserProfileRequest;
|
||||
use Illuminate\Http\JsonResponse;
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Validation\Rule;
|
||||
@@ -9,36 +10,27 @@ use Illuminate\Validation\Rule;
|
||||
class ProfileController extends Controller
|
||||
{
|
||||
/**
|
||||
* Users profile
|
||||
* Get user profile
|
||||
*/
|
||||
public function index(): JsonResponse
|
||||
{
|
||||
$user = auth()->user();
|
||||
|
||||
return response()->rest([
|
||||
'first_name' => $user->first_name,
|
||||
'last_name' => $user->last_name,
|
||||
'phone_number' => $user->phone_number,
|
||||
'address' => $user->options->get('address'),
|
||||
return response()->json([
|
||||
'name' => $user->name,
|
||||
'phone' => $user->phone,
|
||||
]);
|
||||
}
|
||||
|
||||
/**
|
||||
* Store
|
||||
* Update user profile
|
||||
*/
|
||||
public function store(Request $request)
|
||||
public function store(UpdateUserProfileRequest $request)
|
||||
{
|
||||
$request->validate([
|
||||
'name' => ['required', 'string', 'max:255'],
|
||||
'phone_number' => ['required', 'int', 'between:61000000,71999999', Rule::unique('users', 'phone_number')->ignore(auth()->id())],
|
||||
'address' => ['required', 'string', 'max:255'],
|
||||
]);
|
||||
auth()->user()->update($request->validated());
|
||||
|
||||
auth()->user()->update([
|
||||
'first_name' => $request->name,
|
||||
'phone_number' => $request->phone_number,
|
||||
return response()->json([
|
||||
'message' => __('Successfully updated profile')
|
||||
]);
|
||||
|
||||
return response()->rest();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -66,5 +66,6 @@ class Kernel extends HttpKernel
|
||||
'verified' => \Illuminate\Auth\Middleware\EnsureEmailIsVerified::class,
|
||||
'unVerified' => \App\Http\Middleware\RedirectIfPhoneIsVerified::class,
|
||||
'setLocale' => \App\Http\Middleware\SetLocale::class,
|
||||
'not_banned' => \App\Http\Middleware\CheckIfUserIsBanned::class,
|
||||
];
|
||||
}
|
||||
|
||||
20
app/Http/Middleware/CheckIfUserIsBanned.php
Normal file
20
app/Http/Middleware/CheckIfUserIsBanned.php
Normal file
@@ -0,0 +1,20 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Middleware;
|
||||
|
||||
use Closure;
|
||||
use Illuminate\Http\Request;
|
||||
use Symfony\Component\HttpFoundation\Response;
|
||||
|
||||
class CheckIfUserIsBanned
|
||||
{
|
||||
/**
|
||||
* Handle an incoming request.
|
||||
*
|
||||
* @param \Closure(\Illuminate\Http\Request): (\Symfony\Component\HttpFoundation\Response) $next
|
||||
*/
|
||||
public function handle(Request $request, Closure $next): Response
|
||||
{
|
||||
return $next($request);
|
||||
}
|
||||
}
|
||||
40
app/Http/Requests/UpdateUserProfileRequest.php
Normal file
40
app/Http/Requests/UpdateUserProfileRequest.php
Normal file
@@ -0,0 +1,40 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Requests;
|
||||
|
||||
use Illuminate\Foundation\Http\FormRequest;
|
||||
use Illuminate\Validation\Rule;
|
||||
|
||||
class UpdateUserProfileRequest extends FormRequest
|
||||
{
|
||||
/**
|
||||
* Get the validation rules that apply to the request.
|
||||
*
|
||||
* @return array<string, \Illuminate\Contracts\Validation\ValidationRule|array<mixed>|string>
|
||||
*/
|
||||
public function rules(): array
|
||||
{
|
||||
return [
|
||||
/**
|
||||
* Phone number to authenticate
|
||||
*
|
||||
* @example Mahmyt Allaberdiyev
|
||||
*/
|
||||
'name' => ['required', 'string', 'max:255'],
|
||||
|
||||
/**
|
||||
* Phone number to authenticate
|
||||
*
|
||||
* @example 65707012
|
||||
*/
|
||||
'phone' => ['required', 'int', 'between:61000000,71999999', Rule::unique('users', 'phone')->ignore(auth()->id())],
|
||||
|
||||
/**
|
||||
* Password (leave empty to save it same)
|
||||
*
|
||||
* @example Mpassword
|
||||
*/
|
||||
'password' => ['nullable', 'string']
|
||||
];
|
||||
}
|
||||
}
|
||||
@@ -62,8 +62,6 @@ class ApiAuthController extends Controller
|
||||
|
||||
/**
|
||||
* (Auth)* Delete user
|
||||
*
|
||||
* @authenticated
|
||||
*/
|
||||
public function delete(): JsonResponse
|
||||
{
|
||||
|
||||
@@ -2,6 +2,9 @@
|
||||
|
||||
namespace App\Providers;
|
||||
|
||||
use Dedoc\Scramble\Scramble;
|
||||
use Dedoc\Scramble\Support\Generator\OpenApi;
|
||||
use Dedoc\Scramble\Support\Generator\SecurityScheme;
|
||||
use Illuminate\Database\Eloquent\Model;
|
||||
use Illuminate\Support\Facades\DB;
|
||||
use Illuminate\Support\Facades\Event;
|
||||
@@ -32,6 +35,11 @@ class AppServiceProvider extends ServiceProvider
|
||||
|
||||
$this->loadMigrationsFrom($this->findModuleMigrations());
|
||||
|
||||
|
||||
Scramble::afterOpenApiGenerated(function (OpenApi $openApi) {
|
||||
$openApi->secure(SecurityScheme::http('bearer'));
|
||||
});
|
||||
|
||||
// $this->listenDB();
|
||||
}
|
||||
|
||||
|
||||
@@ -22,7 +22,7 @@ Route::post('auth/verify', [ApiAuthController::class, 'verify']);
|
||||
Route::middleware('auth:sanctum')
|
||||
->post('auth/delete-user', [ApiAuthController::class, 'delete']);
|
||||
|
||||
Route::middleware(['auth:sanctum', 'banned'])->group(function () {
|
||||
Route::middleware(['auth:sanctum', 'not_banned'])->group(function () {
|
||||
// Profile...
|
||||
Route::get('profile', [ProfileController::class, 'index']);
|
||||
Route::post('profile', [ProfileController::class, 'store']);
|
||||
|
||||
Reference in New Issue
Block a user