authapi
parent
1ae185bbc6
commit
28e9dc6366
|
|
@ -34,6 +34,7 @@ class PipiCarInstallCommands extends InstallCommand
|
||||||
'owners', // Владелец авто
|
'owners', // Владелец авто
|
||||||
'auto', // авто
|
'auto', // авто
|
||||||
'applications', //Заявки
|
'applications', //Заявки
|
||||||
|
'pipi_users' // Добавление логики для пользователей
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -51,9 +51,25 @@ class MobileApiController extends Controller
|
||||||
$data = $request->all();
|
$data = $request->all();
|
||||||
$data['started_at'] = Carbon::parse($data['started_at'])?->format('Y-m-d H:i:s');
|
$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['ended_at'] = Carbon::parse($data['ended_at'])?->format('Y-m-d H:i:s');
|
||||||
$data['user_id'] = UniModel::model('core_users')
|
$authToken = null;
|
||||||
->where('email',$data['email'])->first()?->id;
|
|
||||||
$data['car_id'] = 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([
|
UniModel::model('pipi_applications')->create([
|
||||||
'rent_day' => $data['rent_day'],
|
'rent_day' => $data['rent_day'],
|
||||||
'started_at' => $data['started_at'],
|
'started_at' => $data['started_at'],
|
||||||
|
|
@ -67,14 +83,47 @@ class MobileApiController extends Controller
|
||||||
'status' => ApplicationStatus::pending->value
|
'status' => ApplicationStatus::pending->value
|
||||||
]);
|
]);
|
||||||
|
|
||||||
if (!isset($data['user_id'])) {
|
$response = [
|
||||||
return response()->json(['status' => 'OK', 'message' => 'Заявка создана, с вами свяжется наш оператор']);
|
'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
|
public function getApplications(): JsonResponse
|
||||||
{
|
{
|
||||||
return response()->json(UniModel::model('pipi_applications')->get());
|
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' => [
|
'api' => [
|
||||||
// \Laravel\Sanctum\Http\Middleware\EnsureFrontendRequestsAreStateful::class,
|
\Laravel\Sanctum\Http\Middleware\EnsureFrontendRequestsAreStateful::class,
|
||||||
\Illuminate\Routing\Middleware\ThrottleRequests::class.':api',
|
\Illuminate\Routing\Middleware\ThrottleRequests::class.':api',
|
||||||
\Illuminate\Routing\Middleware\SubstituteBindings::class,
|
\Illuminate\Routing\Middleware\SubstituteBindings::class,
|
||||||
],
|
],
|
||||||
|
|
|
||||||
|
|
@ -40,6 +40,11 @@ return [
|
||||||
'driver' => 'session',
|
'driver' => 'session',
|
||||||
'provider' => 'users',
|
'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::get('getMarks', [MobileApiController::class, 'getMarks']);
|
||||||
Route::post('sendApplication', [MobileApiController::class, 'sendApplication']);
|
Route::post('sendApplication', [MobileApiController::class, 'sendApplication']);
|
||||||
Route::post('getApplications', [MobileApiController::class, 'getApplications']);
|
Route::post('getApplications', [MobileApiController::class, 'getApplications']);
|
||||||
|
Route::post('login', [MobileApiController::class, 'login']);
|
||||||
});
|
});
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue