Compare commits
17
Commits
58b471607c
...
main
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
7299a177a2 | ||
|
|
67f2b516e8 | ||
|
|
64d065caad | ||
|
|
ef0596b729 | ||
|
|
b8420f08cd | ||
|
|
e7baf34c4f | ||
|
|
7b4512bf27 | ||
|
|
eb3e00c9ce | ||
|
|
8e481dfae6 | ||
|
|
23e61c6349 | ||
|
|
74c5d2d5ce | ||
|
|
62e2420105 | ||
|
|
c4ad3e0cdf | ||
|
|
3d06596fea | ||
|
|
30987fb582 | ||
|
|
75bf1b966b | ||
|
|
99f483b89c |
No files matched your search
@@ -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
|
||||
|
||||
|
||||
@@ -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,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,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,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,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,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,6 +1,6 @@
|
||||
<?php
|
||||
|
||||
namespace apps\backend\app\Models;
|
||||
namespace App\Models;
|
||||
|
||||
use Illuminate\Database\Eloquent\Factories\HasFactory;
|
||||
use Illuminate\Database\Eloquent\Model;
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<?php
|
||||
|
||||
namespace apps\backend\app\Models;
|
||||
namespace App\Models;
|
||||
|
||||
use Illuminate\Database\Eloquent\Model;
|
||||
|
||||
|
||||
@@ -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
|
||||
{
|
||||
|
||||
@@ -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
|
||||
{
|
||||
|
||||
@@ -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
|
||||
{
|
||||
|
||||
@@ -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
|
||||
{
|
||||
|
||||
@@ -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
|
||||
{
|
||||
|
||||
@@ -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,6 +1,6 @@
|
||||
<?php
|
||||
|
||||
namespace apps\backend\app\Services;
|
||||
namespace App\Services;
|
||||
|
||||
use Carbon\Carbon;
|
||||
|
||||
|
||||
@@ -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();
|
||||
|
||||
@@ -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
|
||||
{
|
||||
|
||||
@@ -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,
|
||||
];
|
||||
@@ -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
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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';
|
||||
@@ -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']);
|
||||
});
|
||||
@@ -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,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"]);
|
||||
|
||||
@@ -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;
|
||||
|
||||
|
||||
|
||||
@@ -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 "/apps/frontend/src/components/ui/Button/Button"
|
||||
import Button from "../../../../components/ui/Button/Button"
|
||||
|
||||
function Event({event}){
|
||||
|
||||
@@ -34,4 +34,4 @@ function Event({event}){
|
||||
)
|
||||
}
|
||||
|
||||
export default Event;
|
||||
export default Event;
|
||||
@@ -80,8 +80,6 @@ services:
|
||||
depends_on:
|
||||
php:
|
||||
condition: service_healthy
|
||||
frontend:
|
||||
condition: service_completed_successfully
|
||||
restart: unless-stopped
|
||||
|
||||
typesense:
|
||||
|
||||
@@ -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"]
|
||||
@@ -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
|
||||
Reference in new issue
Block a user