Merge branch 'features/events' into 'dev'
Features/events See merge request sae-but2/2025-26/gestion-benevoles-association/backend!2
This commit is contained in:
@@ -0,0 +1,33 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Http\Controllers;
|
||||||
|
|
||||||
|
use App\Models\Events;
|
||||||
|
use Illuminate\Http\Request;
|
||||||
|
use Illuminate\Http\JsonResponse;
|
||||||
|
use Illuminate\Support\Facades\Log;
|
||||||
|
|
||||||
|
class EventsController extends Controller
|
||||||
|
{
|
||||||
|
public function create(Request $request): JsonResponse
|
||||||
|
{
|
||||||
|
if ($request->user()->role != 1) {
|
||||||
|
return response()->json(['message' => 'Forbidden'], 403);
|
||||||
|
}
|
||||||
|
|
||||||
|
try {
|
||||||
|
|
||||||
|
Events::create([
|
||||||
|
"name" => $request['name'],
|
||||||
|
"description" => $request['description'],
|
||||||
|
]);
|
||||||
|
|
||||||
|
return response()->json(['message' => 'Event created']);
|
||||||
|
|
||||||
|
} catch (\Exception $e) {
|
||||||
|
Log::info($e->getMessage());
|
||||||
|
return response()->json(['message' => "Server error"], 500);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,15 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Models;
|
||||||
|
|
||||||
|
use Illuminate\Database\Eloquent\Factories\HasFactory;
|
||||||
|
use Illuminate\Database\Eloquent\Model;
|
||||||
|
|
||||||
|
class Events extends Model
|
||||||
|
{
|
||||||
|
use HasFactory;
|
||||||
|
protected $fillable = [
|
||||||
|
"name",
|
||||||
|
"description",
|
||||||
|
];
|
||||||
|
}
|
||||||
@@ -0,0 +1,24 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace Database\Factories;
|
||||||
|
|
||||||
|
use Illuminate\Database\Eloquent\Factories\Factory;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @extends \Illuminate\Database\Eloquent\Factories\Factory<\App\Models\Events>
|
||||||
|
*/
|
||||||
|
class EventsFactory extends Factory
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* Define the model's default state.
|
||||||
|
*
|
||||||
|
* @return array<string, mixed>
|
||||||
|
*/
|
||||||
|
public function definition(): array
|
||||||
|
{
|
||||||
|
return [
|
||||||
|
'name' => $this->faker->text(15),
|
||||||
|
'description' => $this->faker->text(50),
|
||||||
|
];
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -25,10 +25,12 @@ class UserFactory extends Factory
|
|||||||
{
|
{
|
||||||
return [
|
return [
|
||||||
'name' => fake()->name(),
|
'name' => fake()->name(),
|
||||||
|
'lastname' => fake()->lastname(),
|
||||||
'email' => fake()->unique()->safeEmail(),
|
'email' => fake()->unique()->safeEmail(),
|
||||||
'email_verified_at' => now(),
|
'password' => Hash::make('password'),
|
||||||
'password' => static::$password ??= Hash::make('password'),
|
|
||||||
'remember_token' => Str::random(10),
|
'remember_token' => Str::random(10),
|
||||||
|
'validate' => rand(0, 1),
|
||||||
|
'role' => rand(2, 5)
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -0,0 +1,29 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
use Illuminate\Database\Migrations\Migration;
|
||||||
|
use Illuminate\Database\Schema\Blueprint;
|
||||||
|
use Illuminate\Support\Facades\Schema;
|
||||||
|
|
||||||
|
return new class extends Migration
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* Run the migrations.
|
||||||
|
*/
|
||||||
|
public function up(): void
|
||||||
|
{
|
||||||
|
Schema::create('events', function (Blueprint $table) {
|
||||||
|
$table->id();
|
||||||
|
$table->string('name');
|
||||||
|
$table->string('description');
|
||||||
|
$table->timestamps();
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Reverse the migrations.
|
||||||
|
*/
|
||||||
|
public function down(): void
|
||||||
|
{
|
||||||
|
Schema::dropIfExists('events');
|
||||||
|
}
|
||||||
|
};
|
||||||
@@ -3,7 +3,7 @@
|
|||||||
namespace Database\Seeders;
|
namespace Database\Seeders;
|
||||||
|
|
||||||
use App\Models\User;
|
use App\Models\User;
|
||||||
// use Illuminate\Database\Console\Seeds\WithoutModelEvents;
|
use App\Models\Events;
|
||||||
use Illuminate\Database\Seeder;
|
use Illuminate\Database\Seeder;
|
||||||
|
|
||||||
class DatabaseSeeder extends Seeder
|
class DatabaseSeeder extends Seeder
|
||||||
@@ -13,11 +13,15 @@ class DatabaseSeeder extends Seeder
|
|||||||
*/
|
*/
|
||||||
public function run(): void
|
public function run(): void
|
||||||
{
|
{
|
||||||
// User::factory(10)->create();
|
|
||||||
|
|
||||||
User::factory()->create([
|
User::factory()->create([
|
||||||
'name' => 'Test User',
|
'name' => 'Test User',
|
||||||
'email' => 'test@example.com',
|
'email' => 'test@example.com',
|
||||||
|
'role' => 1
|
||||||
]);
|
]);
|
||||||
|
|
||||||
|
User::factory()->count(10)->create();
|
||||||
|
|
||||||
|
Events::factory()->count(10)->create();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,6 +2,7 @@
|
|||||||
|
|
||||||
use App\Http\Controllers\AuthController;
|
use App\Http\Controllers\AuthController;
|
||||||
use App\Http\Controllers\UserController;
|
use App\Http\Controllers\UserController;
|
||||||
|
use App\Http\Controllers\EventsController;
|
||||||
use Illuminate\Http\Request;
|
use Illuminate\Http\Request;
|
||||||
use Illuminate\Support\Facades\Route;
|
use Illuminate\Support\Facades\Route;
|
||||||
|
|
||||||
@@ -30,3 +31,5 @@ Route::middleware(['web', 'auth:sanctum'])->post('/users/{id}/validate', [UserCo
|
|||||||
Route::middleware(['web', 'auth:sanctum'])->post('/users/{id}/role', [UserController::class, "addRole"]);
|
Route::middleware(['web', 'auth:sanctum'])->post('/users/{id}/role', [UserController::class, "addRole"]);
|
||||||
|
|
||||||
Route::middleware(['web', 'auth:sanctum'])->get('/users', [UserController::class, "getUsers"]);
|
Route::middleware(['web', 'auth:sanctum'])->get('/users', [UserController::class, "getUsers"]);
|
||||||
|
|
||||||
|
Route::middleware(['web', 'auth:sanctum'])->post('/events/create', [EventsController::class, "create"]);
|
||||||
|
|||||||
@@ -0,0 +1,36 @@
|
|||||||
|
meta {
|
||||||
|
name: Create event
|
||||||
|
type: http
|
||||||
|
seq: 1
|
||||||
|
}
|
||||||
|
|
||||||
|
post {
|
||||||
|
url: {{url}}/api/events/create
|
||||||
|
body: json
|
||||||
|
auth: inherit
|
||||||
|
}
|
||||||
|
|
||||||
|
headers {
|
||||||
|
X-XSRF-TOKEN:
|
||||||
|
}
|
||||||
|
|
||||||
|
body:json {
|
||||||
|
{
|
||||||
|
"name": "{{name}}",
|
||||||
|
"description": "{{description}}"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
vars:pre-request {
|
||||||
|
name: Mon super event
|
||||||
|
description: Ma super description
|
||||||
|
}
|
||||||
|
|
||||||
|
assert {
|
||||||
|
res.status: eq 200
|
||||||
|
}
|
||||||
|
|
||||||
|
settings {
|
||||||
|
encodeUrl: true
|
||||||
|
timeout: 0
|
||||||
|
}
|
||||||
@@ -0,0 +1,8 @@
|
|||||||
|
meta {
|
||||||
|
name: Events
|
||||||
|
seq: 7
|
||||||
|
}
|
||||||
|
|
||||||
|
auth {
|
||||||
|
mode: inherit
|
||||||
|
}
|
||||||
+2
-2
@@ -23,8 +23,8 @@ body:json {
|
|||||||
}
|
}
|
||||||
|
|
||||||
vars:pre-request {
|
vars:pre-request {
|
||||||
email: test@test.com
|
email: test@example.com
|
||||||
password: test
|
password: password
|
||||||
}
|
}
|
||||||
|
|
||||||
assert {
|
assert {
|
||||||
|
|||||||
@@ -11,7 +11,7 @@ delete {
|
|||||||
}
|
}
|
||||||
|
|
||||||
headers {
|
headers {
|
||||||
X-XSRF-TOKEN: eyJpdiI6IndIakNUdWVLbUs4cEErZHpLYm9xY2c9PSIsInZhbHVlIjoib09MWDhBZWxrZnB0UCthSlpMVE1sT09iY0ZJNlpuZ1NWRWRvWnYvVVMrSm1yeWpob0JFSVpVa1pTTGJpc255eWV4QXlSS2IwZzNCZ0xPL1lMRWVRMDR6eU83OG9CV2J5ZUJqbENRWmdhRGZRM0hXczc2KzNKQVV1YmVCN0NwVHciLCJtYWMiOiIxOGZhNzI1ZDE0NTNlNTVkMDI3NjVhNTRmMjI4YWUwOTI1NjQ3MTllNTU4ZDA2NWQwNjM5MDM5MmE1OTIwYjUzIiwidGFnIjoiIn0=
|
X-XSRF-TOKEN:
|
||||||
}
|
}
|
||||||
|
|
||||||
settings {
|
settings {
|
||||||
|
|||||||
@@ -12,7 +12,7 @@ post {
|
|||||||
|
|
||||||
headers {
|
headers {
|
||||||
Accept: application/json
|
Accept: application/json
|
||||||
X-XSRF-TOKEN: eyJpdiI6IkN0OWIwbGM5RU8yd2FzMmFURDRuNUE9PSIsInZhbHVlIjoiRjBtd0o5Um9jaFN4dDkzbGlGNFBEWlNDOEFUdGJQVzgrSmpabTlQMDZUekhnY3NnWG55RUQwUDdKazBlRk1pWTloUGRKQjhNRE5oVCtLT2dLSmY1d2RRSEFuNjZ3UDNWVURLNERBckd1TnMwM2ZOZ2xzM2dlQjFwYlZIemZmRGEiLCJtYWMiOiI4ZGVkNTY3NjIwMjU3YmZiOWRjZDE1NDQ1OGU3ZTkwYzFlYTMzYmEwNDdhNWMwNWQxNWUyMTBjODMyMTY5ZGRlIiwidGFnIjoiIn0=
|
X-XSRF-TOKEN:
|
||||||
}
|
}
|
||||||
|
|
||||||
body:json {
|
body:json {
|
||||||
|
|||||||
@@ -1,6 +1,3 @@
|
|||||||
vars {
|
|
||||||
url: http://localhost:8000
|
|
||||||
}
|
|
||||||
vars:secret [
|
vars:secret [
|
||||||
token
|
url
|
||||||
]
|
]
|
||||||
|
|||||||
Reference in New Issue
Block a user