authapi
parent
1ae185bbc6
commit
28e9dc6366
|
|
@ -34,6 +34,7 @@ class PipiCarInstallCommands extends InstallCommand
|
|||
'owners', // Владелец авто
|
||||
'auto', // авто
|
||||
'applications', //Заявки
|
||||
'pipi_users' // Добавление логики для пользователей
|
||||
];
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -51,9 +51,25 @@ class MobileApiController extends Controller
|
|||
$data = $request->all();
|
||||
$data['started_at'] = Carbon::parse($data['started_at'])?->format('Y-m-d H:i:s');
|
||||
$data['ended_at'] = Carbon::parse($data['ended_at'])?->format('Y-m-d H:i:s');
|
||||
$data['user_id'] = UniModel::model('core_users')
|
||||
->where('email',$data['email'])->first()?->id;
|
||||
$authToken = null;
|
||||
$data['car_id'] = null;
|
||||
if ($request->header('Authorization')) {
|
||||
$user = auth()->guard('api')->user();
|
||||
$data['user_id'] = $user ? $user->id : null;
|
||||
} else {
|
||||
$user = UniModel::model('core_users')
|
||||
->where('email', $data['email'])
|
||||
->first();
|
||||
|
||||
if ($user) {
|
||||
$data['user_id'] = $user->id;
|
||||
$tokenResult = $user->createToken('auth_token');
|
||||
$authToken = $tokenResult->accessToken;
|
||||
} else {
|
||||
$data['user_id'] = null;
|
||||
}
|
||||
|
||||
}
|
||||
UniModel::model('pipi_applications')->create([
|
||||
'rent_day' => $data['rent_day'],
|
||||
'started_at' => $data['started_at'],
|
||||
|
|
@ -67,14 +83,47 @@ class MobileApiController extends Controller
|
|||
'status' => ApplicationStatus::pending->value
|
||||
]);
|
||||
|
||||
if (!isset($data['user_id'])) {
|
||||
return response()->json(['status' => 'OK', 'message' => 'Заявка создана, с вами свяжется наш оператор']);
|
||||
$response = [
|
||||
'status' => 'OK',
|
||||
'message' => 'Заявка создана',
|
||||
];
|
||||
|
||||
if ($authToken) {
|
||||
$response['auth_token'] = $authToken;
|
||||
$response['message'] = 'Заявка создана, и вы были автоматически авторизованы';
|
||||
} elseif (!isset($data['user_id'])) {
|
||||
$response['message'] = 'Заявка создана, с вами свяжется наш оператор';
|
||||
}
|
||||
return response()->json(['status' => 'OK', 'message' => 'Заявка создана']);
|
||||
|
||||
return response()->json($response);
|
||||
}
|
||||
|
||||
public function getApplications(): JsonResponse
|
||||
{
|
||||
return response()->json(UniModel::model('pipi_applications')->get());
|
||||
}
|
||||
|
||||
public function login(Request $request)
|
||||
{
|
||||
$credentials = $request->only('email', 'password');
|
||||
|
||||
if (auth()->attempt($credentials)) {
|
||||
$user = auth()->user();
|
||||
$tokenResult = $user->createToken('auth_token');
|
||||
|
||||
$response = [
|
||||
'access_token' => $tokenResult->plainTextToken,
|
||||
'token_type' => 'Bearer',
|
||||
'user' => [
|
||||
'id' => $user->id,
|
||||
'name' => $user->name,
|
||||
'email' => $user->email,
|
||||
],
|
||||
];
|
||||
|
||||
return response()->json($response, 200);
|
||||
} else {
|
||||
return response()->json(['error' => 'Unauthorized'], 401);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -40,7 +40,7 @@ class Kernel extends HttpKernel
|
|||
],
|
||||
|
||||
'api' => [
|
||||
// \Laravel\Sanctum\Http\Middleware\EnsureFrontendRequestsAreStateful::class,
|
||||
\Laravel\Sanctum\Http\Middleware\EnsureFrontendRequestsAreStateful::class,
|
||||
\Illuminate\Routing\Middleware\ThrottleRequests::class.':api',
|
||||
\Illuminate\Routing\Middleware\SubstituteBindings::class,
|
||||
],
|
||||
|
|
|
|||
|
|
@ -40,6 +40,11 @@ return [
|
|||
'driver' => 'session',
|
||||
'provider' => 'users',
|
||||
],
|
||||
|
||||
'api' => [
|
||||
'driver' => 'sanctum',
|
||||
'provider' => 'users',
|
||||
],
|
||||
],
|
||||
|
||||
/*
|
||||
|
|
|
|||
|
|
@ -0,0 +1,9 @@
|
|||
{
|
||||
"admin": [
|
||||
"default",
|
||||
"add",
|
||||
"show",
|
||||
"edit",
|
||||
"delete"
|
||||
]
|
||||
}
|
||||
|
|
@ -0,0 +1,8 @@
|
|||
{
|
||||
"module": "pipicar",
|
||||
"name": "users",
|
||||
"title": "Избранное",
|
||||
"description": "'Учет.Главная'",
|
||||
"type": "custom",
|
||||
"class": "App.Modules.main.Applications.Main"
|
||||
}
|
||||
|
|
@ -0,0 +1,40 @@
|
|||
<?php
|
||||
|
||||
use A7kz\Platform\Models\UniModel;
|
||||
use A7kz\Platform\Modules\Platform\Core\Facades\Core;
|
||||
use A7kz\Platform\Modules\Platform\Segment\Facades\Segment;
|
||||
use Carbon\Carbon;
|
||||
use Illuminate\Database\Schema\Blueprint;
|
||||
use Illuminate\Support\Facades\DB;
|
||||
use Illuminate\Support\Facades\Schema;
|
||||
use Illuminate\Support\Facades\Storage;
|
||||
use \A7kz\Platform\Commands\InstallScript;
|
||||
|
||||
return new class extends \A7kz\Platform\Commands\InstallScript {
|
||||
|
||||
public function install($module_name, $module_version)
|
||||
{
|
||||
}
|
||||
|
||||
public function update($module_name, $module_version): void
|
||||
{
|
||||
$this->upgrade();
|
||||
}
|
||||
|
||||
private function upgrade(): void
|
||||
{
|
||||
$segments = Segment::listActive();
|
||||
foreach ($segments as $segment) {
|
||||
if (!Schema::connection($segment->connector)->hasColumn('core_users', 'auth_token')) {
|
||||
Schema::connection($segment->connector)->table('core_users', static function (Blueprint $table) {
|
||||
$table->string('auth_token')->nullable()->unique();
|
||||
});
|
||||
}
|
||||
if (!Schema::connection($segment->connector)->hasColumn('personal_access_tokens', 'expires_at')) {
|
||||
Schema::connection($segment->connector)->table('personal_access_tokens', static function (Blueprint $table) {
|
||||
$table->timestamp('expires_at')->nullable();
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
};
|
||||
|
|
@ -26,4 +26,5 @@ Route::prefix('mobile')->group(function () {
|
|||
Route::get('getMarks', [MobileApiController::class, 'getMarks']);
|
||||
Route::post('sendApplication', [MobileApiController::class, 'sendApplication']);
|
||||
Route::post('getApplications', [MobileApiController::class, 'getApplications']);
|
||||
Route::post('login', [MobileApiController::class, 'login']);
|
||||
});
|
||||
|
|
|
|||
Loading…
Reference in New Issue