Skip to content

Commit

Permalink
fixed validation, models folder and added seeders
Browse files Browse the repository at this point in the history
  • Loading branch information
viktorasbuivydas committed Mar 6, 2021
1 parent 1bafe40 commit 642772b
Show file tree
Hide file tree
Showing 47 changed files with 606 additions and 283 deletions.
20 changes: 0 additions & 20 deletions app/BookAuthor.php

This file was deleted.

20 changes: 0 additions & 20 deletions app/BookGenre.php

This file was deleted.

Original file line number Diff line number Diff line change
@@ -1,18 +1,18 @@
<?php

namespace App\Http\Controllers\Admin;
namespace App\Http\Controllers\Api\V1\Admin;

use App\Http\Controllers\Controller;
use App\Http\Controllers\Api\V1\Controller;
use Illuminate\Http\Request;
use App\Author;
use App\Models\Author;

class AuthorController extends Controller
{

public function index()
{
$authors = Author::paginate(20);
return view('admin.authors.index', compact('authors'));
return $authors;
}

public function create()
Expand Down
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
<?php

namespace App\Http\Controllers\Admin;
namespace App\Http\Controllers\Api\V1\Admin;

use App\Book;
use App\Http\Controllers\Controller;
use App\Models\Book;
use App\Http\Controllers\Api\V1\Controller;


class BookController extends Controller
Expand Down
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
<?php

namespace App\Http\Controllers\Admin;
use App\Http\Controllers\Controller;
namespace App\Http\Controllers\Api\V1\Admin;
use App\Http\Controllers\Api\V1\Controller;
use Illuminate\Http\Request;
use App\Genre;
use App\Models\Genre;

class GenreController extends Controller
{
Expand Down
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
<?php

namespace App\Http\Controllers\Admin;
use App\Http\Controllers\Controller;
use App\Report;
namespace App\Http\Controllers\Api\V1\Admin;
use App\Http\Controllers\Api\V1\Controller;
use App\Models\Report;

class ReportController extends Controller
{
Expand Down
3 changes: 1 addition & 2 deletions app/Http/Controllers/Api/V1/AuthController.php
Original file line number Diff line number Diff line change
Expand Up @@ -3,9 +3,8 @@
namespace App\Http\Controllers\Api\V1;

use App\Traits\ApiResponser;
use App\User;
use App\Models\User;
use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\Hash;

Expand Down
29 changes: 29 additions & 0 deletions app/Http/Controllers/Api/V1/BookController.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
<?php

namespace App\Http\Controllers\Api\V1;

use App\Models\Book;
use App\Http\Resources\BookResource;
use Illuminate\Support\Facades\Cookie;

class BookController extends Controller
{
public function index()
{
return BookResource::collection(Book::with(['authors'])
->when(request('search'), function ($query) {
$search = request('search');
//Cookie::queue('search', $search);
$query->where('title', 'LIKE', "%{$search}%")
->orWhereHas('authors', function($query) use ($search){
$query->where('author', 'LIKE', "%{$search}%");
});
})
->isApproved()->latest()->get());
}

public function show(Book $book)
{
return BookResource::collection($book->with('reviews')->latest()->take(5)->get());
}
}
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
<?php

namespace App\Http\Controllers;
namespace App\Http\Controllers\Api\V1;

use Illuminate\Foundation\Auth\Access\AuthorizesRequests;
use Illuminate\Foundation\Bus\DispatchesJobs;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,22 +1,16 @@
<?php

namespace App\Http\Controllers;

use App\Book;
namespace App\Http\Controllers\Api\V1;
use App\Models\Book;

class HomeController extends Controller
{
public function __construct()
{
$this->middleware('auth');
}

public function index()
{
$books = Book::select('is_approved')->get();
$approved_book_count = $books->where('is_approved', true)->count();
$pending_book_count = $books->whereNull('is_approved')->count();
$rejected_book_count = $books->where('is_approved', false)->whereNotNull('is_approved')->count();
return view('home', compact('approved_book_count', 'pending_book_count', 'rejected_book_count'));
return [$approved_book_count, $pending_book_count, $rejected_book_count];
}
}
Original file line number Diff line number Diff line change
@@ -1,22 +1,23 @@
<?php

namespace App\Http\Controllers\User;
namespace App\Http\Controllers\Api\V1\User;

use App\Http\Requests\BookRequest;
use App\Http\Controllers\Controller;
use App\Http\Controllers\Api\V1\Controller;

use App\User;
use App\Models\User;
use Illuminate\Http\Request;
use App\Book;
use App\Author;
use App\Genre;
use App\Models\Book;
use App\Models\Author;
use App\Models\Genre;
use App\Services\ImageService;
use App\Services\TrimService;

class BookController extends Controller
{
public function index()
{

$books = Book::with('authors')->where('user_id', auth()->id())->isApproved()->latest()->simplePaginate(25);
return view('user.books.index', compact('books'));
}
Expand Down Expand Up @@ -59,14 +60,6 @@ public function show(Book $book)
return view('user.books.show', compact('book'));
}

public function edit($id)
{
$authors = Author::all();
$genres = Genre::all();
$book = Book::with(['authors', 'genres'])->findOrFail($id);
return view('user.books.edit', compact(['authors', 'genres', 'book']));
}

public function update(Request $request, $id)
{
$request->validate([
Expand Down
16 changes: 16 additions & 0 deletions app/Http/Controllers/Api/V1/User/ReportController.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
<?php

namespace App\Http\Controllers\Api\V1\User;

use App\Http\Controllers\Api\V1\Controller;
use App\Models\Report;
use App\Models\Book;

class ReportController extends Controller
{
public function store(Book $book){
if(Report::where('book_id', $book->id)->where('user_id', auth()->id())->exists()){
return redirect()->route('books.show', $book)->with('error', 'This book is already reported');
}
}
}
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
<?php

namespace App\Http\Controllers\User;
namespace App\Http\Controllers\Api\V1\User;

use App\Http\Controllers\Controller;
use App\Http\Controllers\Api\V1\Controller;
use App\Http\Requests\ReviewRequest;
use App\BookReview;
use App\Book;
use App\Models\BookReview;
use App\Models\Book;

class ReviewController extends Controller
{
Expand Down
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
<?php

namespace App\Http\Controllers\User;
namespace App\Http\Controllers\Api\V1\User;

use App\Http\Controllers\Controller;
use App\Http\Controllers\Api\V1\Controller;
use App\Http\Requests\SettingRequest;
use Illuminate\Support\Facades\Hash;

Expand Down
15 changes: 0 additions & 15 deletions app/Http/Controllers/BookController.php

This file was deleted.

27 changes: 0 additions & 27 deletions app/Http/Controllers/IndexController.php

This file was deleted.

21 changes: 0 additions & 21 deletions app/Http/Controllers/User/ReportController.php

This file was deleted.

26 changes: 26 additions & 0 deletions app/Http/Resources/BookResource.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
<?php

namespace App\Http\Resources;

use Illuminate\Http\Resources\Json\JsonResource;

class BookResource extends JsonResource
{
/**
* Transform the resource into an array.
*
* @param \Illuminate\Http\Request $request
* @return array
*/
public function toArray($request)
{
return [
'id' => $this->id,
'title' => $this->title,
'description' => $this->description,
'cover_image_url' => $this->cover_image_url,
'price' => $this->price,
'discount' => $this->discount
];
}
}
8 changes: 4 additions & 4 deletions app/Author.php → app/Models/Author.php
Original file line number Diff line number Diff line change
@@ -1,14 +1,14 @@
<?php

namespace App;
namespace App\Models;

use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;


use App\Book;

class Author extends Model
{
use HasFactory;

protected $fillable = [
'author'
];
Expand Down
5 changes: 4 additions & 1 deletion app/Book.php → app/Models/Book.php
Original file line number Diff line number Diff line change
@@ -1,11 +1,14 @@
<?php

namespace App;
namespace App\Models;

use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;

class Book extends Model
{
use HasFactory;

protected $fillable = [
'title', 'description', 'cover_image_url', 'price', 'discount'
];
Expand Down
Loading

0 comments on commit 642772b

Please sign in to comment.