Compare commits
2 Commits
feature/Up
...
feature/ex
| Author | SHA1 | Date | |
|---|---|---|---|
| ca094cff9f | |||
| c2328ec666 |
@@ -30,7 +30,6 @@ ENV COMPOSER_ALLOW_SUPERUSER=1
|
|||||||
# Default command
|
# Default command
|
||||||
CMD composer install ;\
|
CMD composer install ;\
|
||||||
composer dump-autoload --optimize --classmap-authoritative ;\
|
composer dump-autoload --optimize --classmap-authoritative ;\
|
||||||
php artisan key:generate ;\
|
|
||||||
php artisan migrate ;\
|
php artisan migrate ;\
|
||||||
php artisan db:seed ;\
|
php artisan db:seed ;\
|
||||||
php-fpm
|
php-fpm
|
||||||
|
|||||||
19
backend/app/Admin/Controllers/ProfileController.php
Normal file
19
backend/app/Admin/Controllers/ProfileController.php
Normal file
@@ -0,0 +1,19 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Admin\Controllers;
|
||||||
|
|
||||||
|
use App\Admin\Resources\ExpertResource;
|
||||||
|
use App\Http\Controllers\Controller;
|
||||||
|
use App\Traits\ApiResponse;
|
||||||
|
use Illuminate\Http\JsonResponse;
|
||||||
|
use Illuminate\Support\Facades\Auth;
|
||||||
|
|
||||||
|
class ProfileController extends Controller
|
||||||
|
{
|
||||||
|
use ApiResponse;
|
||||||
|
|
||||||
|
public function info(): JsonResponse
|
||||||
|
{
|
||||||
|
return $this->successResponse(new ExpertResource(Auth::user()));
|
||||||
|
}
|
||||||
|
}
|
||||||
24
backend/app/Admin/Resources/ExpertResource.php
Normal file
24
backend/app/Admin/Resources/ExpertResource.php
Normal file
@@ -0,0 +1,24 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Admin\Resources;
|
||||||
|
|
||||||
|
use Illuminate\Http\Request;
|
||||||
|
use Illuminate\Http\Resources\Json\JsonResource;
|
||||||
|
|
||||||
|
class ExpertResource extends JsonResource
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* Transform the resource into an array.
|
||||||
|
*
|
||||||
|
* @return array<string, mixed>
|
||||||
|
*/
|
||||||
|
public function toArray(Request $request): array
|
||||||
|
{
|
||||||
|
return [
|
||||||
|
'id' => $this->id,
|
||||||
|
'username' => $this->username,
|
||||||
|
'email' => $this->email,
|
||||||
|
];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
14
backend/app/User/Controller/Auth/AuthController.php → backend/app/Http/Controllers/AuthController.php
Executable file → Normal file
14
backend/app/User/Controller/Auth/AuthController.php → backend/app/Http/Controllers/AuthController.php
Executable file → Normal file
@@ -1,13 +1,11 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
namespace App\User\Controller\Auth;
|
namespace App\Http\Controllers;
|
||||||
|
|
||||||
use App\Http\Controllers\Controller;
|
use App\Http\Requests\Auth\LoginRequest;
|
||||||
|
use App\Http\Requests\Auth\RegisterRequest;
|
||||||
use App\Models\User;
|
use App\Models\User;
|
||||||
use App\Traits\ApiResponse;
|
use App\Traits\ApiResponse;
|
||||||
use App\User\Requests\Auth\LoginRequest;
|
|
||||||
use App\User\Requests\Auth\RegisterRequest;
|
|
||||||
use App\User\Resources\UserResource;
|
|
||||||
use Illuminate\Http\JsonResponse;
|
use Illuminate\Http\JsonResponse;
|
||||||
use Illuminate\Http\Request;
|
use Illuminate\Http\Request;
|
||||||
use Illuminate\Support\Facades\Auth;
|
use Illuminate\Support\Facades\Auth;
|
||||||
@@ -46,7 +44,11 @@ class AuthController extends Controller
|
|||||||
|
|
||||||
$user = Auth::user();
|
$user = Auth::user();
|
||||||
|
|
||||||
return $this->successResponse(new UserResource($user));
|
return $this->successResponse([
|
||||||
|
'id' => $user->id,
|
||||||
|
'username' => $user->username,
|
||||||
|
'email' => $user->email,
|
||||||
|
]);
|
||||||
}
|
}
|
||||||
|
|
||||||
return $this->errorResponse(__('messages.incorrect_or_username_password'));
|
return $this->errorResponse(__('messages.incorrect_or_username_password'));
|
||||||
5
backend/app/User/Requests/Auth/LoginRequest.php → backend/app/Http/Requests/Auth/LoginRequest.php
Executable file → Normal file
5
backend/app/User/Requests/Auth/LoginRequest.php → backend/app/Http/Requests/Auth/LoginRequest.php
Executable file → Normal file
@@ -1,7 +1,8 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
namespace App\User\Requests\Auth;
|
namespace App\Http\Requests\Auth;
|
||||||
|
|
||||||
|
use Illuminate\Contracts\Validation\ValidationRule;
|
||||||
use Illuminate\Foundation\Http\FormRequest;
|
use Illuminate\Foundation\Http\FormRequest;
|
||||||
|
|
||||||
class LoginRequest extends FormRequest
|
class LoginRequest extends FormRequest
|
||||||
@@ -17,7 +18,7 @@ class LoginRequest extends FormRequest
|
|||||||
/**
|
/**
|
||||||
* Get the validation rules that apply to the request.
|
* Get the validation rules that apply to the request.
|
||||||
*
|
*
|
||||||
* @return array<string, mixed>
|
* @return array<string, ValidationRule|array|string>
|
||||||
*/
|
*/
|
||||||
public function rules(): array
|
public function rules(): array
|
||||||
{
|
{
|
||||||
5
backend/app/User/Requests/Auth/RegisterRequest.php → backend/app/Http/Requests/Auth/RegisterRequest.php
Executable file → Normal file
5
backend/app/User/Requests/Auth/RegisterRequest.php → backend/app/Http/Requests/Auth/RegisterRequest.php
Executable file → Normal file
@@ -1,7 +1,8 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
namespace App\User\Requests\Auth;
|
namespace App\Http\Requests\Auth;
|
||||||
|
|
||||||
|
use Illuminate\Contracts\Validation\ValidationRule;
|
||||||
use Illuminate\Foundation\Http\FormRequest;
|
use Illuminate\Foundation\Http\FormRequest;
|
||||||
|
|
||||||
class RegisterRequest extends FormRequest
|
class RegisterRequest extends FormRequest
|
||||||
@@ -17,7 +18,7 @@ class RegisterRequest extends FormRequest
|
|||||||
/**
|
/**
|
||||||
* Get the validation rules that apply to the request.
|
* Get the validation rules that apply to the request.
|
||||||
*
|
*
|
||||||
* @return array<string, mixed>
|
* @return array<string, ValidationRule|array|string>
|
||||||
*/
|
*/
|
||||||
public function rules(): array
|
public function rules(): array
|
||||||
{
|
{
|
||||||
@@ -1,40 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
namespace App\Mail;
|
|
||||||
|
|
||||||
use App\Models\User;
|
|
||||||
use Illuminate\Bus\Queueable;
|
|
||||||
use Illuminate\Mail\Mailable;
|
|
||||||
use Illuminate\Mail\Mailables\Content;
|
|
||||||
use Illuminate\Mail\Mailables\Envelope;
|
|
||||||
use Illuminate\Queue\SerializesModels;
|
|
||||||
|
|
||||||
class LoginNotificationMail extends Mailable
|
|
||||||
{
|
|
||||||
use Queueable, SerializesModels;
|
|
||||||
|
|
||||||
public function __construct(
|
|
||||||
public User $user
|
|
||||||
) {
|
|
||||||
//
|
|
||||||
}
|
|
||||||
|
|
||||||
public function envelope(): Envelope
|
|
||||||
{
|
|
||||||
return new Envelope(
|
|
||||||
subject: 'Login Notification Mail',
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
public function content(): Content
|
|
||||||
{
|
|
||||||
return new Content(
|
|
||||||
view: 'emails.login-notification',
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
public function attachments(): array
|
|
||||||
{
|
|
||||||
return [];
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,14 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
namespace App\User\Controller\Dashboard;
|
|
||||||
|
|
||||||
use App\Http\Controllers\Controller;
|
|
||||||
use Illuminate\Http\Request;
|
|
||||||
|
|
||||||
class ConfirmController extends Controller
|
|
||||||
{
|
|
||||||
public function index()
|
|
||||||
{
|
|
||||||
//
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -30,10 +30,10 @@ class ProfileController extends Controller
|
|||||||
'national_id' => $request->national_id,
|
'national_id' => $request->national_id,
|
||||||
'address' => $request->address,
|
'address' => $request->address,
|
||||||
'postal_code' => $request->postal_code,
|
'postal_code' => $request->postal_code,
|
||||||
|
'account_number' => $request->account_number,
|
||||||
'phone_number' => $request->phone_number,
|
'phone_number' => $request->phone_number,
|
||||||
'province_id' => $request->province_id,
|
'province_id' => $request->province_id,
|
||||||
'city_id' => $request->city_id,
|
'city_id' => $request->city_id,
|
||||||
'status' => 1
|
|
||||||
]);
|
]);
|
||||||
|
|
||||||
return $this->successResponse();
|
return $this->successResponse();
|
||||||
|
|||||||
@@ -1,23 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
namespace App\User\Events;
|
|
||||||
|
|
||||||
use App\Models\User;
|
|
||||||
use Illuminate\Broadcasting\Channel;
|
|
||||||
use Illuminate\Broadcasting\InteractsWithSockets;
|
|
||||||
use Illuminate\Broadcasting\PrivateChannel;
|
|
||||||
use Illuminate\Foundation\Events\Dispatchable;
|
|
||||||
use Illuminate\Queue\SerializesModels;
|
|
||||||
|
|
||||||
class LoginEmailEvent
|
|
||||||
{
|
|
||||||
use Dispatchable, InteractsWithSockets, SerializesModels;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Create a new event instance.
|
|
||||||
*/
|
|
||||||
public function __construct(public User $user)
|
|
||||||
{
|
|
||||||
//
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,31 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
namespace App\User\Listeners;
|
|
||||||
|
|
||||||
use App\Mail\LoginNotificationMail;
|
|
||||||
use App\User\Events\LoginEmailEvent;
|
|
||||||
use Illuminate\Contracts\Queue\ShouldQueue;
|
|
||||||
use Illuminate\Support\Facades\Mail;
|
|
||||||
|
|
||||||
class SendEmailListener implements ShouldQueue{
|
|
||||||
public string $queue = 'emails';
|
|
||||||
/**
|
|
||||||
* Create the event listener.
|
|
||||||
*/
|
|
||||||
public function __construct()
|
|
||||||
{
|
|
||||||
//
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Handle the event.
|
|
||||||
*/
|
|
||||||
public function handle(LoginEmailEvent $event): void
|
|
||||||
{
|
|
||||||
$user = $event->user;
|
|
||||||
|
|
||||||
Mail::to($user->email)->send(
|
|
||||||
new LoginNotificationMail($user)
|
|
||||||
);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -28,7 +28,8 @@ class EditRequest extends FormRequest
|
|||||||
'national_id' => 'required',
|
'national_id' => 'required',
|
||||||
'address' => 'required',
|
'address' => 'required',
|
||||||
'postal_code' => 'required',
|
'postal_code' => 'required',
|
||||||
'phone_number' => 'required',
|
'account_number' => 'required',
|
||||||
|
'phone_number' => 'required|regex:/^964\d{9}$/|numeric|digits:11',
|
||||||
'province_id' => 'required',
|
'province_id' => 'required',
|
||||||
'city_id' => 'required',
|
'city_id' => 'required',
|
||||||
];
|
];
|
||||||
|
|||||||
0
backend/app/User/Resources/UserResource.php
Executable file → Normal file
0
backend/app/User/Resources/UserResource.php
Executable file → Normal file
@@ -12,11 +12,8 @@ return Application::configure(basePath: dirname(__DIR__))
|
|||||||
health: '/up',
|
health: '/up',
|
||||||
)
|
)
|
||||||
->withMiddleware(function (Middleware $middleware): void {
|
->withMiddleware(function (Middleware $middleware): void {
|
||||||
$middleware->web()->validateCsrfTokens(['*']);
|
$middleware->web()->preventRequestForgery(['*']);
|
||||||
})
|
})
|
||||||
->withExceptions(function (Exceptions $exceptions): void {
|
->withExceptions(function (Exceptions $exceptions): void {
|
||||||
//
|
//
|
||||||
})
|
})->create();
|
||||||
->withEvents(discover: [
|
|
||||||
__DIR__.'/../app/User/Listeners',
|
|
||||||
])->create();
|
|
||||||
|
|||||||
@@ -1,24 +0,0 @@
|
|||||||
<!DOCTYPE html>
|
|
||||||
<html>
|
|
||||||
<head>
|
|
||||||
<meta charset="UTF-8">
|
|
||||||
<title>Login Notification</title>
|
|
||||||
</head>
|
|
||||||
<body>
|
|
||||||
<h2>Hello {{ $user->username }}</h2>
|
|
||||||
|
|
||||||
<p>You have successfully logged in to your account.</p>
|
|
||||||
|
|
||||||
<p>
|
|
||||||
Email: {{ $user->email }}
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<p>
|
|
||||||
If this login was not done by you, please contact support immediately.
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<br>
|
|
||||||
|
|
||||||
<p>Thank you.</p>
|
|
||||||
</body>
|
|
||||||
</html>
|
|
||||||
@@ -1,10 +1,8 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
use App\User\Controller\Auth\AuthController;
|
|
||||||
use Illuminate\Http\Request;
|
use Illuminate\Http\Request;
|
||||||
use Illuminate\Support\Facades\Route;
|
use Illuminate\Support\Facades\Route;
|
||||||
|
|
||||||
Route::get('/user', function (Request $request) {
|
Route::get('/user', function (Request $request) {
|
||||||
return $request->user();
|
return $request->user();
|
||||||
})->middleware('auth:api');
|
})->middleware('auth:api');
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
use App\User\Controller\Auth\AuthController;
|
use App\Http\Controllers\AuthController;
|
||||||
use App\User\Controller\ProfileController;
|
use App\User\Controller\ProfileController;
|
||||||
use Illuminate\Support\Facades\Route;
|
use Illuminate\Support\Facades\Route;
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user