/**
  * Update Server configuration
  *
  * Updates display information on panel.
  *
  * @Patch("/servers/{id}/config")
  * @Versions({"v1"})
  * @Transaction({
  *      @Request({
  *          "owner": "*****@*****.**",
  *          "name": "New Name",
  *          "reset_token": true
  *      }, headers={"Authorization": "Bearer <token>"}),
  *      @Response(200, body={"name": "New Name"}),
  *      @Response(422)
  * })
  * @Parameters({
  *      @Parameter("id", type="integer", required=true, description="The ID of the server to modify.")
  * })
  */
 public function config(Request $request, $id)
 {
     try {
         $server = new ServerRepository();
         $server->updateDetails($id, $request->all());
         return Models\Server::findOrFail($id);
     } catch (DisplayValidationException $ex) {
         throw new ResourceException('A validation error occured.', json_decode($ex->getMessage(), true));
     } catch (DisplayException $ex) {
         throw new ResourceException($ex->getMessage());
     } catch (\Exception $ex) {
         throw new ServiceUnavailableHttpException('Unable to update server on system due to an error.');
     }
 }
 public function postUpdateServerDetails(Request $request, $id)
 {
     try {
         $server = new ServerRepository();
         $server->updateDetails($id, ['owner' => $request->input('owner'), 'name' => $request->input('name'), 'reset_token' => $request->input('reset_token', false) === 'on' ? true : false]);
         Alert::success('Server details were successfully updated.')->flash();
     } catch (DisplayValidationException $ex) {
         return redirect()->route('admin.servers.view', ['id' => $id, 'tab' => 'tab_details'])->withErrors(json_decode($ex->getMessage()))->withInput();
     } catch (DisplayException $ex) {
         Alert::danger($ex->getMessage())->flash();
     } catch (\Exception $ex) {
         Log::error($ex);
         Alert::danger('An unhandled exception occured while attemping to update this server. Please try again.')->flash();
     }
     return redirect()->route('admin.servers.view', ['id' => $id, 'tab' => 'tab_details'])->withInput();
 }