Skip to content

Commit 6d8c967

Browse files
committed
Allow to override Book class
1 parent 9f3c9d3 commit 6d8c967

20 files changed

+160
-112
lines changed

config/titelive-client.php

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,4 +16,5 @@
1616
],
1717
],
1818
],
19+
'book_model_class' => \Code16\LaravelTiteliveClient\Models\Book::class,
1920
];

database/factories/BookFactory.php

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,13 +2,11 @@
22

33
namespace Code16\LaravelTiteliveClient\Database\Factories;
44

5-
use Code16\LaravelTiteliveClient\Book;
5+
66
use Illuminate\Database\Eloquent\Factories\Factory;
77

88
class BookFactory extends Factory
99
{
10-
protected $model = Book::class;
11-
1210
private static int $VISUAL_INDEX = 0;
1311

1412
private static array $VISUALS = [
@@ -75,6 +73,11 @@ class BookFactory extends Factory
7573
'613/9782075150613',
7674
];
7775

76+
public function modelName()
77+
{
78+
return config('titelive-client.book_model_class');
79+
}
80+
7881
public function definition()
7982
{
8083
return [

src/Api/Clients/BookCache.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
namespace Code16\LaravelTiteliveClient\Api\Clients;
44

5-
use Code16\LaravelTiteliveClient\Book;
5+
use Code16\LaravelTiteliveClient\Models\Book;
66

77
interface BookCache
88
{

src/Api/Clients/BookCacheMockForDev.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
namespace Code16\LaravelTiteliveClient\Api\Clients;
44

5-
use Code16\LaravelTiteliveClient\Book;
5+
use Code16\LaravelTiteliveClient\Models\Book;
66

77
class BookCacheMockForDev implements BookCache
88
{

src/Api/Clients/BookDirectoryClient.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
namespace Code16\LaravelTiteliveClient\Api\Clients;
44

5-
use Code16\LaravelTiteliveClient\Book;
5+
use Code16\LaravelTiteliveClient\Models\Book;
66
use Illuminate\Support\Collection;
77

88
interface BookDirectoryClient

src/Api/Clients/BookDirectoryMockClientForDev.php

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,14 @@
22

33
namespace Code16\LaravelTiteliveClient\Api\Clients;
44

5-
use Code16\LaravelTiteliveClient\Book;
5+
use Code16\LaravelTiteliveClient\Concerns\UsesBookModel;
6+
use Code16\LaravelTiteliveClient\Models\Book;
67
use Illuminate\Support\Collection;
78

89
class BookDirectoryMockClientForDev implements BookDirectoryClient
910
{
11+
use UsesBookModel;
12+
1013
private array $params = [];
1114

1215
public function getParams(): array

src/Api/Clients/RandomBasedOnRefreshDateBookCache.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44

55
use Carbon\Carbon;
66
use Code16\LaravelTiteliveClient\Api\FindBook;
7-
use Code16\LaravelTiteliveClient\Book;
7+
use Code16\LaravelTiteliveClient\Models\Book;
88

99
/**
1010
* This cache strategy is based on a simple rule:

src/Api/Clients/TiteLive/TiteLiveClient.php

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,8 @@
55
use Cache;
66
use Carbon\Carbon;
77
use Code16\LaravelTiteliveClient\Api\Clients\BookDirectoryClient;
8-
use Code16\LaravelTiteliveClient\Book;
8+
use Code16\LaravelTiteliveClient\Concerns\UsesBookModel;
9+
use Code16\LaravelTiteliveClient\Models\Book;
910
use GuzzleHttp\Cookie\SetCookie;
1011
use Illuminate\Http\Client\RequestException;
1112
use Illuminate\Support\Arr;
@@ -16,6 +17,8 @@
1617

1718
class TiteLiveClient implements BookDirectoryClient
1819
{
20+
use UsesBookModel;
21+
1922
protected string $endpoint;
2023

2124
protected string $login_endpoint;
@@ -282,7 +285,7 @@ private function mapBookFromApiResult(array $book, array $edition): ?Book
282285
return null;
283286
}
284287

285-
return new Book([
288+
return static::bookModelClass()::make([
286289
'id' => $edition['gencod'],
287290
'title' => $book['titre'],
288291
'description' => $edition['resume'] ?? null,

src/Api/SuggestBooksFromAuthors.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
namespace Code16\LaravelTiteliveClient\Api;
44

55
use Code16\LaravelTiteliveClient\Api\Clients\BookDirectoryClient;
6-
use Code16\LaravelTiteliveClient\Book;
6+
use Code16\LaravelTiteliveClient\Models\Book;
77
use Illuminate\Support\Collection;
88

99
class SuggestBooksFromAuthors extends CacheableAction

src/Api/SuggestOtherEditions.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
namespace Code16\LaravelTiteliveClient\Api;
44

55
use Code16\LaravelTiteliveClient\Api\Clients\BookDirectoryClient;
6-
use Code16\LaravelTiteliveClient\Book;
6+
use Code16\LaravelTiteliveClient\Models\Book;
77
use Illuminate\Support\Collection;
88

99
class SuggestOtherEditions extends CacheableAction

0 commit comments

Comments
 (0)