diff --git a/app/Http/Controllers/ContactController.php b/app/Http/Controllers/ContactController.php index d0e2933..c7b4315 100644 --- a/app/Http/Controllers/ContactController.php +++ b/app/Http/Controllers/ContactController.php @@ -3,7 +3,6 @@ namespace App\Http\Controllers; use Illuminate\Http\Request; -use Illuminate\Support\Facades\Mail; class ContactController extends Controller { @@ -14,8 +13,6 @@ class ContactController extends Controller 'message' => 'required|max:5000', ]); - - return response()->json(['status' => 'success']); } } diff --git a/app/Http/Controllers/EducationController.php b/app/Http/Controllers/EducationController.php index bd35f52..a0570ca 100644 --- a/app/Http/Controllers/EducationController.php +++ b/app/Http/Controllers/EducationController.php @@ -10,6 +10,7 @@ class EducationController extends Controller public function index() { $educations = Education::with('media')->latest()->get(); + return view('educations.index', compact('educations')); } @@ -73,6 +74,7 @@ class EducationController extends Controller public function destroy(Education $education) { $education->delete(); + return redirect()->route('educations.index')->with('success', 'Opleiding verwijderd.'); } } diff --git a/app/Http/Controllers/FrontendController.php b/app/Http/Controllers/FrontendController.php index 386c661..ba1c4fd 100644 --- a/app/Http/Controllers/FrontendController.php +++ b/app/Http/Controllers/FrontendController.php @@ -2,13 +2,13 @@ namespace App\Http\Controllers; +use App\Jobs\NotifyTelegramAboutContactMessage; +use App\Jobs\NotifyTelegramAboutPersonaliaClick; use App\Models\Education; use App\Models\Personalia; use App\Models\Skill; use App\Models\WorkExperience; use Illuminate\Http\Request; -use App\Jobs\NotifyTelegramAboutPersonaliaClick; -use App\Jobs\NotifyTelegramAboutContactMessage; class FrontendController extends Controller { @@ -37,25 +37,24 @@ class FrontendController extends Controller ]); } - public function message(Request $request) -{ - $validated = $request->validate([ - 'name' => 'required|string|max:255', - 'message' => 'required|string|max:5000', - 'email' => 'nullable|email|max:255', - 'phone' => 'nullable|string|max:50', - ]); + public function message(Request $request) + { + $validated = $request->validate([ + 'name' => 'required|string|max:255', + 'message' => 'required|string|max:5000', + 'email' => 'nullable|email|max:255', + 'phone' => 'nullable|string|max:50', + ]); - NotifyTelegramAboutContactMessage::dispatch( - $validated['name'], - $validated['message'], - $request->ip(), - $request->userAgent(), - $validated['email'] ?? null, - $validated['phone'] ?? null - ); - - return response()->json(['status' => 'success']); -} + NotifyTelegramAboutContactMessage::dispatch( + $validated['name'], + $validated['message'], + $request->ip(), + $request->userAgent(), + $validated['email'] ?? null, + $validated['phone'] ?? null + ); + return response()->json(['status' => 'success']); + } } diff --git a/app/Http/Controllers/PersonaliaController.php b/app/Http/Controllers/PersonaliaController.php index 70ab99f..4cb6e3b 100644 --- a/app/Http/Controllers/PersonaliaController.php +++ b/app/Http/Controllers/PersonaliaController.php @@ -10,6 +10,7 @@ class PersonaliaController extends Controller public function index() { $personalia = Personalia::all(); + return view('personalia.index', compact('personalia')); } @@ -41,7 +42,6 @@ class PersonaliaController extends Controller return view('personalia.edit', ['personalia' => $personalium]); } - public function update(Request $request, Personalia $personalium) { $validated = $request->validate([ diff --git a/app/Http/Controllers/SkillController.php b/app/Http/Controllers/SkillController.php index c5d66c5..a7d9bd7 100644 --- a/app/Http/Controllers/SkillController.php +++ b/app/Http/Controllers/SkillController.php @@ -13,6 +13,7 @@ class SkillController extends Controller public function index() { $skills = Skill::latest()->get(); + return view('skills.index', compact('skills')); } diff --git a/app/Http/Controllers/WorkExperienceController.php b/app/Http/Controllers/WorkExperienceController.php index bcb807e..371c122 100644 --- a/app/Http/Controllers/WorkExperienceController.php +++ b/app/Http/Controllers/WorkExperienceController.php @@ -1,4 +1,5 @@ latest()->get(); + return view('work_experiences.index', compact('experiences')); } @@ -58,8 +60,6 @@ class WorkExperienceController extends Controller 'afbeelding' => 'nullable|image|max:2048', ]); - - $workExperience->update($data); if ($request->hasFile('afbeelding')) { @@ -73,6 +73,7 @@ class WorkExperienceController extends Controller public function destroy(WorkExperience $workExperience) { $workExperience->delete(); + return redirect()->route('work-experiences.index')->with('success', 'Ervaring verwijderd.'); } } diff --git a/app/Jobs/NotifyTelegramAboutContactMessage.php b/app/Jobs/NotifyTelegramAboutContactMessage.php index 696b3a5..0d96693 100644 --- a/app/Jobs/NotifyTelegramAboutContactMessage.php +++ b/app/Jobs/NotifyTelegramAboutContactMessage.php @@ -14,10 +14,15 @@ class NotifyTelegramAboutContactMessage implements ShouldQueue use Dispatchable, InteractsWithQueue, Queueable, SerializesModels; protected string $name; + protected string $message; + protected string $ip; + protected string $userAgent; + protected string $email; + protected string $phone; public function __construct(string $name, string $message, string $ip, string $userAgent, ?string $email = null, ?string $phone = null) @@ -30,7 +35,6 @@ class NotifyTelegramAboutContactMessage implements ShouldQueue $this->phone = $phone; } - public function handle() { $email = $this->email ?? '–'; @@ -51,7 +55,7 @@ class NotifyTelegramAboutContactMessage implements ShouldQueue 🕒 Tijdstip: *{now()->format('d-m-Y H:i')}* TEXT; - Http::post("https://api.telegram.org/bot" . config('services.telegram.bot_token') . "/sendMessage", [ + Http::post('https://api.telegram.org/bot'.config('services.telegram.bot_token').'/sendMessage', [ 'chat_id' => config('services.telegram.chat_id'), 'text' => $text, 'parse_mode' => 'Markdown', diff --git a/app/Jobs/NotifyTelegramAboutPersonaliaClick.php b/app/Jobs/NotifyTelegramAboutPersonaliaClick.php index 2bf33a3..14e4f20 100644 --- a/app/Jobs/NotifyTelegramAboutPersonaliaClick.php +++ b/app/Jobs/NotifyTelegramAboutPersonaliaClick.php @@ -15,7 +15,9 @@ class NotifyTelegramAboutPersonaliaClick implements ShouldQueue use Dispatchable, InteractsWithQueue, Queueable, SerializesModels; protected $personalia; + protected $ip; + protected $userAgent; public function __construct(Personalia $personalia, $ip, $userAgent) @@ -37,7 +39,7 @@ User Agent: `{$this->userAgent}` 📅 Tijdstip: *{$this->personalia->updated_at->format('d-m-Y H:i')}* TEXT; - Http::post("https://api.telegram.org/bot" . config('services.telegram.bot_token') . "/sendMessage", [ + Http::post('https://api.telegram.org/bot'.config('services.telegram.bot_token').'/sendMessage', [ 'chat_id' => config('services.telegram.chat_id'), 'text' => $message, 'parse_mode' => 'Markdown', diff --git a/app/Models/Education.php b/app/Models/Education.php index aee08e7..2f5775d 100644 --- a/app/Models/Education.php +++ b/app/Models/Education.php @@ -5,10 +5,13 @@ namespace App\Models; use Illuminate\Database\Eloquent\Model; use Spatie\MediaLibrary\HasMedia; use Spatie\MediaLibrary\InteractsWithMedia; + class Education extends Model implements HasMedia { use InteractsWithMedia; + protected $table = 'education'; + protected $fillable = [ 'opleiding', 'instituut', @@ -21,6 +24,7 @@ class Education extends Model implements HasMedia { return $this->getFirstMedia('image'); } + public function imageUrl() { return $this->image() ? $this->image()->getUrl() : null; diff --git a/app/Models/Personalia.php b/app/Models/Personalia.php index 6aa3cf1..a5cfc07 100644 --- a/app/Models/Personalia.php +++ b/app/Models/Personalia.php @@ -1,4 +1,5 @@ 'boolean', ]; @@ -15,6 +18,7 @@ class Personalia extends Model { return $this->getFirstMedia('image'); } + public function imageUrl() { return $this->image() ? $this->image()->getUrl() : null; diff --git a/app/Models/Skill.php b/app/Models/Skill.php index 8bf7a33..94e62c4 100644 --- a/app/Models/Skill.php +++ b/app/Models/Skill.php @@ -3,7 +3,6 @@ namespace App\Models; use Illuminate\Database\Eloquent\Model; - use Spatie\MediaLibrary\HasMedia; use Spatie\MediaLibrary\InteractsWithMedia; @@ -17,6 +16,7 @@ class Skill extends Model implements HasMedia { return $this->getFirstMedia('image'); } + public function imageUrl() { return $this->image() ? $this->image()->getUrl() : null; diff --git a/app/Models/WorkExperience.php b/app/Models/WorkExperience.php index 4d593c7..8705a41 100644 --- a/app/Models/WorkExperience.php +++ b/app/Models/WorkExperience.php @@ -22,6 +22,7 @@ class WorkExperience extends Model implements HasMedia { return $this->getFirstMedia('image'); } + public function imageUrl() { return $this->image() ? $this->image()->getUrl() : null; diff --git a/database/migrations/2025_06_18_170250_create_work_experiences_table.php b/database/migrations/2025_06_18_170250_create_work_experiences_table.php index de053dd..fc69710 100644 --- a/database/migrations/2025_06_18_170250_create_work_experiences_table.php +++ b/database/migrations/2025_06_18_170250_create_work_experiences_table.php @@ -9,7 +9,8 @@ return new class extends Migration /** * Run the migrations. */ - public function up(): void { + public function up(): void + { Schema::create('work_experiences', function (Blueprint $table) { $table->id(); $table->string('werkgever'); diff --git a/database/migrations/2025_06_18_195212_create_skills_table.php b/database/migrations/2025_06_18_195212_create_skills_table.php index 71c127e..f42b735 100644 --- a/database/migrations/2025_06_18_195212_create_skills_table.php +++ b/database/migrations/2025_06_18_195212_create_skills_table.php @@ -20,7 +20,6 @@ return new class extends Migration }); } - /** * Reverse the migrations. */ diff --git a/database/migrations/2025_06_18_204826_create_education_table.php b/database/migrations/2025_06_18_204826_create_education_table.php index 88f6b14..0940304 100644 --- a/database/migrations/2025_06_18_204826_create_education_table.php +++ b/database/migrations/2025_06_18_204826_create_education_table.php @@ -1,13 +1,13 @@ id(); $table->string('opleiding'); // vergelijkbaar met 'werkgever' @@ -19,7 +19,8 @@ return new class extends Migration }); } - public function down(): void { + public function down(): void + { Schema::dropIfExists('education'); } }; diff --git a/database/migrations/2025_07_08_185355_add_type_to_skills_table.php b/database/migrations/2025_07_08_185355_add_type_to_skills_table.php index eb89a89..6ec904c 100644 --- a/database/migrations/2025_07_08_185355_add_type_to_skills_table.php +++ b/database/migrations/2025_07_08_185355_add_type_to_skills_table.php @@ -22,5 +22,4 @@ return new class extends Migration $table->dropColumn('type'); }); } - }; diff --git a/database/seeders/DatabaseSeeder.php b/database/seeders/DatabaseSeeder.php index d105c95..208adae 100644 --- a/database/seeders/DatabaseSeeder.php +++ b/database/seeders/DatabaseSeeder.php @@ -6,6 +6,7 @@ use App\Models\User; // use Illuminate\Database\Console\Seeds\WithoutModelEvents; use Illuminate\Database\Seeder; use Illuminate\Support\Facades\Hash; + class DatabaseSeeder extends Seeder { /** @@ -24,8 +25,7 @@ class DatabaseSeeder extends Seeder ] ); - - // Andere seeders uitvoeren + // Andere seeders uitvoeren $this->call([ EducationSeeder::class, MediaSeeder::class, diff --git a/database/seeders/EducationSeeder.php b/database/seeders/EducationSeeder.php index d0fdd53..d3f993e 100644 --- a/database/seeders/EducationSeeder.php +++ b/database/seeders/EducationSeeder.php @@ -12,7 +12,7 @@ class EducationSeeder extends Seeder { $path = database_path('data/education.json'); - if (!File::exists($path)) { + if (! File::exists($path)) { return; } diff --git a/database/seeders/MediaSeeder.php b/database/seeders/MediaSeeder.php index 27cd8c4..bdbe6bf 100644 --- a/database/seeders/MediaSeeder.php +++ b/database/seeders/MediaSeeder.php @@ -12,8 +12,9 @@ class MediaSeeder extends Seeder { $path = database_path('data/media.json'); - if (!File::exists($path)) { - $this->command->warn("media.json niet gevonden, seeding overgeslagen."); + if (! File::exists($path)) { + $this->command->warn('media.json niet gevonden, seeding overgeslagen.'); + return; } diff --git a/database/seeders/PersonaliaSeeder.php b/database/seeders/PersonaliaSeeder.php index 2816a01..05ede6d 100644 --- a/database/seeders/PersonaliaSeeder.php +++ b/database/seeders/PersonaliaSeeder.php @@ -2,8 +2,8 @@ namespace Database\Seeders; -use Illuminate\Database\Seeder; use App\Models\Personalia; +use Illuminate\Database\Seeder; use Illuminate\Support\Facades\File; class PersonaliaSeeder extends Seeder @@ -12,8 +12,9 @@ class PersonaliaSeeder extends Seeder { $path = database_path('data/personalia.json'); - if (!File::exists($path)) { + if (! File::exists($path)) { $this->command->warn("Bestand {$path} bestaat niet, seeder overgeslagen."); + return; } @@ -33,6 +34,6 @@ class PersonaliaSeeder extends Seeder ]); } - $this->command->info(count($data) . ' personalia-records geïmporteerd.'); + $this->command->info(count($data).' personalia-records geïmporteerd.'); } } diff --git a/database/seeders/SkillSeeder.php b/database/seeders/SkillSeeder.php index 2f8bd4c..ee8ca09 100644 --- a/database/seeders/SkillSeeder.php +++ b/database/seeders/SkillSeeder.php @@ -2,8 +2,8 @@ namespace Database\Seeders; -use Illuminate\Database\Seeder; use App\Models\Skill; +use Illuminate\Database\Seeder; use Illuminate\Support\Facades\File; class SkillSeeder extends Seeder @@ -12,7 +12,7 @@ class SkillSeeder extends Seeder { $path = database_path('data/skills.json'); - if (!File::exists($path)) { + if (! File::exists($path)) { return; } diff --git a/database/seeders/WorkExperienceSeeder.php b/database/seeders/WorkExperienceSeeder.php index 6fd168a..1d710e5 100644 --- a/database/seeders/WorkExperienceSeeder.php +++ b/database/seeders/WorkExperienceSeeder.php @@ -2,8 +2,8 @@ namespace Database\Seeders; -use Illuminate\Database\Seeder; use App\Models\WorkExperience; +use Illuminate\Database\Seeder; use Illuminate\Support\Facades\File; class WorkExperienceSeeder extends Seeder @@ -13,8 +13,9 @@ class WorkExperienceSeeder extends Seeder $jsonPath = database_path('data/work_experiences.json'); // Bestaat het JSON-bestand? - if (!File::exists($jsonPath)) { + if (! File::exists($jsonPath)) { $this->command->warn("❌ Bestand $jsonPath niet gevonden. Seeder overgeslagen."); + return; } @@ -40,6 +41,6 @@ class WorkExperienceSeeder extends Seeder ); } - $this->command->info("✅ Werkervaringen succesvol geïmporteerd."); + $this->command->info('✅ Werkervaringen succesvol geïmporteerd.'); } } diff --git a/routes/auth.php b/routes/auth.php index ef1472c..863a9ba 100644 --- a/routes/auth.php +++ b/routes/auth.php @@ -7,7 +7,6 @@ use App\Http\Controllers\Auth\EmailVerificationPromptController; use App\Http\Controllers\Auth\NewPasswordController; use App\Http\Controllers\Auth\PasswordController; use App\Http\Controllers\Auth\PasswordResetLinkController; -use App\Http\Controllers\Auth\RegisteredUserController; use App\Http\Controllers\Auth\VerifyEmailController; use Illuminate\Support\Facades\Route;