Add pirep comments and subfleets fares #118

This commit is contained in:
Nabeel Shahzad
2018-01-23 21:40:34 -06:00
parent f9efa81bb4
commit 9964eb63fb
9 changed files with 191 additions and 72 deletions

View File

@@ -51,9 +51,9 @@ class FleetController extends RestController
$where['id'] = $id;
}
$all_aircraft = $this->aircraftRepo->all();
#$all_aircraft = $this->aircraftRepo->all();
$aircraft = $this->aircraftRepo
->with(['subfleet'])
->with(['subfleet', 'subfleet.fares'])
->findWhere($where)
->first();

View File

@@ -2,6 +2,7 @@
namespace App\Http\Controllers\Api;
use App\Models\PirepComment;
use Log;
use Auth;
use Illuminate\Database\Eloquent\ModelNotFoundException;
@@ -20,6 +21,7 @@ use App\Repositories\AcarsRepository;
use App\Repositories\PirepRepository;
use App\Http\Resources\Pirep as PirepResource;
use App\Http\Resources\PirepComment as PirepCommentResource;
use App\Http\Resources\AcarsRoute as AcarsRouteResource;
use Symfony\Component\HttpKernel\Exception\BadRequestHttpException;
@@ -328,6 +330,44 @@ class PirepController extends RestController
return $this->message($count . ' logs added', $count);
}
/**
* Add a new comment
* @param $id
* @param Request $request
* @return \Illuminate\Http\Resources\Json\AnonymousResourceCollection
*/
public function comments_get($id, Request $request)
{
$pirep = $this->pirepRepo->find($id);
return PirepCommentResource::collection($pirep->comments);
}
/**
* Add a new comment
* @param $id
* @param Request $request
* @return PirepCommentResource
* @throws \Symfony\Component\HttpKernel\Exception\BadRequestHttpException
*/
public function comments_post($id, Request $request)
{
$pirep = $this->pirepRepo->find($id);
if ($pirep->state === PirepState::CANCELLED) {
throw new BadRequestHttpException('PIREP has been cancelled, comments can\'t be posted');
}
# validation
$this->validate($request, ['comment' => 'required']);
# Add it
$comment = new PirepComment($request->post());
$comment->pirep_id = $id;
$comment->user_id = Auth::user()->id;
$comment->save();
return new PirepCommentResource($comment);
}
/**
* @param $id
* @param Request $request

View File

@@ -0,0 +1,35 @@
<?php
namespace App\Http\Resources;
use Illuminate\Http\Resources\Json\Resource;
/**
* Class Response
* @package App\Http\Resources
* Generic response resource
*/
class PirepComment extends Resource
{
/**
* Transform the resource into an array.
*
* @param \Illuminate\Http\Request $request
* @return array
*/
public function toArray($request)
{
$user = $this->user;
return [
'id' => $this->id,
'comment' => $this->comment,
'created_at' => $this->created_at,
'user' => [
'id' => $user->id,
'pilot_id' => $user->pilot_id,
'name' => $user->name,
],
];
}
}

View File

@@ -0,0 +1,24 @@
<?php
namespace App\Http\Resources;
use Illuminate\Http\Resources\Json\Resource;
/**
* Class Response
* @package App\Http\Resources
* Generic response resource
*/
class Response extends Resource
{
/**
* Transform the resource into an array.
*
* @param \Illuminate\Http\Request $request
* @return array
*/
public function toArray($request)
{
return parent::toArray($request);
}
}

View File

@@ -10,6 +10,7 @@ class User extends Resource
{
return [
'id' => $this->id,
'pilot_id' => $this->pilot_id,
'name' => $this->name,
'email' => $this->email,
'apikey' => $this->apikey,