@extends('layouts.admin') @section('title', 'Message #' . $message->id) @section('header', 'Message #' . $message->id) @section('content')
Retour à la liste

Informations

ID
{{ $message->id }}
Domaine
{{ $message->domain->name ?? 'N/A' }}
Statut
{{ ucfirst($message->status) }}
Queue
{{ $message->queue_name ?? 'default' }}
Tentatives
{{ $message->attempts }} / {{ $message->max_attempts }}
Temps de traitement
{{ $message->processing_time_ms ? round($message->processing_time_ms / 1000, 2) . 's' : 'N/A' }}
Date de création
{{ $message->created_at->format('d/m/Y H:i:s') }}
Démarré le
{{ $message->started_at?->format('d/m/Y H:i:s') ?? 'N/A' }}
Terminé le
{{ $message->completed_at?->format('d/m/Y H:i:s') ?? $message->failed_at?->format('d/m/Y H:i:s') ?? 'N/A' }}
@if($message->message_id)
Message ID
{{ $message->message_id }}
@endif

Piste d'Audit

  • Message créé

    ID: {{ $message->id }} | Domain: {{ $message->domain->name }}

    {{ $message->created_at->format('H:i:s') }}
  • @foreach($message->processingLogs as $log)
  • ProcessingLog créé

    Source: {{ $log->source_type }} | File: {{ $log->source_identifier }} Voir détails

    {{ $log->created_at->format('H:i:s') }}
  • @endforeach @if($message->started_at)
  • Traitement démarré

    Queue: {{ $message->queue_name ?? 'default' }} | Attempt: {{ $message->attempts }}

    {{ $message->started_at->format('H:i:s') }}
  • @endif @if($message->domain->webhook_url && $message->started_at)
  • Webhook appelé

    URL: {{ $message->domain->webhook_url }}

    {{ $message->started_at->copy()->addSeconds(1)->format('H:i:s') }}
  • @endif @if($message->status === 'completed')
  • ✅ Traitement réussi

    Durée: {{ round($message->processing_time_ms / 1000, 2) }}s

    {{ $message->completed_at->format('H:i:s') }}
  • @elseif($message->status === 'failed')
  • ❌ Échec du traitement

    Durée: {{ $message->processing_time_ms ? round($message->processing_time_ms / 1000, 2) . 's' : 'N/A' }}

    {{ $message->failed_at?->format('H:i:s') ?? 'N/A' }}
  • @endif @foreach($message->processingLogs->where('status', 'failed') as $log)
  • ProcessingLog mis à jour

    Status: failed | Error: {{ $log->error_code }}

    {{ $log->processed_at?->format('H:i:s') ?? 'N/A' }}
  • @endforeach
@if($message->payload)

Payload

{{ json_encode($message->payload, JSON_PRETTY_PRINT | JSON_UNESCAPED_UNICODE) }}
@endif @if($message->processingLogs->isNotEmpty())

Processing Logs Associés

@foreach($message->processingLogs as $log)

Log #{{ $log->id }} - {{ $log->source_type }} {{ ucfirst($log->status) }}

Fichier: {{ $log->source_identifier }}
Type: {{ $log->data_type }}
Cible: {{ $log->target_system }} → {{ $log->target_endpoint }}
@if($log->status === 'failed')
Erreur: {{ $log->error_message }}
Code: {{ $log->error_code }} | Type: {{ $log->error_type }}
@endif
@endforeach
@endif @if($message->status === 'failed' && $message->error_message)

Erreur Détaillée

@php $errorCode = null; $errorType = 'unknown'; if (preg_match('/returned error: (\d{3})/', $message->error_message, $matches)) { $errorCode = 'HTTP ' . $matches[1]; $errorType = in_array($matches[1], ['401', '403', '404', '422']) ? 'permanent' : 'temporary'; } @endphp @if($errorCode)
Code d'erreur
{{ $errorCode }}
Type d'erreur
{{ ucfirst($errorType) }}
@endif
Message d'erreur
Télécharger
@php $errorLines = explode("\n", $message->error_message); $previewLines = array_slice($errorLines, 0, 10); $hasMore = count($errorLines) > 10; @endphp
{{ implode("\n", $previewLines) }}@if($hasMore)

... ({{ count($errorLines) - 10 }} lignes supplémentaires - cliquez sur "Voir tout")@endif
@if($errorCode === 'HTTP 401')

💡 Recommandations

  • Vérifier la clé API du domaine "{{ $message->domain->name }}"
  • Vérifier la configuration webhook dans Estair
  • S'assurer que le header X-API-Key est bien envoyé
  • Après correction, utiliser le bouton "Rejouer" ci-dessous
@elseif($errorCode === 'HTTP 422')

💡 Recommandations

  • Erreur de validation des données
  • Vérifier que le payload contient tous les champs requis
  • Vérifier le format des données (types, longueurs)
  • Consulter la documentation de l'API Estair
@endif
@endif @if($message->response)

Réponse

{{ json_encode($message->response, JSON_PRETTY_PRINT | JSON_UNESCAPED_UNICODE) }}
@endif

Actions

@if($message->canReplay())
@csrf
@endif Télécharger Payload @if(in_array($message->status, ['failed', 'cancelled']))
@csrf @method('DELETE')
@endif
@endsection