/
marklis
/
transport
Обзор
Документация
Войти
/
marklis
/
transport
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
app/Http/Controllers/Api/MessageController.php
141 строка
5 KB
Мамонов Алексей Анатольевич
Пагинация и другое
04 мар 2025, 16:27
04 мар 2025, 16:27
59a0854
Код
Авторство
О чём код?
<?php namespace App\Http\Controllers\Api; use App\Http\Controllers\Controller; use App\Contracts\Services\{MessageServiceContract as Service, DeviceServiceContract}; use Illuminate\Http\Request; use Illuminate\Support\Facades\Hash; use Illuminate\Support\Facades\Log; class MessageController extends Controller { protected Service $service; protected DeviceServiceContract $deviceService; public function __construct(Service $service, DeviceServiceContract $deviceService) { $this->service = $service; $this->deviceService = $deviceService; } public function get(Request $request) { if (! $request->input('user_id')) { return response('Требуется user_id', 400); } if (! $request->input('password')) { return response('Требуется password', 400); } $userId = $request->input('user_id'); $device = $this->deviceService->find(['password'], ['id' => $request->input('user_id')]); if (! Hash::check($request->input('password'), $device->password)) { return response('Неверный пароль', 400); } $messages = $this->service->get(['id', 'phone_number', 'message_text', 'status'], ['device_id' => $userId]); foreach ($messages as $message) { $message->phone_number = intval(preg_replace("/[^0-9]/", '', $message->phone_number), 10); } $chunk = $messages->chunk(50); Log::channel('sending')->info('Get for ' . $userId); return response()->json($chunk[0] ?? []) ->header('Content-Type', 'application/json'); } public function create(Request $request) { if (! $request->input('user_id')) { return response('Требуется user_id', 400); } if (! $request->input('password')) { return response('Требуется password', 400); } if (! $request->input('phone_number')) { return response('Требуется phone_number', 400); } if (! $request->input('message_text')) { return response('Требуется message_text', 400); } $userId = $request->input('user_id'); $device = $this->deviceService->find(['password'], ['id' => $request->input('user_id')]); if (! Hash::check($request->input('password'), $device->password)) { return response('Неверный пароль', 400); } try { $this->service->create(collect(['phone_number' => $request->input('phone_number'), 'message_text' => $request->input('message_text'), 'device_id' => $userId])); return response('Должен добавиться', 200); } catch (\Exception $e) { return response('Ошибка', 400); } } public function setStatus(Request $request) { if (! $request->input('user_id')) { return response('Требуется user_id', 400); } if (! $request->input('password')) { return response('Требуется password', 400); } if (! $request->input('ids')) { return response('Требуется ids', 400); } $device = $this->deviceService->find(['password'], ['id' => $request->input('user_id')]); if (! Hash::check($request->input('password'), $device->password)) { return response('Неверный пароль', 400); } try { $this->service->setManyStatuses($request->input('ids'), $request->input('user_id')); return response('ОК', 200); } catch (\Exception $e) { return response('Ошибка', 400); } } public function delete(Request $request) { if (! $request->input('user_id')) { return response('Требуется user_id', 400); } if (! $request->input('password')) { return response('Требуется password', 400); } if (! $request->input('ids')) { return response('Требуется ids', 400); } $device = $this->deviceService->find(['password'], ['id' => $request->input('user_id')]); if (! Hash::check($request->input('password'), $device->password)) { return response('Неверный пароль', 400); } try { foreach (explode(',', $request->input('ids')) as $item) { $this->service->delete($item); } return response('Должны удалиться', 200); } catch (\Exception $e) { return response('Ошибка', 400); } } }