BookController   A
last analyzed

Complexity

Total Complexity 4

Size/Duplication

Total Lines 46
Duplicated Lines 0 %

Importance

Changes 0
Metric Value
wmc 4
eloc 14
c 0
b 0
f 0
dl 0
loc 46
rs 10

2 Methods

Rating   Name   Duplication   Size   Complexity  
A createBook() 0 11 2
A deleteBook() 0 9 2
1
<?php
2
3
namespace Ikechukwukalu\Requirepin\Tests\Controllers;
4
5
use Ikechukwukalu\Requirepin\Tests\Requests\CreateBookRequest;
6
use Ikechukwukalu\Requirepin\Traits\Helpers;
7
use Ikechukwukalu\Requirepin\Tests\Models\Book;
8
use Illuminate\Foundation\Auth\Access\AuthorizesRequests;
9
use Illuminate\Foundation\Bus\DispatchesJobs;
10
use Illuminate\Foundation\Validation\ValidatesRequests;
11
use Illuminate\Routing\Controller as BaseController;
12
use Illuminate\Http\JsonResponse;
13
use Illuminate\Http\RedirectResponse;
14
use Illuminate\Http\Response;
15
use Illuminate\Http\Request;
16
17
class BookController extends BaseController
18
{
19
    use AuthorizesRequests, DispatchesJobs, ValidatesRequests;
20
    use Helpers;
0 ignored issues
show
Bug introduced by
The trait Ikechukwukalu\Requirepin\Traits\Helpers requires the property $ip which is not provided by Ikechukwukalu\Requirepin...trollers\BookController.
Loading history...
21
22
    /**
23
     * Create Book.
24
     *
25
     * @param \Ikechukwukalu\Requirepin\Tests\Requests\CreateBookRequest $request
26
     *
27
     * @return \Illuminate\Http\JsonResponse
28
     * @return \Illuminate\Http\RedirectResponse
29
     * @return \Illuminate\Http\Response
30
     */
31
    public function createBook(CreateBookRequest $request): JsonResponse|RedirectResponse|Response
32
    {
33
        $validated = $request->validated();
34
35
        if ($book = Book::create($validated)) {
36
            $data = $book;
37
            return $this->httpResponse($request, trans('requirepin::general.success'), 200, $data);
0 ignored issues
show
Bug Best Practice introduced by
The expression return $this->httpRespon....success'), 200, $data) also could return the type Illuminate\Http\RedirectResponse which is incompatible with the documented return type Illuminate\Http\JsonResponse.
Loading history...
38
        }
39
40
        $data = ['message' => 'Book could not be created'];
41
        return $this->httpResponse($request, trans('requirepin::general.fail'), 500, $data);
0 ignored issues
show
Bug Best Practice introduced by
The expression return $this->httpRespon...ral.fail'), 500, $data) also could return the type Illuminate\Http\RedirectResponse which is incompatible with the documented return type Illuminate\Http\JsonResponse.
Loading history...
42
    }
43
44
    /**
45
     * Delete Book.
46
     *
47
     * @param Illuminate\Http\Request $request
0 ignored issues
show
Bug introduced by
The type Ikechukwukalu\Requirepin...Illuminate\Http\Request was not found. Did you mean Illuminate\Http\Request? If so, make sure to prefix the type with \.
Loading history...
48
     * @param int $id
49
     *
50
     * @return \Illuminate\Http\JsonResponse
51
     * @return \Illuminate\Http\RedirectResponse
52
     * @return \Illuminate\Http\Response
53
     */
54
    public function deleteBook(Request $request, int $id): JsonResponse|RedirectResponse|Response
55
    {
56
        if (Book::where('id', $id)->delete()) {
57
            $data = Book::withTrashed()->find($id);
58
            return $this->httpResponse($request, trans('requirepin::general.success'), 200, $data);
0 ignored issues
show
Bug Best Practice introduced by
The expression return $this->httpRespon....success'), 200, $data) also could return the type Illuminate\Http\RedirectResponse which is incompatible with the documented return type Illuminate\Http\JsonResponse.
Loading history...
59
        }
60
61
        $data = ['message' => 'Book could not be deleted'];
62
        return $this->httpResponse($request, trans('requirepin::general.fail'), 500, $data);
0 ignored issues
show
Bug Best Practice introduced by
The expression return $this->httpRespon...ral.fail'), 500, $data) also could return the type Illuminate\Http\RedirectResponse which is incompatible with the documented return type Illuminate\Http\JsonResponse.
Loading history...
63
    }
64
}
65