# Vérification du serveur Laravel

## Problème : "Connection refused" sur le port 1500

Si vous obtenez toujours l'erreur "Connection refused", suivez ces étapes :

### 1. Vérifier que le serveur est en cours d'exécution

```powershell
netstat -an | findstr ":1500"
```

Vous devriez voir :
```
TCP    127.0.0.1:1500         0.0.0.0:0              LISTENING
```

### 2. Démarrer le serveur

**Option A : Utiliser le script PowerShell**

```powershell
.\start-server.ps1
```

**Option B : Commande manuelle**

```powershell
php artisan serve --host=127.0.0.1 --port=1500
```

**Option C : En arrière-plan (nouvelle fenêtre)**

```powershell
Start-Process powershell -ArgumentList "-NoExit", "-Command", "cd '$PWD'; php artisan serve --host=127.0.0.1 --port=1500"
```

### 3. Vérifier que l'API répond

Testez avec PowerShell :

```powershell
$body = @{
    full_name = "Test User"
    email = "test@example.com"
    phone = ""
    password = "password@2026"
    company_id = $null
} | ConvertTo-Json

$headers = @{
    "Content-Type" = "application/json"
    "X-API-Key" = "gCw4Xnm4euKRoyUCB5aN81AsFlTCEAhMAoZumr6R"
}

try {
    $response = Invoke-RestMethod -Uri "http://127.0.0.1:1500/api/external/users" -Method POST -Headers $headers -Body $body
    Write-Host "Success: $($response | ConvertTo-Json)" -ForegroundColor Green
} catch {
    Write-Host "Error: $($_.Exception.Message)" -ForegroundColor Red
    Write-Host "Status: $($_.Exception.Response.StatusCode.value__)" -ForegroundColor Red
}
```

### 4. Vérifier les logs Laravel

```powershell
Get-Content storage/logs/laravel.log -Tail 50
```

### 5. Problèmes courants

#### Le serveur ne démarre pas

- Vérifiez que PHP est installé : `php -v`
- Vérifiez que vous êtes dans le bon répertoire
- Vérifiez que le port 1500 n'est pas utilisé par un autre processus

#### Le serveur démarre mais l'API ne répond pas

- Vérifiez que les routes API sont bien chargées dans `bootstrap/app.php`
- Vérifiez que le middleware `api.key` est enregistré
- Vérifiez que la variable `DASHBOARD_API_KEY` est définie dans `.env`

#### Erreur 400 "Données invalides"

- Vérifiez que tous les champs requis sont présents (`full_name`, `email`, `password`)
- Vérifiez que l'email est valide
- Vérifiez que le `company_id` existe dans la table `companies` (ou laissez-le null)

#### Erreur 401 "Unauthorized"

- Vérifiez que le header `X-API-Key` est présent
- Vérifiez que la clé correspond à `DASHBOARD_API_KEY` dans `.env`

### 6. Démarrer le serveur automatiquement au démarrage

Créez un fichier `start-server.bat` :

```batch
@echo off
cd /d "%~dp0"
start "Laravel Server" cmd /k "php artisan serve --host=127.0.0.1 --port=1500"
```

Double-cliquez sur ce fichier pour démarrer le serveur.

### 7. Vérifier depuis l'application externe

Assurez-vous que l'application qui fait l'appel :

1. Utilise la bonne URL : `http://127.0.0.1:1500/api/external/users`
2. Envoie le header `X-API-Key` avec la bonne clé
3. Envoie les données au format JSON
4. Attend que le serveur soit démarré avant de faire l'appel

### 8. Solution temporaire : Désactiver la validation company_id

Si `company_id` n'est pas critique, vous pouvez le laisser null dans votre payload :

```json
{
  "full_name": "Lee Albert",
  "email": "hotevys@mailinator.com",
  "phone": "",
  "password": "password@2026",
  "company_id": null
}
```



