add Event Catégory bien admin

This commit is contained in:
2020-07-19 13:03:32 +02:00
parent 1e7e1fc09e
commit 6a1c83dc59
6 changed files with 109 additions and 3 deletions

View File

@@ -2,6 +2,8 @@
namespace App\Http\Controllers; namespace App\Http\Controllers;
use App\Http\Requests\EventCategoryRequest;
use App\Http\Resources\EventCategory as EventCategoryResource;
use App\Models\EventCategory; use App\Models\EventCategory;
use Illuminate\Http\Request; use Illuminate\Http\Request;
@@ -33,9 +35,16 @@ class EventCategoryController extends Controller
* @param \Illuminate\Http\Request $request * @param \Illuminate\Http\Request $request
* @return \Illuminate\Http\Response * @return \Illuminate\Http\Response
*/ */
public function store(Request $request) public function store(EventCategoryRequest $request)
{ {
// $validated = $request->validated();
$category = EventCategory::create($validated);
$category->save();
return (new EventCategoryResource($category))
->response()
->setStatusCode(201);
} }
/** /**

View File

@@ -41,7 +41,7 @@ class EventController extends Controller
$event = $request->user()->events()->create($validated); $event = $request->user()->events()->create($validated);
$event->save(); $event->save();
//dd($event, $validated);
return (new EventResource($event)) return (new EventResource($event))
->response() ->response()
->setStatusCode(201); ->setStatusCode(201);

View File

@@ -0,0 +1,31 @@
<?php
namespace App\Http\Requests;
use Illuminate\Foundation\Http\FormRequest;
class EventCategoryRequest extends FormRequest
{
/**
* Determine if the user is authorized to make this request.
*
* @return bool
*/
public function authorize()
{
return auth()->user()->isAdmin();
}
/**
* Get the validation rules that apply to the request.
*
* @return array
*/
public function rules()
{
return [
'name' => 'required',
'description' => 'nullable|string',
];
}
}

View File

@@ -0,0 +1,33 @@
<?php
namespace App\Http\Resources;
use Illuminate\Http\Resources\Json\JsonResource;
class EventCategory extends JsonResource
{
/**
* Transform the resource into an array.
*
* @param \Illuminate\Http\Request $request
* @return array
*/
public function toArray($request)
{
return [
'data' => [
'type' => 'event categories',
'event_category_id' => $this->id,
'attributes' => [
'data' => [
'name' => $this->name,
'description' => $this->description,
]
],
],
'links' => [
'self' => url('/events/categories/'.$this->id),
]
];
}
}

View File

@@ -26,6 +26,7 @@ Route::middleware('auth:api')->group(function () {
'/meteo' => 'MeteoController', '/meteo' => 'MeteoController',
'/to-do-lists' => 'ToDoListController', '/to-do-lists' => 'ToDoListController',
'/to-do-lists/{toDoList}/to-do' => 'ToDoController', '/to-do-lists/{toDoList}/to-do' => 'ToDoController',
'/events/categories' => 'EventCategoryController',
'/events' => 'EventController', '/events' => 'EventController',
// '/users/{user}/posts' => 'UserPostController', // '/users/{user}/posts' => 'UserPostController',
// '/friend-request' => 'FriendRequestController', // '/friend-request' => 'FriendRequestController',

View File

@@ -13,6 +13,38 @@ class EventsTest extends TestCase
{ {
use RefreshDatabase; use RefreshDatabase;
/** @test */
public function an_admin_can_create_an_event_category()
{
$this->withoutExceptionHandling();
$this->actingAs($user = factory(User::class)->create(['role' => 2]), 'api');
$response = $this->post('/api/events/categories', [
'name' => 'Test name event category',
'description' => 'Test description event category',
])->assertStatus(201);
$category = EventCategory::first();
$this->assertEquals('Test name event category', $category->name);
$this->assertEquals('Test description event category', $category->description);
$response->assertJson([
'data' => [
'type' => 'event categories',
'event_category_id' => $category->id,
'attributes' => [
'data' => [
'name' => $category->name,
'description' => $category->description,
]
],
],
'links' => [
'self' => url('/events/categories/'.$category->id),
]
]);
}
/** @test */ /** @test */
public function a_user_can_create_an_event() public function a_user_can_create_an_event()
{ {