Added /api/settings to retrieve all VA settings #120

This commit is contained in:
Nabeel Shahzad
2018-01-06 15:41:23 -06:00
parent fbfefa4a3b
commit d63f0ee2f8
5 changed files with 73 additions and 0 deletions

View File

@@ -0,0 +1,28 @@
<?php
namespace App\Http\Controllers\Api;
use Illuminate\Http\Request;
use App\Repositories\SettingRepository;
use App\Http\Resources\Setting as SettingResource;
class SettingsController extends RestController
{
protected $settingRepo;
public function __construct(SettingRepository $settingRepo) {
$this->settingRepo = $settingRepo;
}
/**
* Return all the airlines, paginated
*/
public function index(Request $request)
{
$settings = $this->settingRepo
->orderBy('order', 'asc')->get();
return SettingResource::collection($settings);
}
}

View File

@@ -0,0 +1,21 @@
<?php
namespace App\Http\Resources;
use Illuminate\Http\Resources\Json\Resource;
class Setting extends Resource
{
public function toArray($request)
{
return [
'id' => $this->id,
'type' => $this->type,
'name' => $this->name,
'value' => $this->value,
'group' => $this->group,
'order' => $this->order,
'description' => $this->description,
];
}
}

View File

@@ -44,4 +44,18 @@ class Setting extends BaseModel
}
});
}
/**
* Override the casting mechanism
* @param string $key
* @return mixed|string
*/
/*protected function getCastType($key)
{
if ($key === 'value' && !empty($this->type)) {
return $this->type;
} else {
return parent::getCastType($key);
}
}*/
}

View File

@@ -49,8 +49,11 @@ Route::group(['middleware' => ['api.auth']], function ()
Route::post('pireps/{id}/route', 'PirepController@route_post');
Route::delete('pireps/{id}/route', 'PirepController@route_delete');
Route::get('settings', 'SettingsController@index');
# This is the info of the user whose token is in use
Route::get('user', 'UserController@index');
Route::get('users/{id}', 'UserController@get');
Route::get('users/{id}/bids', 'UserController@bids');
});

View File

@@ -190,4 +190,11 @@ class ApiTest extends TestCase
$body = $resp->json();
$this->assertEquals($body['id'], $aircraft->id);
}
public function testGetAllSettings()
{
$this->user = factory(App\Models\User::class)->create();
$res = $this->get('/api/settings')->assertStatus(200);
$settings = $res->json();
}
}