Compare commits

..
15 Commits
Author SHA1 Message Date
Giovanni 7299a177a2 fix wrong namespace use 2026-10-09 21:25:46 +02:00
Giovanni 67f2b516e8 fix wrong namespace use 2026-10-09 21:15:00 +02:00
Giovanni 64d065caad fix wrong namespace use 2026-10-09 21:04:15 +02:00
Giovanni ef0596b729 fix namespace and use spelling mistake 2026-10-09 20:42:34 +02:00
Giovanni b8420f08cd fix wrong namespace use 2026-10-09 20:09:01 +02:00
Giovanni e7baf34c4f fix wrong namespace use 2026-10-09 18:45:22 +02:00
Giovanni 7b4512bf27 fix wrong namespace use 2026-10-09 18:33:35 +02:00
Giovanni eb3e00c9ce remove unnecessary code 2026-10-04 13:04:33 +02:00
Giovanni 8e481dfae6 remove unnecessary code 2026-10-04 00:53:19 +02:00
Giovanni 23e61c6349 remove unnecessary code 2026-10-04 00:52:11 +02:00
Giovanni 74c5d2d5ce remove unnecessary code 2026-10-04 00:43:46 +02:00
Giovanni 62e2420105 remove unnecessary code 2026-10-04 00:36:38 +02:00
Giovanni c4ad3e0cdf remove unnecessary code 2026-10-04 00:29:05 +02:00
Giovanni 3d06596fea remove unnecessary code 2026-10-04 00:18:21 +02:00
Giovanni 30987fb582 remove unnecessary code 2026-10-03 23:01:08 +02:00
65 changed files with 169 additions and 420 deletions

No files matched your search

-2
View File
@@ -11,8 +11,6 @@ TYPESENSE_API_KEY=
#Mettre à 1 quand vous êtes en développement et à rien en production
DEV=
FORCE_CLONE=false
USER_ID=1000
GROUP_ID=1000
+1 -7
View File
@@ -40,11 +40,6 @@ git clone <adresse du dépôt>
| Variable | Description |
| --------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `BACKEND_GIT_REPO` | URL HTTPS du dépôt backend sans le préfixe `https://` (ex : `gitlab.com/user/repo-backend.git`) |
| `FRONTEND_GIT_REPO` | URL HTTPS du dépôt frontend sans le préfixe `https://` |
| `BACKEND_GIT_BRANCH` | Branche de votre dépôt backend à utiliser (ex : `main`, `dev`) |
| `FRONTEND_GIT_BRANCH` | Branche de votre dépôt frontend à utiliser |
| `GIT_TOKEN` | Token GitLab à générer depuis *Préférences → User settings → Personal access tokens* <br>Permissions requises :<br>- `read_repository` (obligatoire)<br>- `write_repository` (optionnel, uniquement en développement) |
| `DB_CONNECTION` | Type de base de données utilisée (ex : `mysql`, `mariadb`) |
| `DB_HOST` | Adresse du serveur de base de données (ex : `localhost`, `db`) |
| `DB_PORT` | Port de la base de données (ex : `3306` pour MySQL/MariaDB) |
@@ -52,7 +47,6 @@ git clone <adresse du dépôt>
| `DB_USERNAME` | Nom d’utilisateur de la base de données |
| `DB_PASSWORD` | Mot de passe de l’utilisateur de la base de données |
| `DB_ROOT_PASSWORD` | Mot de passe du compte root de la base de données |
| `FORCE_CLONE` | Mettre à `true` pour forcer le clonage du dépôt backend même si la branche configurée diffère de la branche actuelle. |
| `DEV` | Mettre `1` en environnement de développement, laisser vide sinon. |
| `VITE_API_URL` | URL du frontend hébergé et exposé par le conteneur Nginx (par défaut sur le port 80) |
@@ -206,4 +200,4 @@ Nous avons mis en place tous les outils qui permettent à termes l'intégration
- Utilisation de Git pour gérer les versions du projet et intégrer régulièrement les modifications de chaque membre de l’équipe
- Utilisation de Docker pour garantir un environnement de développement et de déploiement identique et reproductible
- Tests réguliers des fonctionnalités à chaque ajout de code (tests manuels et tests API avec Bruno)
- Validation continue du projet, afin de s’assurer qu’une version fonctionnelle reste disponible à tout moment
- Validation continue du projet, afin de s’assurer qu’une version fonctionnelle reste disponible à tout moment
@@ -1,11 +1,10 @@
<?php
namespace apps\backend\app\Http\Controllers;
namespace App\Http\Controllers;
use Illuminate\Http\JsonResponse;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;
use function App\Http\Controllers\response;
class AuthController extends Controller
{
@@ -1,6 +1,6 @@
<?php
namespace apps\backend\app\Http\Controllers;
namespace App\Http\Controllers;
use Illuminate\Foundation\Auth\Access\AuthorizesRequests;
@@ -1,11 +1,11 @@
<?php
namespace apps\backend\app\Http\Controllers;
namespace App\Http\Controllers;
use apps\backend\app\Mail\EventParticipationCancelledMail;
use apps\backend\app\Models\Event;
use apps\backend\app\Models\Task;
use apps\backend\app\Notifications\EventDeleted;
use App\Mail\EventParticipationCancelledMail;
use App\Models\Event;
use App\Models\Task;
use App\Notifications\EventDeleted;
use Carbon\Carbon;
use Illuminate\Http\JsonResponse;
use Illuminate\Http\Request;
@@ -14,8 +14,6 @@ use Illuminate\Support\Facades\Log;
use Illuminate\Support\Facades\Mail;
use Illuminate\Support\Facades\Notification;
use Illuminate\Support\Facades\Storage;
use function App\Http\Controllers\response;
class EventsController extends Controller
{
@@ -1,10 +1,9 @@
<?php
namespace apps\backend\app\Http\Controllers;
namespace App\Http\Controllers;
use apps\backend\app\Models\User;
use App\Models\User;
use Carbon\Carbon;
use function App\Http\Controllers\response;
class ExportController extends Controller
{
@@ -1,11 +1,10 @@
<?php
namespace apps\backend\app\Http\Controllers;
namespace App\Http\Controllers;
use Illuminate\Http\JsonResponse;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Log;
use function App\Http\Controllers\response;
class NotificationsController extends Controller
{
@@ -1,12 +1,10 @@
<?php
namespace apps\backend\app\Http\Controllers;
namespace App\Http\Controllers;
use Exception;
use Illuminate\Http\Request;
use Typesense\Client;
use function App\Http\Controllers\config;
use function App\Http\Controllers\response;
class SearchController extends Controller
{
@@ -1,19 +1,19 @@
<?php
namespace apps\backend\app\Http\Controllers;
namespace App\Http\Controllers;
use apps\backend\app\Mail\TaskDateUpdateMail;
use apps\backend\app\Mail\TaskParticipationCancelledMail;
use apps\backend\app\Mail\VolunteerAssignToTaskMail;
use apps\backend\app\Mail\VolunteerUnassignToTaskMail;
use apps\backend\app\Models\Event;
use apps\backend\app\Models\Task;
use apps\backend\app\Models\User;
use apps\backend\app\Notifications\TaskDateUpdated;
use apps\backend\app\Notifications\TaskDeleted;
use apps\backend\app\Notifications\VolunteerAssignedToTask;
use apps\backend\app\Notifications\VolunteerUnassignedFromTask;
use apps\backend\app\Services\FormatDate;
use App\Mail\TaskDateUpdateMail;
use App\Mail\TaskParticipationCancelledMail;
use App\Mail\VolunteerAssignToTaskMail;
use App\Mail\VolunteerUnassignToTaskMail;
use App\Models\Event;
use App\Models\Task;
use App\Models\User;
use App\Notifications\TaskDateUpdated;
use App\Notifications\TaskDeleted;
use App\Notifications\VolunteerAssignedToTask;
use App\Notifications\VolunteerUnassignedFromTask;
use App\Services\FormatDate;
use Carbon\Carbon;
use Illuminate\Http\JsonResponse;
use Illuminate\Http\Request;
@@ -21,7 +21,6 @@ use Illuminate\Support\Facades\Gate;
use Illuminate\Support\Facades\Log;
use Illuminate\Support\Facades\Mail;
use Illuminate\Support\Facades\Notification;
use function App\Http\Controllers\response;
class TasksController extends Controller
{
@@ -1,22 +1,22 @@
<?php
namespace apps\backend\app\Http\Controllers;
namespace App\Http\Controllers;
use apps\backend\app\Mail\CreateUserByAdminMail;
use apps\backend\app\Mail\DeactivateAccountMail;
use apps\backend\app\Mail\DeleteAccountMail;
use apps\backend\app\Mail\EmailChangeConfirmedMail;
use apps\backend\app\Mail\NotifyEmailChangeMail;
use apps\backend\app\Mail\RegisterMail;
use apps\backend\app\Mail\RequestEmailChangeMail;
use apps\backend\app\Mail\UpdatePasswordMail;
use apps\backend\app\Mail\UpdateRoleMail;
use apps\backend\app\Mail\ValidateMail;
use apps\backend\app\Models\User;
use apps\backend\app\Notifications\UserRegistered;
use apps\backend\app\Notifications\VolunteerRoleUpdated;
use apps\backend\app\Services\GetRole;
use apps\backend\app\Services\UserService;
use App\Mail\CreateUserByAdminMail;
use App\Mail\DeactivateAccountMail;
use App\Mail\DeleteAccountMail;
use App\Mail\EmailChangeConfirmedMail;
use App\Mail\NotifyEmailChangeMail;
use App\Mail\RegisterMail;
use App\Mail\RequestEmailChangeMail;
use App\Mail\UpdatePasswordMail;
use App\Mail\UpdateRoleMail;
use App\Mail\ValidateMail;
use App\Models\User;
use App\Notifications\UserRegistered;
use App\Notifications\VolunteerRoleUpdated;
use App\Services\GetRole;
use App\Services\UserService;
use Illuminate\Database\Eloquent\ModelNotFoundException;
use Illuminate\Http\JsonResponse;
use Illuminate\Http\Request;
@@ -28,8 +28,6 @@ use Illuminate\Support\Facades\Notification;
use Illuminate\Support\Facades\Storage;
use Pest\Support\Str;
use Propaganistas\LaravelPhone\PhoneNumber;
use function App\Http\Controllers\now;
use function App\Http\Controllers\response;
class UserController extends Controller
{
@@ -1,9 +1,8 @@
<?php
namespace apps\backend\app\Mail;
namespace App\Mail;
use Illuminate\Bus\Queueable;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Mail\Mailable;
use Illuminate\Mail\Mailables\Content;
use Illuminate\Mail\Mailables\Envelope;
@@ -1,9 +1,8 @@
<?php
namespace apps\backend\app\Mail;
namespace App\Mail;
use Illuminate\Bus\Queueable;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Mail\Mailable;
use Illuminate\Mail\Mailables\Content;
use Illuminate\Mail\Mailables\Envelope;
+1 -2
View File
@@ -1,9 +1,8 @@
<?php
namespace apps\backend\app\Mail;
namespace App\Mail;
use Illuminate\Bus\Queueable;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Mail\Mailable;
use Illuminate\Mail\Mailables\Content;
use Illuminate\Mail\Mailables\Envelope;
@@ -1,9 +1,8 @@
<?php
namespace apps\backend\app\Mail;
namespace App\Mail;
use Illuminate\Bus\Queueable;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Mail\Mailable;
use Illuminate\Mail\Mailables\Content;
use Illuminate\Mail\Mailables\Envelope;
@@ -1,10 +1,9 @@
<?php
namespace apps\backend\app\Mail;
namespace App\Mail;
use apps\backend\app\Services\FormatDate;
use App\Services\FormatDate;
use Illuminate\Bus\Queueable;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Mail\Mailable;
use Illuminate\Mail\Mailables\Content;
use Illuminate\Mail\Mailables\Envelope;
@@ -1,9 +1,8 @@
<?php
namespace apps\backend\app\Mail;
namespace App\Mail;
use Illuminate\Bus\Queueable;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Mail\Mailable;
use Illuminate\Mail\Mailables\Content;
use Illuminate\Mail\Mailables\Envelope;
+1 -2
View File
@@ -1,9 +1,8 @@
<?php
namespace apps\backend\app\Mail;
namespace App\Mail;
use Illuminate\Bus\Queueable;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Mail\Mailable;
use Illuminate\Mail\Mailables\Content;
use Illuminate\Mail\Mailables\Envelope;
@@ -1,9 +1,8 @@
<?php
namespace apps\backend\app\Mail;
namespace App\Mail;
use Illuminate\Bus\Queueable;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Mail\Mailable;
use Illuminate\Mail\Mailables\Content;
use Illuminate\Mail\Mailables\Envelope;
+1 -2
View File
@@ -1,9 +1,8 @@
<?php
namespace apps\backend\app\Mail;
namespace App\Mail;
use Illuminate\Bus\Queueable;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Mail\Mailable;
use Illuminate\Mail\Mailables\Content;
use Illuminate\Mail\Mailables\Envelope;
@@ -1,10 +1,9 @@
<?php
namespace apps\backend\app\Mail;
namespace App\Mail;
use apps\backend\app\Services\FormatDate;
use App\Services\FormatDate;
use Illuminate\Bus\Queueable;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Mail\Mailable;
use Illuminate\Mail\Mailables\Content;
use Illuminate\Mail\Mailables\Envelope;
+1 -2
View File
@@ -1,9 +1,8 @@
<?php
namespace apps\backend\app\Mail;
namespace App\Mail;
use Illuminate\Bus\Queueable;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Mail\Mailable;
use Illuminate\Mail\Mailables\Content;
use Illuminate\Mail\Mailables\Envelope;
+1 -2
View File
@@ -1,9 +1,8 @@
<?php
namespace apps\backend\app\Mail;
namespace App\Mail;
use Illuminate\Bus\Queueable;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Mail\Mailable;
use Illuminate\Mail\Mailables\Content;
use Illuminate\Mail\Mailables\Envelope;
+1 -2
View File
@@ -1,9 +1,8 @@
<?php
namespace apps\backend\app\Mail;
namespace App\Mail;
use Illuminate\Bus\Queueable;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Mail\Mailable;
use Illuminate\Mail\Mailables\Content;
use Illuminate\Mail\Mailables\Envelope;
@@ -1,10 +1,9 @@
<?php
namespace apps\backend\app\Mail;
namespace App\Mail;
use apps\backend\app\Services\FormatDate;
use App\Services\FormatDate;
use Illuminate\Bus\Queueable;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Mail\Mailable;
use Illuminate\Mail\Mailables\Content;
use Illuminate\Mail\Mailables\Envelope;
@@ -1,10 +1,9 @@
<?php
namespace apps\backend\app\Mail;
namespace App\Mail;
use apps\backend\app\Services\FormatDate;
use App\Services\FormatDate;
use Illuminate\Bus\Queueable;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Mail\Mailable;
use Illuminate\Mail\Mailables\Content;
use Illuminate\Mail\Mailables\Envelope;
+1 -1
View File
@@ -1,6 +1,6 @@
<?php
namespace apps\backend\app\Models;
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
+1 -1
View File
@@ -1,6 +1,6 @@
<?php
namespace apps\backend\app\Models;
namespace App\Models;
use Illuminate\Database\Eloquent\Model;
+3 -2
View File
@@ -1,15 +1,16 @@
<?php
namespace apps\backend\app\Models;
namespace App\Models;
// use Illuminate\Contracts\Auth\MustVerifyEmail;
use Database\Factories\UserFactory;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Foundation\Auth\User as Authenticatable;
use Illuminate\Notifications\Notifiable;
class User extends Authenticatable
{
/** @use HasFactory<\apps\backend\database\factories\UserFactory> */
/** @use HasFactory<UserFactory> */
use HasFactory, Notifiable;
/**
@@ -1,13 +1,12 @@
<?php
namespace apps\backend\app\Notifications;
namespace App\Notifications;
use apps\backend\app\Models\Event;
use App\Models\Event;
use Illuminate\Bus\Queueable;
use Illuminate\Contracts\Broadcasting\ShouldBroadcast;
use Illuminate\Notifications\Messages\BroadcastMessage;
use Illuminate\Notifications\Notification;
use Illuminate\Support\Facades\Mail;
class EventDeleted extends Notification implements ShouldBroadcast
{
@@ -1,14 +1,13 @@
<?php
namespace apps\backend\app\Notifications;
namespace App\Notifications;
use apps\backend\app\Models\Event;
use apps\backend\app\Models\Task;
use App\Models\Event;
use App\Models\Task;
use Illuminate\Bus\Queueable;
use Illuminate\Contracts\Broadcasting\ShouldBroadcast;
use Illuminate\Notifications\Messages\BroadcastMessage;
use Illuminate\Notifications\Notification;
use Illuminate\Support\Facades\Mail;
class TaskDateUpdated extends Notification implements ShouldBroadcast
{
@@ -1,14 +1,13 @@
<?php
namespace apps\backend\app\Notifications;
namespace App\Notifications;
use apps\backend\app\Models\Event;
use apps\backend\app\Models\Task;
use App\Models\Event;
use App\Models\Task;
use Illuminate\Bus\Queueable;
use Illuminate\Contracts\Broadcasting\ShouldBroadcast;
use Illuminate\Notifications\Messages\BroadcastMessage;
use Illuminate\Notifications\Notification;
use Illuminate\Support\Facades\Mail;
class TaskDeleted extends Notification implements ShouldBroadcast
{
@@ -1,14 +1,12 @@
<?php
namespace apps\backend\app\Notifications;
namespace App\Notifications;
use apps\backend\app\Models\User;
use App\Models\User;
use Illuminate\Bus\Queueable;
use Illuminate\Contracts\Broadcasting\ShouldBroadcast;
use Illuminate\Notifications\Messages\BroadcastMessage;
use Illuminate\Notifications\Messages\MailMessage;
use Illuminate\Notifications\Notification;
use Illuminate\Support\Facades\Mail;
class UserRegistered extends Notification implements ShouldBroadcast
{
@@ -1,14 +1,13 @@
<?php
namespace apps\backend\app\Notifications;
namespace App\Notifications;
use apps\backend\app\Models\Event;
use apps\backend\app\Models\Task;
use App\Models\Event;
use App\Models\Task;
use Illuminate\Bus\Queueable;
use Illuminate\Contracts\Broadcasting\ShouldBroadcast;
use Illuminate\Notifications\Messages\BroadcastMessage;
use Illuminate\Notifications\Notification;
use Illuminate\Support\Facades\Mail;
class VolunteerAssignedToTask extends Notification implements ShouldBroadcast
{
@@ -1,12 +1,11 @@
<?php
namespace apps\backend\app\Notifications;
namespace App\Notifications;
use Illuminate\Bus\Queueable;
use Illuminate\Contracts\Broadcasting\ShouldBroadcast;
use Illuminate\Notifications\Messages\BroadcastMessage;
use Illuminate\Notifications\Notification;
use Illuminate\Support\Facades\Mail;
class VolunteerRoleUpdated extends Notification implements ShouldBroadcast
{
@@ -1,14 +1,13 @@
<?php
namespace apps\backend\app\Notifications;
namespace App\Notifications;
use apps\backend\app\Models\Event;
use apps\backend\app\Models\Task;
use App\Models\Event;
use App\Models\Task;
use Illuminate\Bus\Queueable;
use Illuminate\Contracts\Broadcasting\ShouldBroadcast;
use Illuminate\Notifications\Messages\BroadcastMessage;
use Illuminate\Notifications\Notification;
use Illuminate\Support\Facades\Mail;
class VolunteerUnassignedFromTask extends Notification implements ShouldBroadcast
{
+3 -4
View File
@@ -1,10 +1,9 @@
<?php
namespace apps\backend\app\Observers;
namespace App\Observers;
use apps\backend\app\Models\Event;
use apps\backend\app\Services\TypesenseService;
use function App\Observers\app;
use App\Models\Event;
use App\Services\TypesenseService;
class EventObserver
{
+3 -4
View File
@@ -1,10 +1,9 @@
<?php
namespace apps\backend\app\Observers;
namespace App\Observers;
use apps\backend\app\Models\User;
use apps\backend\app\Services\TypesenseService;
use function App\Observers\app;
use App\Models\User;
use App\Services\TypesenseService;
class UserObserver
{
+2 -3
View File
@@ -1,9 +1,8 @@
<?php
namespace apps\backend\app\Policies;
namespace App\Policies;
use apps\backend\app\Models\User;
use Illuminate\Auth\Access\Response;
use App\Models\User;
class EventsPolicy
{
+2 -3
View File
@@ -1,9 +1,8 @@
<?php
namespace apps\backend\app\Policies;
namespace App\Policies;
use apps\backend\app\Models\User;
use Illuminate\Auth\Access\Response;
use App\Models\User;
class TasksPolicy
{
+2 -3
View File
@@ -1,9 +1,8 @@
<?php
namespace apps\backend\app\Policies;
namespace App\Policies;
use apps\backend\app\Models\User;
use Illuminate\Auth\Access\Response;
use App\Models\User;
class UsersPolicy
{
@@ -1,14 +1,13 @@
<?php
namespace apps\backend\app\Providers;
namespace App\Providers;
use apps\backend\app\Models\Event;
use apps\backend\app\Models\User;
use apps\backend\app\Observers\EventObserver;
use apps\backend\app\Observers\UserObserver;
use App\Models\Event;
use App\Models\User;
use App\Observers\EventObserver;
use App\Observers\UserObserver;
use Illuminate\Support\Facades\Route;
use Illuminate\Support\ServiceProvider;
use function App\Providers\base_path;
class AppServiceProvider extends ServiceProvider
{
@@ -23,13 +22,17 @@ class AppServiceProvider extends ServiceProvider
/**
* Bootstrap any application services.
*/
public function boot(): void
{
Route::middleware('web')->prefix('api')->group(base_path('routes/users.php'));
Route::middleware('web')->prefix('api')->group(base_path('routes/auth.php'));
Route::middleware('web')->prefix('api')->group(base_path('routes/events.php'));
Route::middleware('web')->prefix('api')->group(base_path('routes/notifications.php'));
Route::middleware('web')->prefix('api')->group(base_path('routes/channels.php'));
public function boot(): void {
Route::middleware('web')->prefix('api')
->group($this->app->basePath('routes/users.php'));
Route::middleware('web')->prefix('api')
->group($this->app->basePath('routes/auth.php'));
Route::middleware('web')->prefix('api')
->group($this->app->basePath('routes/events.php'));
Route::middleware('web')->prefix('api')
->group($this->app->basePath('routes/notifications.php'));
Route::middleware('web')->prefix('api')
->group($this->app->basePath('routes/channels.php'));
User::observe(UserObserver::class);
Event::observe(EventObserver::class);
}
@@ -1,10 +1,9 @@
<?php
namespace apps\backend\app\Providers;
namespace App\Providers;
use Illuminate\Support\Facades\Broadcast;
use Illuminate\Support\ServiceProvider;
use function App\Providers\base_path;
class BroadcastServiceProvider extends ServiceProvider
{
@@ -1,13 +1,13 @@
<?php
namespace apps\backend\app\Providers;
namespace App\Providers;
use apps\backend\app\Models\Event;
use apps\backend\app\Models\Task;
use apps\backend\app\Models\User;
use apps\backend\app\Policies\EventsPolicy;
use apps\backend\app\Policies\TasksPolicy;
use apps\backend\app\Policies\UsersPolicy;
use App\Models\Event;
use App\Models\Task;
use App\Models\User;
use App\Policies\EventsPolicy;
use App\Policies\TasksPolicy;
use App\Policies\UsersPolicy;
use Illuminate\Support\Facades\Gate;
use Illuminate\Support\ServiceProvider;
+1 -1
View File
@@ -1,6 +1,6 @@
<?php
namespace apps\backend\app\Services;
namespace App\Services;
use Carbon\Carbon;
+1 -1
View File
@@ -1,6 +1,6 @@
<?php
namespace apps\backend\app\Services;
namespace App\Services;
class GetRole
{
@@ -1,13 +1,10 @@
<?php
namespace apps\backend\app\Services;
namespace App\Services;
use apps\backend\app\Models\Event;
use apps\backend\app\Models\User;
use Illuminate\Support\Facades\Cache;
use App\Models\Event;
use App\Models\User;
use Typesense\Client;
use function App\Services\config;
use function App\Services\report;
class TypesenseService
{
@@ -27,7 +24,6 @@ class TypesenseService
]);
}
private function ensureCollectionsExist(): void
{
static $checked = false;
@@ -97,7 +93,6 @@ class TypesenseService
}
}
public function upsertUser(User $user): void
{
$this->ensureCollectionsExist();
+2 -3
View File
@@ -1,8 +1,7 @@
<?php
namespace apps\backend\app\Services;
use apps\backend\app\Models\User;
use Illuminate\Support\Facades\Log;
namespace App\Services;
use App\Models\User;
class UserService
{
+3 -3
View File
@@ -1,7 +1,7 @@
<?php
return [
\apps\backend\app\Providers\AppServiceProvider::class,
\apps\backend\app\Providers\BroadcastServiceProvider::class,
\apps\backend\app\Providers\GateServiceProvider::class,
app\Providers\AppServiceProvider::class,
app\Providers\BroadcastServiceProvider::class,
app\Providers\GateServiceProvider::class,
];
+1 -1
View File
@@ -62,7 +62,7 @@ return [
'providers' => [
'users' => [
'driver' => 'eloquent',
'model' => env('AUTH_MODEL', \apps\backend\app\Models\User::class),
'model' => env('AUTH_MODEL', App\Models\User::class),
],
// 'users' => [
@@ -1,11 +1,12 @@
<?php
namespace apps\backend\database\factories;
namespace Database\Factories;
use App\Models\Event;
use Illuminate\Database\Eloquent\Factories\Factory;
/**
* @extends \Illuminate\Database\Eloquent\Factories\Factory<\apps\backend\app\Models\Event>
* @extends \Illuminate\Database\Eloquent\Factories\Factory<Event>
*/
class EventFactory extends Factory
{
@@ -1,14 +1,14 @@
<?php
namespace apps\backend\database\factories;
namespace Database\Factories;
use App\Models\User;
use Illuminate\Database\Eloquent\Factories\Factory;
use Illuminate\Support\Facades\Hash;
use Illuminate\Support\Str;
use function Database\Factories\fake;
/**
* @extends \Illuminate\Database\Eloquent\Factories\Factory<\apps\backend\app\Models\User>
* @extends \Illuminate\Database\Eloquent\Factories\Factory<User>
*/
class UserFactory extends Factory
{
@@ -1,6 +1,6 @@
<?php
namespace apps\backend\database\migrations;
namespace Database\Migrations;
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
@@ -1,15 +1,12 @@
<?php
namespace apps\backend\database\seeders;
namespace Database\Seeders;
use apps\backend\database\seeders\DevSeeder;
use apps\backend\database\seeders\ProdSeeder;
use Illuminate\Database\Seeder;
use function Database\Seeders\config;
class DatabaseSeeder extends Seeder
{
public function run()
public function run(): void
{
if (config('app.dev') == 1) {
$this->call(DevSeeder::class);
@@ -18,4 +15,3 @@ class DatabaseSeeder extends Seeder
}
}
}
+4 -12
View File
@@ -1,21 +1,14 @@
<?php
namespace apps\backend\database\seeders;
namespace Database\Seeders;
use apps\backend\app\Models\Event;
use apps\backend\app\Models\User;
use apps\backend\app\Services\TypesenseService;
use Illuminate\Database\Console\Seeds\WithoutModelEvents;
use App\Models\Event;
use App\Models\User;
use App\Services\TypesenseService;
use Illuminate\Database\Seeder;
use function Database\Seeders\app;
use function Database\Seeders\bcrypt;
use function Database\Seeders\config;
class DevSeeder extends Seeder
{
/**
* Run the database seeds.
*/
public function run(): void
{
$typesense = app(TypesenseService::class);
@@ -41,4 +34,3 @@ class DevSeeder extends Seeder
Event::factory()->count(10)->create();
}
}
+3 -10
View File
@@ -1,19 +1,13 @@
<?php
namespace apps\backend\database\seeders;
namespace Database\Seeders;
use apps\backend\app\Models\User;
use apps\backend\app\Services\TypesenseService;
use App\Models\User;
use App\Services\TypesenseService;
use Illuminate\Database\Seeder;
use function Database\Seeders\app;
use function Database\Seeders\bcrypt;
use function Database\Seeders\config;
class ProdSeeder extends Seeder
{
/**
* Run the database seeds.
*/
public function run(): void
{
$typesense = app(TypesenseService::class);
@@ -35,4 +29,3 @@ class ProdSeeder extends Seeder
$typesense->upsertUser($admin);
}
}
+7 -6
View File
@@ -1,14 +1,13 @@
<?php
use App\Http\Controllers\ProfilePhotoController;
use apps\backend\app\Http\Controllers\ExportController;
use App\Http\Controllers\ExportController;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Route;
Route::middleware('auth:sanctum')->group(function () {
Route::post('/profile-photo', [\apps\backend\app\Http\Controllers\UserController::class, 'updatePhoto']);
Route::delete('/profile-photo', [\apps\backend\app\Http\Controllers\UserController::class, 'destroy']);
Route::get('/profile-photo', [\apps\backend\app\Http\Controllers\UserController::class, 'show']);
Route::post('/profile-photo', [app\Http\Controllers\UserController::class, 'updatePhoto']);
Route::delete('/profile-photo', [app\Http\Controllers\UserController::class, 'destroy']);
Route::get('/profile-photo', [app\Http\Controllers\UserController::class, 'show']);
});
@@ -18,5 +17,7 @@ Route::get("/hello", function (Request $request) {
});
Route::get("/roles", function(Request $request) {
return \apps\backend\app\Services\GetRole::GetAllRoles();
return app\Services\GetRole::GetAllRoles();
});
require __DIR__ . '/auth.php';
+7 -6
View File
@@ -1,14 +1,15 @@
<?php
use apps\backend\app\Http\Controllers\AuthController;
use apps\backend\app\Http\Controllers\UserController;
use App\Http\Controllers\AuthController;
use App\Http\Controllers\UserController;
use Illuminate\Support\Facades\Route;
Route::post("/users/register", [UserController::class, "create"]);
Route::middleware('web')->post('/users/login', [AuthController::class, 'login']);
Route::post('/users/login', [AuthController::class, 'login']);
Route::middleware(['web', 'auth:sanctum'])->post('/users/logout', [AuthController::class, 'logout']);
Route::middleware(['web', 'auth:sanctum'])->post('/users/create', [UserController::class, 'createUserByAdmin']);
Route::middleware('auth:sanctum')->group(function () {
Route::post('/users/logout', [AuthController::class, 'logout']);
Route::post('/users/create', [UserController::class, 'createUserByAdmin']);
});
+3 -3
View File
@@ -1,8 +1,8 @@
<?php
use apps\backend\app\Http\Controllers\EventsController;
use apps\backend\app\Http\Controllers\SearchController;
use apps\backend\app\Http\Controllers\TasksController;
use App\Http\Controllers\EventsController;
use App\Http\Controllers\SearchController;
use App\Http\Controllers\TasksController;
use Illuminate\Support\Facades\Route;
Route::middleware(['web', 'auth:sanctum'])->post('/events/create', [EventsController::class, "create"]);
+1 -1
View File
@@ -1,6 +1,6 @@
<?php
use apps\backend\app\Http\Controllers\NotificationsController;
use App\Http\Controllers\NotificationsController;
use Illuminate\Support\Facades\Route;
Route::middleware(['web', 'auth:sanctum'])->get('/users/notifications', [NotificationsController::class, "getNotifications"]);
+2 -2
View File
@@ -1,7 +1,7 @@
<?php
use apps\backend\app\Http\Controllers\SearchController;
use apps\backend\app\Http\Controllers\UserController;
use App\Http\Controllers\SearchController;
use App\Http\Controllers\UserController;
use Illuminate\Support\Facades\Route;
+2 -2
View File
@@ -3,5 +3,5 @@
use Illuminate\Support\Facades\Route;
Route::get('/{any}', function () {
return file_get_contents(public_path('index.html'));
})->where('any', '.*');
return view('app');
})->where('any', '^(?!api).*$');
@@ -1,6 +1,6 @@
import styles from "./Event.module.css";
import { useNavigate } from "react-router";
import Button from "../../../../components/ui/Button/Button.tsx"
import Button from "../../../../components/ui/Button/Button"
function Event({event}){
-2
View File
@@ -80,8 +80,6 @@ services:
depends_on:
php:
condition: service_healthy
frontend:
condition: service_completed_successfully
restart: unless-stopped
typesense:
+1 -3
View File
@@ -5,10 +5,8 @@ WORKDIR /var/www/app/apps/frontend
RUN apk add --no-cache git bash
COPY entrypoint.sh /usr/local/bin/entrypoint.sh
COPY scripts/wait-for-it.sh /usr/local/bin/wait-for-it.sh
RUN chmod +x /usr/local/bin/entrypoint.sh \
/usr/local/bin/wait-for-it.sh
RUN chmod +x /usr/local/bin/entrypoint.sh
ENTRYPOINT ["/usr/local/bin/entrypoint.sh"]
CMD ["build"]
-182
View File
@@ -1,182 +0,0 @@
#!/usr/bin/env bash
# Use this script to test if a given TCP host/port are available
WAITFORIT_cmdname=${0##*/}
echoerr() { if [[ $WAITFORIT_QUIET -ne 1 ]]; then echo "$@" 1>&2; fi }
usage()
{
cat << USAGE >&2
Usage:
$WAITFORIT_cmdname host:port [-s] [-t timeout] [-- command args]
-h HOST | --host=HOST Host or IP under test
-p PORT | --port=PORT TCP port under test
Alternatively, you specify the host and port as host:port
-s | --strict Only execute subcommand if the test succeeds
-q | --quiet Don't output any status messages
-t TIMEOUT | --timeout=TIMEOUT
Timeout in seconds, zero for no timeout
-- COMMAND ARGS Execute command with args after the test finishes
USAGE
exit 1
}
wait_for()
{
if [[ $WAITFORIT_TIMEOUT -gt 0 ]]; then
echoerr "$WAITFORIT_cmdname: waiting $WAITFORIT_TIMEOUT seconds for $WAITFORIT_HOST:$WAITFORIT_PORT"
else
echoerr "$WAITFORIT_cmdname: waiting for $WAITFORIT_HOST:$WAITFORIT_PORT without a timeout"
fi
WAITFORIT_start_ts=$(date +%s)
while :
do
if [[ $WAITFORIT_ISBUSY -eq 1 ]]; then
nc -z $WAITFORIT_HOST $WAITFORIT_PORT
WAITFORIT_result=$?
else
(echo -n > /dev/tcp/$WAITFORIT_HOST/$WAITFORIT_PORT) >/dev/null 2>&1
WAITFORIT_result=$?
fi
if [[ $WAITFORIT_result -eq 0 ]]; then
WAITFORIT_end_ts=$(date +%s)
echoerr "$WAITFORIT_cmdname: $WAITFORIT_HOST:$WAITFORIT_PORT is available after $((WAITFORIT_end_ts - WAITFORIT_start_ts)) seconds"
break
fi
sleep 1
done
return $WAITFORIT_result
}
wait_for_wrapper()
{
# In order to support SIGINT during timeout: http://unix.stackexchange.com/a/57692
if [[ $WAITFORIT_QUIET -eq 1 ]]; then
timeout $WAITFORIT_BUSYTIMEFLAG $WAITFORIT_TIMEOUT $0 --quiet --child --host=$WAITFORIT_HOST --port=$WAITFORIT_PORT --timeout=$WAITFORIT_TIMEOUT &
else
timeout $WAITFORIT_BUSYTIMEFLAG $WAITFORIT_TIMEOUT $0 --child --host=$WAITFORIT_HOST --port=$WAITFORIT_PORT --timeout=$WAITFORIT_TIMEOUT &
fi
WAITFORIT_PID=$!
trap "kill -INT -$WAITFORIT_PID" INT
wait $WAITFORIT_PID
WAITFORIT_RESULT=$?
if [[ $WAITFORIT_RESULT -ne 0 ]]; then
echoerr "$WAITFORIT_cmdname: timeout occurred after waiting $WAITFORIT_TIMEOUT seconds for $WAITFORIT_HOST:$WAITFORIT_PORT"
fi
return $WAITFORIT_RESULT
}
# process arguments
while [[ $# -gt 0 ]]
do
case "$1" in
*:* )
WAITFORIT_hostport=(${1//:/ })
WAITFORIT_HOST=${WAITFORIT_hostport[0]}
WAITFORIT_PORT=${WAITFORIT_hostport[1]}
shift 1
;;
--child)
WAITFORIT_CHILD=1
shift 1
;;
-q | --quiet)
WAITFORIT_QUIET=1
shift 1
;;
-s | --strict)
WAITFORIT_STRICT=1
shift 1
;;
-h)
WAITFORIT_HOST="$2"
if [[ $WAITFORIT_HOST == "" ]]; then break; fi
shift 2
;;
--host=*)
WAITFORIT_HOST="${1#*=}"
shift 1
;;
-p)
WAITFORIT_PORT="$2"
if [[ $WAITFORIT_PORT == "" ]]; then break; fi
shift 2
;;
--port=*)
WAITFORIT_PORT="${1#*=}"
shift 1
;;
-t)
WAITFORIT_TIMEOUT="$2"
if [[ $WAITFORIT_TIMEOUT == "" ]]; then break; fi
shift 2
;;
--timeout=*)
WAITFORIT_TIMEOUT="${1#*=}"
shift 1
;;
--)
shift
WAITFORIT_CLI=("$@")
break
;;
--help)
usage
;;
*)
echoerr "Unknown argument: $1"
usage
;;
esac
done
if [[ "$WAITFORIT_HOST" == "" || "$WAITFORIT_PORT" == "" ]]; then
echoerr "Error: you need to provide a host and port to test."
usage
fi
WAITFORIT_TIMEOUT=${WAITFORIT_TIMEOUT:-15}
WAITFORIT_STRICT=${WAITFORIT_STRICT:-0}
WAITFORIT_CHILD=${WAITFORIT_CHILD:-0}
WAITFORIT_QUIET=${WAITFORIT_QUIET:-0}
# Check to see if timeout is from busybox?
WAITFORIT_TIMEOUT_PATH=$(type -p timeout)
WAITFORIT_TIMEOUT_PATH=$(realpath $WAITFORIT_TIMEOUT_PATH 2>/dev/null || readlink -f $WAITFORIT_TIMEOUT_PATH)
WAITFORIT_BUSYTIMEFLAG=""
if [[ $WAITFORIT_TIMEOUT_PATH =~ "busybox" ]]; then
WAITFORIT_ISBUSY=1
# Check if busybox timeout uses -t flag
# (recent Alpine versions don't support -t anymore)
if timeout &>/dev/stdout | grep -q -e '-t '; then
WAITFORIT_BUSYTIMEFLAG="-t"
fi
else
WAITFORIT_ISBUSY=0
fi
if [[ $WAITFORIT_CHILD -gt 0 ]]; then
wait_for
WAITFORIT_RESULT=$?
exit $WAITFORIT_RESULT
else
if [[ $WAITFORIT_TIMEOUT -gt 0 ]]; then
wait_for_wrapper
WAITFORIT_RESULT=$?
else
wait_for
WAITFORIT_RESULT=$?
fi
fi
if [[ $WAITFORIT_CLI != "" ]]; then
if [[ $WAITFORIT_RESULT -ne 0 && $WAITFORIT_STRICT -eq 1 ]]; then
echoerr "$WAITFORIT_cmdname: strict mode, refusing to execute subprocess"
exit $WAITFORIT_RESULT
fi
exec "${WAITFORIT_CLI[@]}"
else
exit $WAITFORIT_RESULT
fi