fix apis
This commit is contained in:
@@ -2,6 +2,7 @@
|
|||||||
|
|
||||||
namespace App\Http\Controllers;
|
namespace App\Http\Controllers;
|
||||||
|
|
||||||
|
use App\Http\Requests\UpdateUserProfileRequest;
|
||||||
use Illuminate\Http\JsonResponse;
|
use Illuminate\Http\JsonResponse;
|
||||||
use Illuminate\Http\Request;
|
use Illuminate\Http\Request;
|
||||||
use Illuminate\Validation\Rule;
|
use Illuminate\Validation\Rule;
|
||||||
@@ -9,36 +10,27 @@ use Illuminate\Validation\Rule;
|
|||||||
class ProfileController extends Controller
|
class ProfileController extends Controller
|
||||||
{
|
{
|
||||||
/**
|
/**
|
||||||
* Users profile
|
* Get user profile
|
||||||
*/
|
*/
|
||||||
public function index(): JsonResponse
|
public function index(): JsonResponse
|
||||||
{
|
{
|
||||||
$user = auth()->user();
|
$user = auth()->user();
|
||||||
|
|
||||||
return response()->rest([
|
return response()->json([
|
||||||
'first_name' => $user->first_name,
|
'name' => $user->name,
|
||||||
'last_name' => $user->last_name,
|
'phone' => $user->phone,
|
||||||
'phone_number' => $user->phone_number,
|
|
||||||
'address' => $user->options->get('address'),
|
|
||||||
]);
|
]);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Store
|
* Update user profile
|
||||||
*/
|
*/
|
||||||
public function store(Request $request)
|
public function store(UpdateUserProfileRequest $request)
|
||||||
{
|
{
|
||||||
$request->validate([
|
auth()->user()->update($request->validated());
|
||||||
'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([
|
return response()->json([
|
||||||
'first_name' => $request->name,
|
'message' => __('Successfully updated profile')
|
||||||
'phone_number' => $request->phone_number,
|
|
||||||
]);
|
]);
|
||||||
|
|
||||||
return response()->rest();
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -66,5 +66,6 @@ class Kernel extends HttpKernel
|
|||||||
'verified' => \Illuminate\Auth\Middleware\EnsureEmailIsVerified::class,
|
'verified' => \Illuminate\Auth\Middleware\EnsureEmailIsVerified::class,
|
||||||
'unVerified' => \App\Http\Middleware\RedirectIfPhoneIsVerified::class,
|
'unVerified' => \App\Http\Middleware\RedirectIfPhoneIsVerified::class,
|
||||||
'setLocale' => \App\Http\Middleware\SetLocale::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
|
* (Auth)* Delete user
|
||||||
*
|
|
||||||
* @authenticated
|
|
||||||
*/
|
*/
|
||||||
public function delete(): JsonResponse
|
public function delete(): JsonResponse
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -2,6 +2,9 @@
|
|||||||
|
|
||||||
namespace App\Providers;
|
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\Database\Eloquent\Model;
|
||||||
use Illuminate\Support\Facades\DB;
|
use Illuminate\Support\Facades\DB;
|
||||||
use Illuminate\Support\Facades\Event;
|
use Illuminate\Support\Facades\Event;
|
||||||
@@ -32,6 +35,11 @@ class AppServiceProvider extends ServiceProvider
|
|||||||
|
|
||||||
$this->loadMigrationsFrom($this->findModuleMigrations());
|
$this->loadMigrationsFrom($this->findModuleMigrations());
|
||||||
|
|
||||||
|
|
||||||
|
Scramble::afterOpenApiGenerated(function (OpenApi $openApi) {
|
||||||
|
$openApi->secure(SecurityScheme::http('bearer'));
|
||||||
|
});
|
||||||
|
|
||||||
// $this->listenDB();
|
// $this->listenDB();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -22,7 +22,7 @@ Route::post('auth/verify', [ApiAuthController::class, 'verify']);
|
|||||||
Route::middleware('auth:sanctum')
|
Route::middleware('auth:sanctum')
|
||||||
->post('auth/delete-user', [ApiAuthController::class, 'delete']);
|
->post('auth/delete-user', [ApiAuthController::class, 'delete']);
|
||||||
|
|
||||||
Route::middleware(['auth:sanctum', 'banned'])->group(function () {
|
Route::middleware(['auth:sanctum', 'not_banned'])->group(function () {
|
||||||
// Profile...
|
// Profile...
|
||||||
Route::get('profile', [ProfileController::class, 'index']);
|
Route::get('profile', [ProfileController::class, 'index']);
|
||||||
Route::post('profile', [ProfileController::class, 'store']);
|
Route::post('profile', [ProfileController::class, 'store']);
|
||||||
|
|||||||
Reference in New Issue
Block a user