/
marklis
/
transport
Обзор
Документация
Войти
/
marklis
/
transport
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
app/Http/Controllers/MessageController.php
71 строка
2 KB
Мамонов Алексей Анатольевич
Пагинация и другое
04 мар 2025, 16:27
04 мар 2025, 16:27
59a0854
Код
Авторство
О чём код?
<?php namespace App\Http\Controllers; use App\Contracts\Services\MessageServiceContract as Service; use Illuminate\Support\Facades\{Auth, Storage}; use Illuminate\Http\{RedirectResponse, Request}; use Inertia\{Inertia, Response as InertiaResponse}; class MessageController extends BaseController { protected Service $service; public function __construct(Service $service) { $this->service = $service; } public function index(Request $request): InertiaResponse { $messages = $this->service->paginateWithTrashedAndDates( [], ['device_id' => Auth::user()->device->id], 50, 'created_at', 'desc' ); return Inertia::render('Messages/Index', [ 'token' => csrf_token(), 'status' => $request->input('status'), 'deleteUnsentStatus' => $request->input('deleteUnsentStatus'), 'messages' => $messages->items(), 'currentPage' => $messages->currentPage(), 'lastPage' => $messages->lastPage(), 'rights' => $this->getRights(), 'routes' => [ 'current' => route('messages.index'), 'excelSending' => route('messages.sending'), 'deleteUnsent' => route('messages.deleteUnsent') ] ]); } public function showByPhoneNumber(string $phoneNumber): InertiaResponse { return Inertia::render('Messages/Show', [ 'messages' => $this->service->getWithTrashedAndDates( [], ['phone_number' => $phoneNumber], 'created_at', 'desc' ), ]); } public function sending(Request $request): RedirectResponse { $file = $request->file('excel')->store('excels'); $status = $this->service->creating($file); Storage::delete($file); return redirect()->route('messages.index', ['status' => $status]); } public function deleteUnsent(): RedirectResponse { $status = $this->service->deleteUnsent(); return redirect()->route('messages.index', ['deleteUnsentStatus' => $status]); } }