/
marklis
/
transport
Обзор
Документация
Войти
/
marklis
/
transport
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
app/Http/Controllers/Api/DeviceController.php
100 строк
3 KB
Мамонов Алексей Анатольевич
Сервисный слой
01 апр 2024, 15:20
01 апр 2024, 15:20
a2b3c61
Код
Авторство
О чём код?
<?php namespace App\Http\Controllers\Api; use App\Http\Controllers\Controller; use App\Contracts\Services\DeviceServiceContract as Service; use Illuminate\Http\Request; use Illuminate\Support\Facades\Hash; class DeviceController extends Controller { protected Service $service; public function __construct(Service $service) { $this->service = $service; } public function firmwareselfupdate(Request $request) { if (! $request->input('user_id')) { return response('Требуется user_id', 400); } if (! $request->input('password')) { return response('Требуется password', 400); } if (! $request->input('firmwareversion')) { return response('Требуется firmwareversion', 400); } $device = $this->service->find(['password'], ['id' => $request->input('user_id')]); if (! Hash::check($request->input('password'), $device->password)) { return response('Неверный пароль', 403); } $headers = ['Content-Type'=> 'application/octet-stream']; try { $file= storage_path(). "/app/firmware_".$request->input('firmwareversion').".bin"; $response = \response()->download($file,'firmware_'.$request->version.'.bin',$headers); foreach($headers as $key => $value) { $response->headers->set($key, $value); } } catch (\Exception $e) { return response()->json('Sorry, file not found',404); } return $response; } public function firmwareupdated(Request $request) { if (! $request->input('user_id')) { return response('Требуется user_id', 400); } if (! $request->input('password')) { return response('Требуется password', 400); } if (! $request->input('firmwareversion')) { return response('Требуется firmwareversion', 400); } $device = $this->service->find(['password'], ['id' => $request->input('user_id')]); if (! Hash::check($request->input('password'), $device->password)) { return response('Неверный пароль', 403); } $updated = $this->service ->updateMany([$request->input('user_id')], ['firmwareversion' => $request->input('firmwareversion')]); return response()->json($updated.' rows updated',200); } public function deviceconfig(Request $request) { if (! $request->input('user_id')) { return response('Требуется user_id', 400); } if (! $request->input('password')) { return response('Требуется password', 400); } $device = $this->service->find(['password'], ['id' => $request->input('user_id')]); if (! Hash::check($request->input('password'), $device->password)) { return response('Неверный пароль', 403); } $devices = $this->service->get(['id', 'firmwareversion','time_to_request'], ['id' => $request->input('user_id')]); return response()->json($devices,200); } }