diff options
Diffstat (limited to 'Year_3/TSDWL/LARAVEL/iBook/app/Http')
12 files changed, 439 insertions, 0 deletions
diff --git a/Year_3/TSDWL/LARAVEL/iBook/app/Http/Controllers/AuthorController.php b/Year_3/TSDWL/LARAVEL/iBook/app/Http/Controllers/AuthorController.php new file mode 100644 index 0000000..242464c --- /dev/null +++ b/Year_3/TSDWL/LARAVEL/iBook/app/Http/Controllers/AuthorController.php @@ -0,0 +1,85 @@ +<?php + +namespace App\Http\Controllers; + +use App\Models\Author; +use Illuminate\Http\Request; + +class AuthorController extends Controller +{ +    /** +     * Display a listing of the resource. +     * +     * @return \Illuminate\Http\Response +     */ +    public function index() +    { +        // +    } + +    /** +     * Show the form for creating a new resource. +     * +     * @return \Illuminate\Http\Response +     */ +    public function create() +    { +        // +    } + +    /** +     * Store a newly created resource in storage. +     * +     * @param  \Illuminate\Http\Request  $request +     * @return \Illuminate\Http\Response +     */ +    public function store(Request $request) +    { +        // +    } + +    /** +     * Display the specified resource. +     * +     * @param  \App\Models\Author  $author +     * @return \Illuminate\Http\Response +     */ +    public function show(Author $author) +    { +        // +    } + +    /** +     * Show the form for editing the specified resource. +     * +     * @param  \App\Models\Author  $author +     * @return \Illuminate\Http\Response +     */ +    public function edit(Author $author) +    { +        // +    } + +    /** +     * Update the specified resource in storage. +     * +     * @param  \Illuminate\Http\Request  $request +     * @param  \App\Models\Author  $author +     * @return \Illuminate\Http\Response +     */ +    public function update(Request $request, Author $author) +    { +        // +    } + +    /** +     * Remove the specified resource from storage. +     * +     * @param  \App\Models\Author  $author +     * @return \Illuminate\Http\Response +     */ +    public function destroy(Author $author) +    { +        // +    } +} diff --git a/Year_3/TSDWL/LARAVEL/iBook/app/Http/Controllers/BookController.php b/Year_3/TSDWL/LARAVEL/iBook/app/Http/Controllers/BookController.php new file mode 100644 index 0000000..39cf772 --- /dev/null +++ b/Year_3/TSDWL/LARAVEL/iBook/app/Http/Controllers/BookController.php @@ -0,0 +1,103 @@ +<?php + +namespace App\Http\Controllers; + +use App\Models\Book; +use App\Models\Author; +use Illuminate\Http\Request; + +class BookController extends Controller +{ +    /** +     * Display a listing of the resource. +     * +     * @return \Illuminate\Http\Response +     */ +    public function index() +    { +        $books = Book::all(); + +        return view('books.index')->with('books', $books); +    } + +    /** +     * Show the form for creating a new resource. +     * +     * @return \Illuminate\Http\Response +     */ +    public function create() +    { +        $authors = Author::all(); +        return view('books.create')->with('authors', $authors); +    } + +    /** +     * Store a newly created resource in storage. +     * +     * @param  \Illuminate\Http\Request $request +     * @return \Illuminate\Http\Response +     */ +    public function store(Request $request) +    { +        $book = new Book(); +        $book->name = $request['name']; +        $book->published_at = $request['published_at']; +        $book->is_online = $request['is_online'] ? 1: 0; +        $book->author_id = $request['author_id']; + +        $book->save(); + +        return redirect('/books'); +    } + +    /** +     * Display the specified resource. +     * +     * @param  \App\Models\Book $book +     * @return \Illuminate\Http\Response +     */ +    public function show(Book $book) +    { +        $authors = Author::all(); +        return view('books.edit')->with('book', $book)->with('authors', $authors); +    } + +    /** +     * Show the form for editing the specified resource. +     * +     * @param  \App\Models\Book $book +     * @return \Illuminate\Http\Response +     */ +    public function edit(Book $book) +    { +    } + +    /** +     * Update the specified resource in storage. +     * +     * @param  \Illuminate\Http\Request $request +     * @param  \App\Models\Book         $book +     * @return \Illuminate\Http\Response +     */ +    public function update(Request $request, Book $book) +    { +        $book->name = $request['name']; +        $book->published_at = $request['published_at']; +        $book->is_online = $request['is_online'] ? 1: 0; +        $book->author_id = $request['author_id']; + +        $book->save(); +        return redirect('/books/'.$book->id); +    } + +    /** +     * Remove the specified resource from storage. +     * +     * @param  \App\Models\Book $book +     * @return \Illuminate\Http\Response +     */ +    public function destroy(Book $book) +    { +        // +    } +} diff --git a/Year_3/TSDWL/LARAVEL/iBook/app/Http/Controllers/Controller.php b/Year_3/TSDWL/LARAVEL/iBook/app/Http/Controllers/Controller.php new file mode 100644 index 0000000..a0a2a8a --- /dev/null +++ b/Year_3/TSDWL/LARAVEL/iBook/app/Http/Controllers/Controller.php @@ -0,0 +1,13 @@ +<?php + +namespace App\Http\Controllers; + +use Illuminate\Foundation\Auth\Access\AuthorizesRequests; +use Illuminate\Foundation\Bus\DispatchesJobs; +use Illuminate\Foundation\Validation\ValidatesRequests; +use Illuminate\Routing\Controller as BaseController; + +class Controller extends BaseController +{ +    use AuthorizesRequests, DispatchesJobs, ValidatesRequests; +} diff --git a/Year_3/TSDWL/LARAVEL/iBook/app/Http/Kernel.php b/Year_3/TSDWL/LARAVEL/iBook/app/Http/Kernel.php new file mode 100644 index 0000000..d3722c2 --- /dev/null +++ b/Year_3/TSDWL/LARAVEL/iBook/app/Http/Kernel.php @@ -0,0 +1,67 @@ +<?php + +namespace App\Http; + +use Illuminate\Foundation\Http\Kernel as HttpKernel; + +class Kernel extends HttpKernel +{ +    /** +     * The application's global HTTP middleware stack. +     * +     * These middleware are run during every request to your application. +     * +     * @var array<int, class-string|string> +     */ +    protected $middleware = [ +        // \App\Http\Middleware\TrustHosts::class, +        \App\Http\Middleware\TrustProxies::class, +        \Fruitcake\Cors\HandleCors::class, +        \App\Http\Middleware\PreventRequestsDuringMaintenance::class, +        \Illuminate\Foundation\Http\Middleware\ValidatePostSize::class, +        \App\Http\Middleware\TrimStrings::class, +        \Illuminate\Foundation\Http\Middleware\ConvertEmptyStringsToNull::class, +    ]; + +    /** +     * The application's route middleware groups. +     * +     * @var array<string, array<int, class-string|string>> +     */ +    protected $middlewareGroups = [ +        'web' => [ +            \App\Http\Middleware\EncryptCookies::class, +            \Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse::class, +            \Illuminate\Session\Middleware\StartSession::class, +            // \Illuminate\Session\Middleware\AuthenticateSession::class, +            \Illuminate\View\Middleware\ShareErrorsFromSession::class, +            \App\Http\Middleware\VerifyCsrfToken::class, +            \Illuminate\Routing\Middleware\SubstituteBindings::class, +        ], + +        'api' => [ +            // \Laravel\Sanctum\Http\Middleware\EnsureFrontendRequestsAreStateful::class, +            'throttle:api', +            \Illuminate\Routing\Middleware\SubstituteBindings::class, +        ], +    ]; + +    /** +     * The application's route middleware. +     * +     * These middleware may be assigned to groups or used individually. +     * +     * @var array<string, class-string|string> +     */ +    protected $routeMiddleware = [ +        'auth' => \App\Http\Middleware\Authenticate::class, +        'auth.basic' => \Illuminate\Auth\Middleware\AuthenticateWithBasicAuth::class, +        'cache.headers' => \Illuminate\Http\Middleware\SetCacheHeaders::class, +        'can' => \Illuminate\Auth\Middleware\Authorize::class, +        'guest' => \App\Http\Middleware\RedirectIfAuthenticated::class, +        'password.confirm' => \Illuminate\Auth\Middleware\RequirePassword::class, +        'signed' => \Illuminate\Routing\Middleware\ValidateSignature::class, +        'throttle' => \Illuminate\Routing\Middleware\ThrottleRequests::class, +        'verified' => \Illuminate\Auth\Middleware\EnsureEmailIsVerified::class, +    ]; +} diff --git a/Year_3/TSDWL/LARAVEL/iBook/app/Http/Middleware/Authenticate.php b/Year_3/TSDWL/LARAVEL/iBook/app/Http/Middleware/Authenticate.php new file mode 100644 index 0000000..704089a --- /dev/null +++ b/Year_3/TSDWL/LARAVEL/iBook/app/Http/Middleware/Authenticate.php @@ -0,0 +1,21 @@ +<?php + +namespace App\Http\Middleware; + +use Illuminate\Auth\Middleware\Authenticate as Middleware; + +class Authenticate extends Middleware +{ +    /** +     * Get the path the user should be redirected to when they are not authenticated. +     * +     * @param  \Illuminate\Http\Request  $request +     * @return string|null +     */ +    protected function redirectTo($request) +    { +        if (! $request->expectsJson()) { +            return route('login'); +        } +    } +} diff --git a/Year_3/TSDWL/LARAVEL/iBook/app/Http/Middleware/EncryptCookies.php b/Year_3/TSDWL/LARAVEL/iBook/app/Http/Middleware/EncryptCookies.php new file mode 100644 index 0000000..867695b --- /dev/null +++ b/Year_3/TSDWL/LARAVEL/iBook/app/Http/Middleware/EncryptCookies.php @@ -0,0 +1,17 @@ +<?php + +namespace App\Http\Middleware; + +use Illuminate\Cookie\Middleware\EncryptCookies as Middleware; + +class EncryptCookies extends Middleware +{ +    /** +     * The names of the cookies that should not be encrypted. +     * +     * @var array<int, string> +     */ +    protected $except = [ +        // +    ]; +} diff --git a/Year_3/TSDWL/LARAVEL/iBook/app/Http/Middleware/PreventRequestsDuringMaintenance.php b/Year_3/TSDWL/LARAVEL/iBook/app/Http/Middleware/PreventRequestsDuringMaintenance.php new file mode 100644 index 0000000..74cbd9a --- /dev/null +++ b/Year_3/TSDWL/LARAVEL/iBook/app/Http/Middleware/PreventRequestsDuringMaintenance.php @@ -0,0 +1,17 @@ +<?php + +namespace App\Http\Middleware; + +use Illuminate\Foundation\Http\Middleware\PreventRequestsDuringMaintenance as Middleware; + +class PreventRequestsDuringMaintenance extends Middleware +{ +    /** +     * The URIs that should be reachable while maintenance mode is enabled. +     * +     * @var array<int, string> +     */ +    protected $except = [ +        // +    ]; +} diff --git a/Year_3/TSDWL/LARAVEL/iBook/app/Http/Middleware/RedirectIfAuthenticated.php b/Year_3/TSDWL/LARAVEL/iBook/app/Http/Middleware/RedirectIfAuthenticated.php new file mode 100644 index 0000000..a2813a0 --- /dev/null +++ b/Year_3/TSDWL/LARAVEL/iBook/app/Http/Middleware/RedirectIfAuthenticated.php @@ -0,0 +1,32 @@ +<?php + +namespace App\Http\Middleware; + +use App\Providers\RouteServiceProvider; +use Closure; +use Illuminate\Http\Request; +use Illuminate\Support\Facades\Auth; + +class RedirectIfAuthenticated +{ +    /** +     * Handle an incoming request. +     * +     * @param  \Illuminate\Http\Request  $request +     * @param  \Closure(\Illuminate\Http\Request): (\Illuminate\Http\Response|\Illuminate\Http\RedirectResponse)  $next +     * @param  string|null  ...$guards +     * @return \Illuminate\Http\Response|\Illuminate\Http\RedirectResponse +     */ +    public function handle(Request $request, Closure $next, ...$guards) +    { +        $guards = empty($guards) ? [null] : $guards; + +        foreach ($guards as $guard) { +            if (Auth::guard($guard)->check()) { +                return redirect(RouteServiceProvider::HOME); +            } +        } + +        return $next($request); +    } +} diff --git a/Year_3/TSDWL/LARAVEL/iBook/app/Http/Middleware/TrimStrings.php b/Year_3/TSDWL/LARAVEL/iBook/app/Http/Middleware/TrimStrings.php new file mode 100644 index 0000000..88cadca --- /dev/null +++ b/Year_3/TSDWL/LARAVEL/iBook/app/Http/Middleware/TrimStrings.php @@ -0,0 +1,19 @@ +<?php + +namespace App\Http\Middleware; + +use Illuminate\Foundation\Http\Middleware\TrimStrings as Middleware; + +class TrimStrings extends Middleware +{ +    /** +     * The names of the attributes that should not be trimmed. +     * +     * @var array<int, string> +     */ +    protected $except = [ +        'current_password', +        'password', +        'password_confirmation', +    ]; +} diff --git a/Year_3/TSDWL/LARAVEL/iBook/app/Http/Middleware/TrustHosts.php b/Year_3/TSDWL/LARAVEL/iBook/app/Http/Middleware/TrustHosts.php new file mode 100644 index 0000000..7186414 --- /dev/null +++ b/Year_3/TSDWL/LARAVEL/iBook/app/Http/Middleware/TrustHosts.php @@ -0,0 +1,20 @@ +<?php + +namespace App\Http\Middleware; + +use Illuminate\Http\Middleware\TrustHosts as Middleware; + +class TrustHosts extends Middleware +{ +    /** +     * Get the host patterns that should be trusted. +     * +     * @return array<int, string|null> +     */ +    public function hosts() +    { +        return [ +            $this->allSubdomainsOfApplicationUrl(), +        ]; +    } +} diff --git a/Year_3/TSDWL/LARAVEL/iBook/app/Http/Middleware/TrustProxies.php b/Year_3/TSDWL/LARAVEL/iBook/app/Http/Middleware/TrustProxies.php new file mode 100644 index 0000000..3391630 --- /dev/null +++ b/Year_3/TSDWL/LARAVEL/iBook/app/Http/Middleware/TrustProxies.php @@ -0,0 +1,28 @@ +<?php + +namespace App\Http\Middleware; + +use Illuminate\Http\Middleware\TrustProxies as Middleware; +use Illuminate\Http\Request; + +class TrustProxies extends Middleware +{ +    /** +     * The trusted proxies for this application. +     * +     * @var array<int, string>|string|null +     */ +    protected $proxies; + +    /** +     * The headers that should be used to detect proxies. +     * +     * @var int +     */ +    protected $headers = +        Request::HEADER_X_FORWARDED_FOR | +        Request::HEADER_X_FORWARDED_HOST | +        Request::HEADER_X_FORWARDED_PORT | +        Request::HEADER_X_FORWARDED_PROTO | +        Request::HEADER_X_FORWARDED_AWS_ELB; +} diff --git a/Year_3/TSDWL/LARAVEL/iBook/app/Http/Middleware/VerifyCsrfToken.php b/Year_3/TSDWL/LARAVEL/iBook/app/Http/Middleware/VerifyCsrfToken.php new file mode 100644 index 0000000..9e86521 --- /dev/null +++ b/Year_3/TSDWL/LARAVEL/iBook/app/Http/Middleware/VerifyCsrfToken.php @@ -0,0 +1,17 @@ +<?php + +namespace App\Http\Middleware; + +use Illuminate\Foundation\Http\Middleware\VerifyCsrfToken as Middleware; + +class VerifyCsrfToken extends Middleware +{ +    /** +     * The URIs that should be excluded from CSRF verification. +     * +     * @var array<int, string> +     */ +    protected $except = [ +        // +    ]; +}  |