Compare commits

...

13 Commits

10 changed files with 69 additions and 23 deletions

View File

@@ -16,19 +16,6 @@ class AuthController extends Controller
{
use ApiResponse;
public function register(RegisterRequest $request): JsonResponse
{
Expert::query()->create([
'username' => $request->username,
'email' => $request->email,
'password' => Hash::make($request->password),
]);
$request->session()->regenerate();
return $this->successResponse();
}
public function login(LoginRequest $request): JsonResponse
{
$credentials = ['password' => $request->password];
@@ -39,8 +26,7 @@ class AuthController extends Controller
$credentials['username'] = $request->login;
}
if (Auth::attempt($credentials))
{
if (Auth::guard('expert')->attempt($credentials)) {
$request->session()->regenerate();
return $this->successResponse();

View File

@@ -41,7 +41,7 @@ enum BusinessTypeEnum: int
};
}
public function name($id): string
public static function name($id): string
{
$mapArray = [
1 => 'medical',

View File

@@ -5,17 +5,19 @@ namespace App\Models;
use Database\Factories\ExpertFactory;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Notifications\Notifiable;
use Illuminate\Foundation\Auth\User as Authenticatable;
use Spatie\Permission\Traits\HasRoles;
/**
* @method roles()
* @method permissions()
*/
class Expert extends Model
class Expert extends Authenticatable
{
/** @use HasFactory<ExpertFactory> */
use HasFactory;
use HasRoles;
use Notifiable,HasFactory,HasRoles;
protected $guarded = ['id'];
protected string $guard_name = 'web';

View File

@@ -0,0 +1,24 @@
<?php
namespace App\User\Controllers;
use App\Http\Controllers\Controller;
use App\Models\City;
use App\Models\Province;
use App\Traits\ApiResponse;
use Illuminate\Http\JsonResponse;
use Illuminate\Http\Request;
class CityController extends Controller
{
use ApiResponse;
public function list(Request $request): JsonResponse
{
$cities = City::query()
->where('province_id', '=', $request->query('province_id'))
->get(['id', 'name']);
return $this->successResponse($cities);
}
}

View File

@@ -46,7 +46,7 @@ class ProfileController extends Controller
$user->update([
'first_name' => $request->first_name,
'last_name' => $request->last_name,
'national_id' => $request->national_id,
'national_id' => $user->kyc_status == 0 ? $request->national_id : $user->national_id,
'address' => $request->address,
'postal_code' => $request->postal_code,
'phone_number' => $request->phone_number,

View File

@@ -0,0 +1,17 @@
<?php
namespace App\User\Controllers;
use App\Http\Controllers\Controller;
use App\Models\Province;
use App\Traits\ApiResponse;
use Illuminate\Http\JsonResponse;
class ProvinceController extends Controller
{
use ApiResponse;
public function list(): JsonResponse
{
return $this->successResponse(Province::all(['id', 'name']));
}
}

View File

@@ -24,12 +24,13 @@ class UserResource extends JsonResource
'address' => $this->address,
'postal_code' => $this->postal_code,
'phone_number' => $this->phone_number,
'province_id' => $this->provonce_id,
'province_id' => $this->province_id,
'province_name' => $this->province_name,
'city_id' => $this->city_id,
'city_name' => $this->city_name,
'birth_date' => $this->birth_date,
'kyc_status' => $this->kyc_status,
'authority_level' => $this->authority_level,
];
}
}

View File

@@ -1,5 +1,6 @@
<?php
use App\Models\Expert;
use App\Models\User;
return [

View File

@@ -12,7 +12,6 @@ Route::prefix('auth')
->name('auth.')
->controller(AuthController::class)
->group(function () {
Route::post('register', 'register')->name('register');
Route::post('login', 'login')->name('login');
Route::post('logout', 'logout')->name('logout');
});
@@ -78,7 +77,7 @@ Route::prefix('expert')
Route::prefix('profile')
->name('profile.')
->middleware('auth')
->middleware('auth:expert')
->controller(ProfileController::class)
->group(function () {
Route::get('info', 'info')->name('info');

View File

@@ -6,7 +6,9 @@ use App\Admin\Controllers\RoleManagementController;
use App\Admin\Controllers\UserManagementController;
use App\User\Controllers\AuthController;
use App\User\Controllers\GatewayManagementController;
use App\User\Controllers\CityController;
use App\User\Controllers\ProfileController;
use App\User\Controllers\ProvinceController;
use Illuminate\Support\Facades\Route;
Route::prefix('auth')
@@ -39,3 +41,17 @@ Route::prefix('user_gateway')
Route::post('/{gateway}', 'update')->name('update');
Route::delete('/{gateway}', 'destroy')->name('destroy');
});
Route::prefix('province')
->name('province.')
->controller(ProvinceController::class)
->group(function () {
Route::get('list', 'list')->name('list');
});
Route::prefix('city')
->name('city.')
->controller(CityController::class)
->group(function () {
Route::get('list', 'list')->name('list');
});