diff --git a/app/Http/Controllers/RadioController.php b/app/Http/Controllers/RadioController.php index 6fbdce6..9e30ad7 100755 --- a/app/Http/Controllers/RadioController.php +++ b/app/Http/Controllers/RadioController.php @@ -911,6 +911,37 @@ public function setTimeoutConfig($seconds) return response()->json(['message' => 'Server error'], 500); } + public function getDigitalVoice() + { + $command = "get_digital_voice -p 1"; + $output = explode("\n", (string) exec_uc($command))[0]; + + if ($output == "OFF" || $output == "ON") { + return response($output, 200); + } + + (new ErrorController)->saveError(static::class, 500, 'API Error: Error during getting the digital voice mode - ' . $output); + return response()->json(['message' => 'Server error'], 500); + } + + public function setDigitalVoice(int $value) + { + if (!in_array((string) $value, ['0', '1'], true)) { + (new ErrorController)->saveError(static::class, 500, 'API Error: digital voice value must be 0 or 1'); + return response()->json(['message' => 'Server error'], 500); + } + + $command = "set_digital_voice -a " . $value. " -p 1"; + $output = explode("\n", (string) exec_uc($command))[0]; + + if ($output == "OK") { + return response(true, 200); + } + + (new ErrorController)->saveError(static::class, 500, 'API Error: Error during updating the digital voice mode - ' . $output); + return response()->json(['message' => 'Server error'], 500); + } + public function getBitrate() { $command = "get_bitrate"; /*UPDATE COMMAND*/ @@ -947,7 +978,6 @@ public function getPowerLevel($profile) public function setPowerLevel(Request $request) { - if ($request->powerLevel >= 0 && $request->powerLevel <= 100) { $command = "set_power -a " . $request->powerLevel . " -p " . $request->profile; $output = explode("\n", (string) exec_uc($command))[0]; diff --git a/app/Http/Controllers/UserController.php b/app/Http/Controllers/UserController.php index a5c9703..6446406 100644 --- a/app/Http/Controllers/UserController.php +++ b/app/Http/Controllers/UserController.php @@ -18,7 +18,9 @@ public function showAllUsers() public function showOneUser($id) { - if (!$user = User::firstWhere('email', $id)) { + $user = User::find($id); + + if (!$user) { (new ErrorController)->saveError(static::class, 404, 'Could not find user'); return response()->json(['message' => 'Not found'], 404); } else { diff --git a/routes/web.php b/routes/web.php index 58572ca..8d2f675 100644 --- a/routes/web.php +++ b/routes/web.php @@ -95,12 +95,13 @@ $router->post('/voice/timeout', ['uses' => 'RadioController@restartVoiceTimeout']); $router->get('/voice/timeout/config', ['uses' => 'RadioController@getTimeoutConfig']); $router->post('/voice/timeout/config/{seconds}', ['uses' => 'RadioController@setTimeoutConfig']); + $router->get('voice/digital', ['uses' => 'RadioController@getDigitalVoice']); + $router->post('voice/digital/{value}', ['uses' => 'RadioController@setDigitalVoice']); $router->get('/bitrate', ['uses' => 'RadioController@getBitrate']); $router->get('/snr', ['uses' => 'RadioController@getSNR']); $router->get('{profile}', ['uses' => 'RadioController@getRadioStatus']); $router->get('powerlevel/{profile}', ['uses' => 'RadioController@getPowerLevel']); $router->post('powerlevel', ['uses' => 'RadioController@setPowerLevel']); - }); $router->group(['prefix' => '/geolocation'], function () use ($router): void {