aboutsummaryrefslogtreecommitdiffstats
path: root/app/Http/Controllers/PageController.php
blob: 8c2558738c7115f85fc460d3b485753b8571b7cb (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
<?php

namespace App\Http\Controllers;

use Exception;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Log;
use Illuminate\Support\Facades\Mail;

class PageController extends Controller
{
    /**
     * Show the FAQ page.
     */
    public function faq()
    {
        return view('pages.faq');
    }

    /**
     * Show the contact page.
     */
    public function contact()
    {
        return view('pages.contact');
    }

    /**
     * Handle contact form submission.
     */
    public function sendContact(Request $request)
    {
        $validated = $request->validate([
            'name' => 'required|string|max:255',
            'email' => 'required|email|max:255',
            'subject' => 'required|string|max:255',
            'message' => 'required|string|max:5000',
        ]);

        try {
            Mail::raw(
                "New contact message from {$validated['name']} ({$validated['email']})\n\n" .
                "Subject: {$validated['subject']}\n\n" .
                "Message:\n{$validated['message']}",
                function ($mail) use ($validated) {
                    $mail->to('abdellah.el.morabit@student.ehb.be')
                        ->subject('Contact Form: ' . $validated['subject']);
                }
            );
        } catch (Exception $e) {
            Log::error('Failed to send contact email: ' . $e->getMessage());
        }

        return redirect()->route('contact')->with('success', 'Thank you for your message! We will get back to you soon.');
    }

    /**
     * Show the home/welcome page.
     */
    public function home()
    {
        return redirect()->route('login');
    }

    /**
     * Show the app page.
     */
    public function app()
    {
        return view('app');
    }
}