update
This commit is contained in:
@@ -15,7 +15,7 @@ final class EmailLogController extends Controller
|
||||
{
|
||||
$limit = min((int) $request->get('limit', $request->get('per_page', 20)), 200);
|
||||
|
||||
$query = Mail::query()->orderByDesc('created_at');
|
||||
$query = Mail::query()->with(['customer', 'template'])->orderByDesc('created_at');
|
||||
|
||||
// sort=field_asc|field_desc
|
||||
if ($sort = $request->get('sort')) {
|
||||
@@ -30,7 +30,7 @@ final class EmailLogController extends Controller
|
||||
}
|
||||
|
||||
if ($status = $request->get('status')) {
|
||||
$query->where('status', $status);
|
||||
$query->where('status', array_search($status, Mail::STATUS_MAP, true) ?: $status);
|
||||
}
|
||||
if ($customerId = $request->get('customer_id')) {
|
||||
$query->where('customer_id', (int) $customerId);
|
||||
@@ -47,7 +47,7 @@ final class EmailLogController extends Controller
|
||||
return response()->json([
|
||||
'error' => false,
|
||||
'data' => [
|
||||
'items' => $paginator->items(),
|
||||
'items' => $paginator->getCollection()->map($this->mapLog(...))->all(),
|
||||
'total' => $paginator->total(),
|
||||
'per_page' => $paginator->perPage(),
|
||||
'current_page' => $paginator->currentPage(),
|
||||
@@ -58,12 +58,28 @@ final class EmailLogController extends Controller
|
||||
|
||||
public function show(int $id): JsonResponse
|
||||
{
|
||||
$log = Mail::find($id);
|
||||
$log = Mail::with(['customer', 'template'])->find($id);
|
||||
|
||||
if (!$log) {
|
||||
return response()->json(['error' => true, 'message' => 'Không tìm thấy email log'], 404);
|
||||
}
|
||||
|
||||
return response()->json(['error' => false, 'data' => $log]);
|
||||
return response()->json(['error' => false, 'data' => $this->mapLog($log)]);
|
||||
}
|
||||
|
||||
private function mapLog(Mail $log): array
|
||||
{
|
||||
return [
|
||||
'id' => $log->id,
|
||||
'to_email' => $log->to,
|
||||
'to_name' => $log->customer->fullname ?? null,
|
||||
'customer_id' => $log->customer_id,
|
||||
'subject' => $log->subject,
|
||||
'template' => $log->template->name ?? '—',
|
||||
'status' => $log->status,
|
||||
'error_message' => null,
|
||||
'sent_at' => $log->status === 'sent' ? $log->created_at : null,
|
||||
'created_at' => $log->created_at,
|
||||
];
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user