Compare commits

...
17 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
Giovanni 75bf1b966b remove unnecessary code 2026-10-03 22:58:42 +02:00
Giovanni 99f483b89c remove unnecessary code 2026-10-03 22:56:03 +02:00
65 changed files with 170 additions and 421 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 #Mettre à 1 quand vous êtes en développement et à rien en production
DEV= DEV=
FORCE_CLONE=false
USER_ID=1000 USER_ID=1000
GROUP_ID=1000 GROUP_ID=1000
+1 -7
View File
@@ -40,11 +40,6 @@ git clone <adresse du dépôt>
| Variable | Description | | 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_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_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) | | `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_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_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 | | `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. | | `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) | | `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 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 - 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) - 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 <?php
namespace apps\backend\app\Http\Controllers; namespace App\Http\Controllers;
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;
use function App\Http\Controllers\response;
class AuthController extends Controller class AuthController extends Controller
{ {
@@ -1,6 +1,6 @@
<?php <?php
namespace apps\backend\app\Http\Controllers; namespace App\Http\Controllers;
use Illuminate\Foundation\Auth\Access\AuthorizesRequests; use Illuminate\Foundation\Auth\Access\AuthorizesRequests;
@@ -1,11 +1,11 @@
<?php <?php
namespace apps\backend\app\Http\Controllers; namespace App\Http\Controllers;
use apps\backend\app\Mail\EventParticipationCancelledMail; use App\Mail\EventParticipationCancelledMail;
use apps\backend\app\Models\Event; use App\Models\Event;
use apps\backend\app\Models\Task; use App\Models\Task;
use apps\backend\app\Notifications\EventDeleted; use App\Notifications\EventDeleted;
use Carbon\Carbon; use Carbon\Carbon;
use Illuminate\Http\JsonResponse; use Illuminate\Http\JsonResponse;
use Illuminate\Http\Request; use Illuminate\Http\Request;
@@ -14,8 +14,6 @@ use Illuminate\Support\Facades\Log;
use Illuminate\Support\Facades\Mail; use Illuminate\Support\Facades\Mail;
use Illuminate\Support\Facades\Notification; use Illuminate\Support\Facades\Notification;
use Illuminate\Support\Facades\Storage; use Illuminate\Support\Facades\Storage;
use function App\Http\Controllers\response;
class EventsController extends Controller class EventsController extends Controller
{ {
@@ -1,10 +1,9 @@
<?php <?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 Carbon\Carbon;
use function App\Http\Controllers\response;
class ExportController extends Controller class ExportController extends Controller
{ {
@@ -1,11 +1,10 @@
<?php <?php
namespace apps\backend\app\Http\Controllers; namespace App\Http\Controllers;
use Illuminate\Http\JsonResponse; use Illuminate\Http\JsonResponse;
use Illuminate\Http\Request; use Illuminate\Http\Request;
use Illuminate\Support\Facades\Log; use Illuminate\Support\Facades\Log;
use function App\Http\Controllers\response;
class NotificationsController extends Controller class NotificationsController extends Controller
{ {
@@ -1,12 +1,10 @@
<?php <?php
namespace apps\backend\app\Http\Controllers; namespace App\Http\Controllers;
use Exception; use Exception;
use Illuminate\Http\Request; use Illuminate\Http\Request;
use Typesense\Client; use Typesense\Client;
use function App\Http\Controllers\config;
use function App\Http\Controllers\response;
class SearchController extends Controller class SearchController extends Controller
{ {
@@ -1,19 +1,19 @@
<?php <?php
namespace apps\backend\app\Http\Controllers; namespace App\Http\Controllers;
use apps\backend\app\Mail\TaskDateUpdateMail; use App\Mail\TaskDateUpdateMail;
use apps\backend\app\Mail\TaskParticipationCancelledMail; use App\Mail\TaskParticipationCancelledMail;
use apps\backend\app\Mail\VolunteerAssignToTaskMail; use App\Mail\VolunteerAssignToTaskMail;
use apps\backend\app\Mail\VolunteerUnassignToTaskMail; use App\Mail\VolunteerUnassignToTaskMail;
use apps\backend\app\Models\Event; use App\Models\Event;
use apps\backend\app\Models\Task; use App\Models\Task;
use apps\backend\app\Models\User; use App\Models\User;
use apps\backend\app\Notifications\TaskDateUpdated; use App\Notifications\TaskDateUpdated;
use apps\backend\app\Notifications\TaskDeleted; use App\Notifications\TaskDeleted;
use apps\backend\app\Notifications\VolunteerAssignedToTask; use App\Notifications\VolunteerAssignedToTask;
use apps\backend\app\Notifications\VolunteerUnassignedFromTask; use App\Notifications\VolunteerUnassignedFromTask;
use apps\backend\app\Services\FormatDate; use App\Services\FormatDate;
use Carbon\Carbon; use Carbon\Carbon;
use Illuminate\Http\JsonResponse; use Illuminate\Http\JsonResponse;
use Illuminate\Http\Request; use Illuminate\Http\Request;
@@ -21,7 +21,6 @@ use Illuminate\Support\Facades\Gate;
use Illuminate\Support\Facades\Log; use Illuminate\Support\Facades\Log;
use Illuminate\Support\Facades\Mail; use Illuminate\Support\Facades\Mail;
use Illuminate\Support\Facades\Notification; use Illuminate\Support\Facades\Notification;
use function App\Http\Controllers\response;
class TasksController extends Controller class TasksController extends Controller
{ {
@@ -1,22 +1,22 @@
<?php <?php
namespace apps\backend\app\Http\Controllers; namespace App\Http\Controllers;
use apps\backend\app\Mail\CreateUserByAdminMail; use App\Mail\CreateUserByAdminMail;
use apps\backend\app\Mail\DeactivateAccountMail; use App\Mail\DeactivateAccountMail;
use apps\backend\app\Mail\DeleteAccountMail; use App\Mail\DeleteAccountMail;
use apps\backend\app\Mail\EmailChangeConfirmedMail; use App\Mail\EmailChangeConfirmedMail;
use apps\backend\app\Mail\NotifyEmailChangeMail; use App\Mail\NotifyEmailChangeMail;
use apps\backend\app\Mail\RegisterMail; use App\Mail\RegisterMail;
use apps\backend\app\Mail\RequestEmailChangeMail; use App\Mail\RequestEmailChangeMail;
use apps\backend\app\Mail\UpdatePasswordMail; use App\Mail\UpdatePasswordMail;
use apps\backend\app\Mail\UpdateRoleMail; use App\Mail\UpdateRoleMail;
use apps\backend\app\Mail\ValidateMail; use App\Mail\ValidateMail;
use apps\backend\app\Models\User; use App\Models\User;
use apps\backend\app\Notifications\UserRegistered; use App\Notifications\UserRegistered;
use apps\backend\app\Notifications\VolunteerRoleUpdated; use App\Notifications\VolunteerRoleUpdated;
use apps\backend\app\Services\GetRole; use App\Services\GetRole;
use apps\backend\app\Services\UserService; use App\Services\UserService;
use Illuminate\Database\Eloquent\ModelNotFoundException; use Illuminate\Database\Eloquent\ModelNotFoundException;
use Illuminate\Http\JsonResponse; use Illuminate\Http\JsonResponse;
use Illuminate\Http\Request; use Illuminate\Http\Request;
@@ -28,8 +28,6 @@ use Illuminate\Support\Facades\Notification;
use Illuminate\Support\Facades\Storage; use Illuminate\Support\Facades\Storage;
use Pest\Support\Str; use Pest\Support\Str;
use Propaganistas\LaravelPhone\PhoneNumber; use Propaganistas\LaravelPhone\PhoneNumber;
use function App\Http\Controllers\now;
use function App\Http\Controllers\response;
class UserController extends Controller class UserController extends Controller
{ {
@@ -1,9 +1,8 @@
<?php <?php
namespace apps\backend\app\Mail; namespace App\Mail;
use Illuminate\Bus\Queueable; use Illuminate\Bus\Queueable;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Mail\Mailable; use Illuminate\Mail\Mailable;
use Illuminate\Mail\Mailables\Content; use Illuminate\Mail\Mailables\Content;
use Illuminate\Mail\Mailables\Envelope; use Illuminate\Mail\Mailables\Envelope;
@@ -1,9 +1,8 @@
<?php <?php
namespace apps\backend\app\Mail; namespace App\Mail;
use Illuminate\Bus\Queueable; use Illuminate\Bus\Queueable;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Mail\Mailable; use Illuminate\Mail\Mailable;
use Illuminate\Mail\Mailables\Content; use Illuminate\Mail\Mailables\Content;
use Illuminate\Mail\Mailables\Envelope; use Illuminate\Mail\Mailables\Envelope;
+1 -2
View File
@@ -1,9 +1,8 @@
<?php <?php
namespace apps\backend\app\Mail; namespace App\Mail;
use Illuminate\Bus\Queueable; use Illuminate\Bus\Queueable;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Mail\Mailable; use Illuminate\Mail\Mailable;
use Illuminate\Mail\Mailables\Content; use Illuminate\Mail\Mailables\Content;
use Illuminate\Mail\Mailables\Envelope; use Illuminate\Mail\Mailables\Envelope;
@@ -1,9 +1,8 @@
<?php <?php
namespace apps\backend\app\Mail; namespace App\Mail;
use Illuminate\Bus\Queueable; use Illuminate\Bus\Queueable;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Mail\Mailable; use Illuminate\Mail\Mailable;
use Illuminate\Mail\Mailables\Content; use Illuminate\Mail\Mailables\Content;
use Illuminate\Mail\Mailables\Envelope; use Illuminate\Mail\Mailables\Envelope;
@@ -1,10 +1,9 @@
<?php <?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\Bus\Queueable;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Mail\Mailable; use Illuminate\Mail\Mailable;
use Illuminate\Mail\Mailables\Content; use Illuminate\Mail\Mailables\Content;
use Illuminate\Mail\Mailables\Envelope; use Illuminate\Mail\Mailables\Envelope;
@@ -1,9 +1,8 @@
<?php <?php
namespace apps\backend\app\Mail; namespace App\Mail;
use Illuminate\Bus\Queueable; use Illuminate\Bus\Queueable;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Mail\Mailable; use Illuminate\Mail\Mailable;
use Illuminate\Mail\Mailables\Content; use Illuminate\Mail\Mailables\Content;
use Illuminate\Mail\Mailables\Envelope; use Illuminate\Mail\Mailables\Envelope;
+1 -2
View File
@@ -1,9 +1,8 @@
<?php <?php
namespace apps\backend\app\Mail; namespace App\Mail;
use Illuminate\Bus\Queueable; use Illuminate\Bus\Queueable;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Mail\Mailable; use Illuminate\Mail\Mailable;
use Illuminate\Mail\Mailables\Content; use Illuminate\Mail\Mailables\Content;
use Illuminate\Mail\Mailables\Envelope; use Illuminate\Mail\Mailables\Envelope;
@@ -1,9 +1,8 @@
<?php <?php
namespace apps\backend\app\Mail; namespace App\Mail;
use Illuminate\Bus\Queueable; use Illuminate\Bus\Queueable;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Mail\Mailable; use Illuminate\Mail\Mailable;
use Illuminate\Mail\Mailables\Content; use Illuminate\Mail\Mailables\Content;
use Illuminate\Mail\Mailables\Envelope; use Illuminate\Mail\Mailables\Envelope;
+1 -2
View File
@@ -1,9 +1,8 @@
<?php <?php
namespace apps\backend\app\Mail; namespace App\Mail;
use Illuminate\Bus\Queueable; use Illuminate\Bus\Queueable;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Mail\Mailable; use Illuminate\Mail\Mailable;
use Illuminate\Mail\Mailables\Content; use Illuminate\Mail\Mailables\Content;
use Illuminate\Mail\Mailables\Envelope; use Illuminate\Mail\Mailables\Envelope;
@@ -1,10 +1,9 @@
<?php <?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\Bus\Queueable;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Mail\Mailable; use Illuminate\Mail\Mailable;
use Illuminate\Mail\Mailables\Content; use Illuminate\Mail\Mailables\Content;
use Illuminate\Mail\Mailables\Envelope; use Illuminate\Mail\Mailables\Envelope;
+1 -2
View File
@@ -1,9 +1,8 @@
<?php <?php
namespace apps\backend\app\Mail; namespace App\Mail;
use Illuminate\Bus\Queueable; use Illuminate\Bus\Queueable;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Mail\Mailable; use Illuminate\Mail\Mailable;
use Illuminate\Mail\Mailables\Content; use Illuminate\Mail\Mailables\Content;
use Illuminate\Mail\Mailables\Envelope; use Illuminate\Mail\Mailables\Envelope;
+1 -2
View File
@@ -1,9 +1,8 @@
<?php <?php
namespace apps\backend\app\Mail; namespace App\Mail;
use Illuminate\Bus\Queueable; use Illuminate\Bus\Queueable;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Mail\Mailable; use Illuminate\Mail\Mailable;
use Illuminate\Mail\Mailables\Content; use Illuminate\Mail\Mailables\Content;
use Illuminate\Mail\Mailables\Envelope; use Illuminate\Mail\Mailables\Envelope;
+1 -2
View File
@@ -1,9 +1,8 @@
<?php <?php
namespace apps\backend\app\Mail; namespace App\Mail;
use Illuminate\Bus\Queueable; use Illuminate\Bus\Queueable;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Mail\Mailable; use Illuminate\Mail\Mailable;
use Illuminate\Mail\Mailables\Content; use Illuminate\Mail\Mailables\Content;
use Illuminate\Mail\Mailables\Envelope; use Illuminate\Mail\Mailables\Envelope;
@@ -1,10 +1,9 @@
<?php <?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\Bus\Queueable;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Mail\Mailable; use Illuminate\Mail\Mailable;
use Illuminate\Mail\Mailables\Content; use Illuminate\Mail\Mailables\Content;
use Illuminate\Mail\Mailables\Envelope; use Illuminate\Mail\Mailables\Envelope;
@@ -1,10 +1,9 @@
<?php <?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\Bus\Queueable;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Mail\Mailable; use Illuminate\Mail\Mailable;
use Illuminate\Mail\Mailables\Content; use Illuminate\Mail\Mailables\Content;
use Illuminate\Mail\Mailables\Envelope; use Illuminate\Mail\Mailables\Envelope;
+1 -1
View File
@@ -1,6 +1,6 @@
<?php <?php
namespace apps\backend\app\Models; namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory; use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model; use Illuminate\Database\Eloquent\Model;
+1 -1
View File
@@ -1,6 +1,6 @@
<?php <?php
namespace apps\backend\app\Models; namespace App\Models;
use Illuminate\Database\Eloquent\Model; use Illuminate\Database\Eloquent\Model;
+3 -2
View File
@@ -1,15 +1,16 @@
<?php <?php
namespace apps\backend\app\Models; namespace App\Models;
// use Illuminate\Contracts\Auth\MustVerifyEmail; // use Illuminate\Contracts\Auth\MustVerifyEmail;
use Database\Factories\UserFactory;
use Illuminate\Database\Eloquent\Factories\HasFactory; use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Foundation\Auth\User as Authenticatable; use Illuminate\Foundation\Auth\User as Authenticatable;
use Illuminate\Notifications\Notifiable; use Illuminate\Notifications\Notifiable;
class User extends Authenticatable class User extends Authenticatable
{ {
/** @use HasFactory<\apps\backend\database\factories\UserFactory> */ /** @use HasFactory<UserFactory> */
use HasFactory, Notifiable; use HasFactory, Notifiable;
/** /**
@@ -1,13 +1,12 @@
<?php <?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\Bus\Queueable;
use Illuminate\Contracts\Broadcasting\ShouldBroadcast; use Illuminate\Contracts\Broadcasting\ShouldBroadcast;
use Illuminate\Notifications\Messages\BroadcastMessage; use Illuminate\Notifications\Messages\BroadcastMessage;
use Illuminate\Notifications\Notification; use Illuminate\Notifications\Notification;
use Illuminate\Support\Facades\Mail;
class EventDeleted extends Notification implements ShouldBroadcast class EventDeleted extends Notification implements ShouldBroadcast
{ {
@@ -1,14 +1,13 @@
<?php <?php
namespace apps\backend\app\Notifications; namespace App\Notifications;
use apps\backend\app\Models\Event; use App\Models\Event;
use apps\backend\app\Models\Task; use App\Models\Task;
use Illuminate\Bus\Queueable; use Illuminate\Bus\Queueable;
use Illuminate\Contracts\Broadcasting\ShouldBroadcast; use Illuminate\Contracts\Broadcasting\ShouldBroadcast;
use Illuminate\Notifications\Messages\BroadcastMessage; use Illuminate\Notifications\Messages\BroadcastMessage;
use Illuminate\Notifications\Notification; use Illuminate\Notifications\Notification;
use Illuminate\Support\Facades\Mail;
class TaskDateUpdated extends Notification implements ShouldBroadcast class TaskDateUpdated extends Notification implements ShouldBroadcast
{ {
@@ -1,14 +1,13 @@
<?php <?php
namespace apps\backend\app\Notifications; namespace App\Notifications;
use apps\backend\app\Models\Event; use App\Models\Event;
use apps\backend\app\Models\Task; use App\Models\Task;
use Illuminate\Bus\Queueable; use Illuminate\Bus\Queueable;
use Illuminate\Contracts\Broadcasting\ShouldBroadcast; use Illuminate\Contracts\Broadcasting\ShouldBroadcast;
use Illuminate\Notifications\Messages\BroadcastMessage; use Illuminate\Notifications\Messages\BroadcastMessage;
use Illuminate\Notifications\Notification; use Illuminate\Notifications\Notification;
use Illuminate\Support\Facades\Mail;
class TaskDeleted extends Notification implements ShouldBroadcast class TaskDeleted extends Notification implements ShouldBroadcast
{ {
@@ -1,14 +1,12 @@
<?php <?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\Bus\Queueable;
use Illuminate\Contracts\Broadcasting\ShouldBroadcast; use Illuminate\Contracts\Broadcasting\ShouldBroadcast;
use Illuminate\Notifications\Messages\BroadcastMessage; use Illuminate\Notifications\Messages\BroadcastMessage;
use Illuminate\Notifications\Messages\MailMessage;
use Illuminate\Notifications\Notification; use Illuminate\Notifications\Notification;
use Illuminate\Support\Facades\Mail;
class UserRegistered extends Notification implements ShouldBroadcast class UserRegistered extends Notification implements ShouldBroadcast
{ {
@@ -1,14 +1,13 @@
<?php <?php
namespace apps\backend\app\Notifications; namespace App\Notifications;
use apps\backend\app\Models\Event; use App\Models\Event;
use apps\backend\app\Models\Task; use App\Models\Task;
use Illuminate\Bus\Queueable; use Illuminate\Bus\Queueable;
use Illuminate\Contracts\Broadcasting\ShouldBroadcast; use Illuminate\Contracts\Broadcasting\ShouldBroadcast;
use Illuminate\Notifications\Messages\BroadcastMessage; use Illuminate\Notifications\Messages\BroadcastMessage;
use Illuminate\Notifications\Notification; use Illuminate\Notifications\Notification;
use Illuminate\Support\Facades\Mail;
class VolunteerAssignedToTask extends Notification implements ShouldBroadcast class VolunteerAssignedToTask extends Notification implements ShouldBroadcast
{ {
@@ -1,12 +1,11 @@
<?php <?php
namespace apps\backend\app\Notifications; namespace App\Notifications;
use Illuminate\Bus\Queueable; use Illuminate\Bus\Queueable;
use Illuminate\Contracts\Broadcasting\ShouldBroadcast; use Illuminate\Contracts\Broadcasting\ShouldBroadcast;
use Illuminate\Notifications\Messages\BroadcastMessage; use Illuminate\Notifications\Messages\BroadcastMessage;
use Illuminate\Notifications\Notification; use Illuminate\Notifications\Notification;
use Illuminate\Support\Facades\Mail;
class VolunteerRoleUpdated extends Notification implements ShouldBroadcast class VolunteerRoleUpdated extends Notification implements ShouldBroadcast
{ {
@@ -1,14 +1,13 @@
<?php <?php
namespace apps\backend\app\Notifications; namespace App\Notifications;
use apps\backend\app\Models\Event; use App\Models\Event;
use apps\backend\app\Models\Task; use App\Models\Task;
use Illuminate\Bus\Queueable; use Illuminate\Bus\Queueable;
use Illuminate\Contracts\Broadcasting\ShouldBroadcast; use Illuminate\Contracts\Broadcasting\ShouldBroadcast;
use Illuminate\Notifications\Messages\BroadcastMessage; use Illuminate\Notifications\Messages\BroadcastMessage;
use Illuminate\Notifications\Notification; use Illuminate\Notifications\Notification;
use Illuminate\Support\Facades\Mail;
class VolunteerUnassignedFromTask extends Notification implements ShouldBroadcast class VolunteerUnassignedFromTask extends Notification implements ShouldBroadcast
{ {
+3 -4
View File
@@ -1,10 +1,9 @@
<?php <?php
namespace apps\backend\app\Observers; namespace App\Observers;
use apps\backend\app\Models\Event; use App\Models\Event;
use apps\backend\app\Services\TypesenseService; use App\Services\TypesenseService;
use function App\Observers\app;
class EventObserver class EventObserver
{ {
+3 -4
View File
@@ -1,10 +1,9 @@
<?php <?php
namespace apps\backend\app\Observers; namespace App\Observers;
use apps\backend\app\Models\User; use App\Models\User;
use apps\backend\app\Services\TypesenseService; use App\Services\TypesenseService;
use function App\Observers\app;
class UserObserver class UserObserver
{ {
+2 -3
View File
@@ -1,9 +1,8 @@
<?php <?php
namespace apps\backend\app\Policies; namespace App\Policies;
use apps\backend\app\Models\User; use App\Models\User;
use Illuminate\Auth\Access\Response;
class EventsPolicy class EventsPolicy
{ {
+2 -3
View File
@@ -1,9 +1,8 @@
<?php <?php
namespace apps\backend\app\Policies; namespace App\Policies;
use apps\backend\app\Models\User; use App\Models\User;
use Illuminate\Auth\Access\Response;
class TasksPolicy class TasksPolicy
{ {
+2 -3
View File
@@ -1,9 +1,8 @@
<?php <?php
namespace apps\backend\app\Policies; namespace App\Policies;
use apps\backend\app\Models\User; use App\Models\User;
use Illuminate\Auth\Access\Response;
class UsersPolicy class UsersPolicy
{ {
@@ -1,14 +1,13 @@
<?php <?php
namespace apps\backend\app\Providers; namespace App\Providers;
use apps\backend\app\Models\Event; use App\Models\Event;
use apps\backend\app\Models\User; use App\Models\User;
use apps\backend\app\Observers\EventObserver; use App\Observers\EventObserver;
use apps\backend\app\Observers\UserObserver; use App\Observers\UserObserver;
use Illuminate\Support\Facades\Route; use Illuminate\Support\Facades\Route;
use Illuminate\Support\ServiceProvider; use Illuminate\Support\ServiceProvider;
use function App\Providers\base_path;
class AppServiceProvider extends ServiceProvider class AppServiceProvider extends ServiceProvider
{ {
@@ -23,13 +22,17 @@ class AppServiceProvider extends ServiceProvider
/** /**
* Bootstrap any application services. * Bootstrap any application services.
*/ */
public function boot(): void public function boot(): void {
{ Route::middleware('web')->prefix('api')
Route::middleware('web')->prefix('api')->group(base_path('routes/users.php')); ->group($this->app->basePath('routes/users.php'));
Route::middleware('web')->prefix('api')->group(base_path('routes/auth.php')); Route::middleware('web')->prefix('api')
Route::middleware('web')->prefix('api')->group(base_path('routes/events.php')); ->group($this->app->basePath('routes/auth.php'));
Route::middleware('web')->prefix('api')->group(base_path('routes/notifications.php')); Route::middleware('web')->prefix('api')
Route::middleware('web')->prefix('api')->group(base_path('routes/channels.php')); ->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); User::observe(UserObserver::class);
Event::observe(EventObserver::class); Event::observe(EventObserver::class);
} }
@@ -1,10 +1,9 @@
<?php <?php
namespace apps\backend\app\Providers; namespace App\Providers;
use Illuminate\Support\Facades\Broadcast; use Illuminate\Support\Facades\Broadcast;
use Illuminate\Support\ServiceProvider; use Illuminate\Support\ServiceProvider;
use function App\Providers\base_path;
class BroadcastServiceProvider extends ServiceProvider class BroadcastServiceProvider extends ServiceProvider
{ {
@@ -1,13 +1,13 @@
<?php <?php
namespace apps\backend\app\Providers; namespace App\Providers;
use apps\backend\app\Models\Event; use App\Models\Event;
use apps\backend\app\Models\Task; use App\Models\Task;
use apps\backend\app\Models\User; use App\Models\User;
use apps\backend\app\Policies\EventsPolicy; use App\Policies\EventsPolicy;
use apps\backend\app\Policies\TasksPolicy; use App\Policies\TasksPolicy;
use apps\backend\app\Policies\UsersPolicy; use App\Policies\UsersPolicy;
use Illuminate\Support\Facades\Gate; use Illuminate\Support\Facades\Gate;
use Illuminate\Support\ServiceProvider; use Illuminate\Support\ServiceProvider;
+1 -1
View File
@@ -1,6 +1,6 @@
<?php <?php
namespace apps\backend\app\Services; namespace App\Services;
use Carbon\Carbon; use Carbon\Carbon;
+1 -1
View File
@@ -1,6 +1,6 @@
<?php <?php
namespace apps\backend\app\Services; namespace App\Services;
class GetRole class GetRole
{ {
@@ -1,13 +1,10 @@
<?php <?php
namespace apps\backend\app\Services; namespace App\Services;
use apps\backend\app\Models\Event; use App\Models\Event;
use apps\backend\app\Models\User; use App\Models\User;
use Illuminate\Support\Facades\Cache;
use Typesense\Client; use Typesense\Client;
use function App\Services\config;
use function App\Services\report;
class TypesenseService class TypesenseService
{ {
@@ -27,7 +24,6 @@ class TypesenseService
]); ]);
} }
private function ensureCollectionsExist(): void private function ensureCollectionsExist(): void
{ {
static $checked = false; static $checked = false;
@@ -97,7 +93,6 @@ class TypesenseService
} }
} }
public function upsertUser(User $user): void public function upsertUser(User $user): void
{ {
$this->ensureCollectionsExist(); $this->ensureCollectionsExist();
+2 -3
View File
@@ -1,8 +1,7 @@
<?php <?php
namespace apps\backend\app\Services; namespace App\Services;
use apps\backend\app\Models\User; use App\Models\User;
use Illuminate\Support\Facades\Log;
class UserService class UserService
{ {
+3 -3
View File
@@ -1,7 +1,7 @@
<?php <?php
return [ return [
\apps\backend\app\Providers\AppServiceProvider::class, app\Providers\AppServiceProvider::class,
\apps\backend\app\Providers\BroadcastServiceProvider::class, app\Providers\BroadcastServiceProvider::class,
\apps\backend\app\Providers\GateServiceProvider::class, app\Providers\GateServiceProvider::class,
]; ];
+1 -1
View File
@@ -62,7 +62,7 @@ return [
'providers' => [ 'providers' => [
'users' => [ 'users' => [
'driver' => 'eloquent', 'driver' => 'eloquent',
'model' => env('AUTH_MODEL', \apps\backend\app\Models\User::class), 'model' => env('AUTH_MODEL', App\Models\User::class),
], ],
// 'users' => [ // 'users' => [
@@ -1,11 +1,12 @@
<?php <?php
namespace apps\backend\database\factories; namespace Database\Factories;
use App\Models\Event;
use Illuminate\Database\Eloquent\Factories\Factory; 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 class EventFactory extends Factory
{ {
@@ -1,14 +1,14 @@
<?php <?php
namespace apps\backend\database\factories; namespace Database\Factories;
use App\Models\User;
use Illuminate\Database\Eloquent\Factories\Factory; use Illuminate\Database\Eloquent\Factories\Factory;
use Illuminate\Support\Facades\Hash; use Illuminate\Support\Facades\Hash;
use Illuminate\Support\Str; 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 class UserFactory extends Factory
{ {
@@ -1,6 +1,6 @@
<?php <?php
namespace apps\backend\database\migrations; namespace Database\Migrations;
use Illuminate\Database\Migrations\Migration; use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint; use Illuminate\Database\Schema\Blueprint;
@@ -1,15 +1,12 @@
<?php <?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 Illuminate\Database\Seeder;
use function Database\Seeders\config;
class DatabaseSeeder extends Seeder class DatabaseSeeder extends Seeder
{ {
public function run() public function run(): void
{ {
if (config('app.dev') == 1) { if (config('app.dev') == 1) {
$this->call(DevSeeder::class); $this->call(DevSeeder::class);
@@ -18,4 +15,3 @@ class DatabaseSeeder extends Seeder
} }
} }
} }
+4 -12
View File
@@ -1,21 +1,14 @@
<?php <?php
namespace apps\backend\database\seeders; namespace Database\Seeders;
use apps\backend\app\Models\Event; use App\Models\Event;
use apps\backend\app\Models\User; use App\Models\User;
use apps\backend\app\Services\TypesenseService; use App\Services\TypesenseService;
use Illuminate\Database\Console\Seeds\WithoutModelEvents;
use Illuminate\Database\Seeder; use Illuminate\Database\Seeder;
use function Database\Seeders\app;
use function Database\Seeders\bcrypt;
use function Database\Seeders\config;
class DevSeeder extends Seeder class DevSeeder extends Seeder
{ {
/**
* Run the database seeds.
*/
public function run(): void public function run(): void
{ {
$typesense = app(TypesenseService::class); $typesense = app(TypesenseService::class);
@@ -41,4 +34,3 @@ class DevSeeder extends Seeder
Event::factory()->count(10)->create(); Event::factory()->count(10)->create();
} }
} }
+3 -10
View File
@@ -1,19 +1,13 @@
<?php <?php
namespace apps\backend\database\seeders; namespace Database\Seeders;
use apps\backend\app\Models\User; use App\Models\User;
use apps\backend\app\Services\TypesenseService; use App\Services\TypesenseService;
use Illuminate\Database\Seeder; use Illuminate\Database\Seeder;
use function Database\Seeders\app;
use function Database\Seeders\bcrypt;
use function Database\Seeders\config;
class ProdSeeder extends Seeder class ProdSeeder extends Seeder
{ {
/**
* Run the database seeds.
*/
public function run(): void public function run(): void
{ {
$typesense = app(TypesenseService::class); $typesense = app(TypesenseService::class);
@@ -35,4 +29,3 @@ class ProdSeeder extends Seeder
$typesense->upsertUser($admin); $typesense->upsertUser($admin);
} }
} }
+7 -6
View File
@@ -1,14 +1,13 @@
<?php <?php
use App\Http\Controllers\ProfilePhotoController; use App\Http\Controllers\ExportController;
use apps\backend\app\Http\Controllers\ExportController;
use Illuminate\Http\Request; use Illuminate\Http\Request;
use Illuminate\Support\Facades\Route; use Illuminate\Support\Facades\Route;
Route::middleware('auth:sanctum')->group(function () { Route::middleware('auth:sanctum')->group(function () {
Route::post('/profile-photo', [\apps\backend\app\Http\Controllers\UserController::class, 'updatePhoto']); Route::post('/profile-photo', [app\Http\Controllers\UserController::class, 'updatePhoto']);
Route::delete('/profile-photo', [\apps\backend\app\Http\Controllers\UserController::class, 'destroy']); Route::delete('/profile-photo', [app\Http\Controllers\UserController::class, 'destroy']);
Route::get('/profile-photo', [\apps\backend\app\Http\Controllers\UserController::class, 'show']); 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) { 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 <?php
use apps\backend\app\Http\Controllers\AuthController; use App\Http\Controllers\AuthController;
use apps\backend\app\Http\Controllers\UserController; use App\Http\Controllers\UserController;
use Illuminate\Support\Facades\Route; use Illuminate\Support\Facades\Route;
Route::post("/users/register", [UserController::class, "create"]); 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('auth:sanctum')->group(function () {
Route::post('/users/logout', [AuthController::class, 'logout']);
Route::middleware(['web', 'auth:sanctum'])->post('/users/create', [UserController::class, 'createUserByAdmin']); Route::post('/users/create', [UserController::class, 'createUserByAdmin']);
});
+3 -3
View File
@@ -1,8 +1,8 @@
<?php <?php
use apps\backend\app\Http\Controllers\EventsController; use App\Http\Controllers\EventsController;
use apps\backend\app\Http\Controllers\SearchController; use App\Http\Controllers\SearchController;
use apps\backend\app\Http\Controllers\TasksController; use App\Http\Controllers\TasksController;
use Illuminate\Support\Facades\Route; use Illuminate\Support\Facades\Route;
Route::middleware(['web', 'auth:sanctum'])->post('/events/create', [EventsController::class, "create"]); Route::middleware(['web', 'auth:sanctum'])->post('/events/create', [EventsController::class, "create"]);
+1 -1
View File
@@ -1,6 +1,6 @@
<?php <?php
use apps\backend\app\Http\Controllers\NotificationsController; use App\Http\Controllers\NotificationsController;
use Illuminate\Support\Facades\Route; use Illuminate\Support\Facades\Route;
Route::middleware(['web', 'auth:sanctum'])->get('/users/notifications', [NotificationsController::class, "getNotifications"]); Route::middleware(['web', 'auth:sanctum'])->get('/users/notifications', [NotificationsController::class, "getNotifications"]);
+2 -2
View File
@@ -1,7 +1,7 @@
<?php <?php
use apps\backend\app\Http\Controllers\SearchController; use App\Http\Controllers\SearchController;
use apps\backend\app\Http\Controllers\UserController; use App\Http\Controllers\UserController;
use Illuminate\Support\Facades\Route; use Illuminate\Support\Facades\Route;
+2 -2
View File
@@ -3,5 +3,5 @@
use Illuminate\Support\Facades\Route; use Illuminate\Support\Facades\Route;
Route::get('/{any}', function () { Route::get('/{any}', function () {
return file_get_contents(public_path('index.html')); return view('app');
})->where('any', '.*'); })->where('any', '^(?!api).*$');
@@ -1,6 +1,6 @@
import styles from "./Event.module.css"; import styles from "./Event.module.css";
import { useNavigate } from "react-router"; import { useNavigate } from "react-router";
import Button from "/apps/frontend/src/components/ui/Button/Button" import Button from "../../../../components/ui/Button/Button"
function Event({event}){ function Event({event}){
@@ -34,4 +34,4 @@ function Event({event}){
) )
} }
export default Event; export default Event;
-2
View File
@@ -80,8 +80,6 @@ services:
depends_on: depends_on:
php: php:
condition: service_healthy condition: service_healthy
frontend:
condition: service_completed_successfully
restart: unless-stopped restart: unless-stopped
typesense: typesense:
+1 -3
View File
@@ -5,10 +5,8 @@ WORKDIR /var/www/app/apps/frontend
RUN apk add --no-cache git bash RUN apk add --no-cache git bash
COPY entrypoint.sh /usr/local/bin/entrypoint.sh 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 \ RUN chmod +x /usr/local/bin/entrypoint.sh
/usr/local/bin/wait-for-it.sh
ENTRYPOINT ["/usr/local/bin/entrypoint.sh"] ENTRYPOINT ["/usr/local/bin/entrypoint.sh"]
CMD ["build"] 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