Passed
Push — main ( 0102e4...bd0fdb )
by ikechukwu
11:41
created

BookController::createBook()   A

Complexity

Conditions 2
Paths 2

Size

Total Lines 11
Code Lines 6

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
eloc 6
c 0
b 0
f 0
dl 0
loc 11
rs 10
cc 2
nc 2
nop 1
1
<?php
2
3
namespace Ikechukwukalu\Requirepin\Tests\Controllers;
4
5
use Ikechukwukalu\Requirepin\Controllers\Controller;
6
use Ikechukwukalu\Requirepin\Requests\CreateBookRequest;
7
use Ikechukwukalu\Requirepin\Traits\Helpers;
8
use Ikechukwukalu\Requirepin\Tests\Models\Book;
9
use Illuminate\Http\JsonResponse;
10
use Illuminate\Http\RedirectResponse;
11
use Illuminate\Http\Response;
12
use Illuminate\Http\Request;
13
use Illuminate\Support\Facades\Http;
14
use Illuminate\Support\Facades\Validator;
15
use Illuminate\Validation\Rule;
16
17
class BookController extends Controller
18
{
19
    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...
20
21
    /**
22
     * Create Book.
23
     *
24
     * @param \Ikechukwukalu\Requirepin\Requests\CreateBookRequest $request
25
     *
26
     * @return \Illuminate\Http\JsonResponse
27
     * @return \Illuminate\Http\RedirectResponse
28
     * @return \Illuminate\Http\Response
29
     */
30
    public function createBook(CreateBookRequest $request): JsonResponse|RedirectResponse|Response
31
    {
32
        $validated = $request->validated();
33
34
        if ($book = Book::create($validated)) {
35
            $data = $book;
36
            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...
37
        }
38
39
        $data = ['message' => 'Book could not be created'];
40
        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...
41
    }
42
43
    /**
44
     * Delete Book.
45
     *
46
     * @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...
47
     * @param int $id
48
     *
49
     * @return \Illuminate\Http\JsonResponse
50
     * @return \Illuminate\Http\RedirectResponse
51
     * @return \Illuminate\Http\Response
52
     */
53
    public function deleteBook(Request $request, int $id): JsonResponse|RedirectResponse|Response
54
    {
55
        if (Book::where('id', $id)->delete()) {
56
            $data = Book::withTrashed()->find($id);
57
            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...
58
        }
59
60
        $data = ['message' => 'Book could not be deleted'];
61
        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...
62
    }
63
}
64