From 82e926b72054813d0f543472239d41530e34e95f Mon Sep 17 00:00:00 2001 From: Tom Shaw Date: Thu, 18 Apr 2024 13:08:46 -0500 Subject: [PATCH] feat: Added Google Books GoogleApi accessor with get and list volumes methods. --- config/config.php | 1 + src/GoogleApiManager.php | 10 +++++-- src/GoogleClient.php | 2 +- .../Resources/AccessTokenResource.php | 2 +- src/Resources/GoogleBooks.php | 28 +++++++++++++++++++ src/{Api => Resources}/GoogleCalendar.php | 2 +- src/{Api => Resources}/GoogleMail.php | 5 +--- tests/GoogleApiTest.php | 4 +-- 8 files changed, 43 insertions(+), 11 deletions(-) rename src/{ => Http}/Resources/AccessTokenResource.php (95%) create mode 100644 src/Resources/GoogleBooks.php rename src/{Api => Resources}/GoogleCalendar.php (99%) rename src/{Api => Resources}/GoogleMail.php (99%) diff --git a/config/config.php b/config/config.php index d74b909..0abc35d 100644 --- a/config/config.php +++ b/config/config.php @@ -52,5 +52,6 @@ 'service_scopes' => [ Google\Service\Calendar::CALENDAR, Google\Service\Gmail::GMAIL_SEND, + Google\Service\Books::BOOKS, ], ]; diff --git a/src/GoogleApiManager.php b/src/GoogleApiManager.php index 6c780d9..f43b8c5 100644 --- a/src/GoogleApiManager.php +++ b/src/GoogleApiManager.php @@ -2,11 +2,17 @@ namespace TomShaw\GoogleApi; -use TomShaw\GoogleApi\Api\GoogleCalendar; -use TomShaw\GoogleApi\Api\GoogleMail; +use TomShaw\GoogleApi\Resources\GoogleBooks; +use TomShaw\GoogleApi\Resources\GoogleCalendar; +use TomShaw\GoogleApi\Resources\GoogleMail; class GoogleApiManager { + public function books(): GoogleBooks + { + return new GoogleBooks(app(GoogleClient::class)); + } + public function gmail(): GoogleMail { return new GoogleMail(app(GoogleClient::class)); diff --git a/src/GoogleClient.php b/src/GoogleClient.php index 1a90a5e..4eef341 100644 --- a/src/GoogleClient.php +++ b/src/GoogleClient.php @@ -5,8 +5,8 @@ use Google\Client; use Illuminate\Support\Facades\Validator; use TomShaw\GoogleApi\Exceptions\GoogleClientException; +use TomShaw\GoogleApi\Http\Resources\AccessTokenResource; use TomShaw\GoogleApi\Models\StorageCollection; -use TomShaw\GoogleApi\Resources\AccessTokenResource; use TomShaw\GoogleApi\Storage\StorageAdapterInterface; class GoogleClient diff --git a/src/Resources/AccessTokenResource.php b/src/Http/Resources/AccessTokenResource.php similarity index 95% rename from src/Resources/AccessTokenResource.php rename to src/Http/Resources/AccessTokenResource.php index d6d2d39..2f2e004 100644 --- a/src/Resources/AccessTokenResource.php +++ b/src/Http/Resources/AccessTokenResource.php @@ -1,6 +1,6 @@ service = new Books($client()); + } + + public function get(string $volumeId, array $optParams = []): Volume + { + return $this->service->volumes->get($volumeId, $optParams); + } + + public function listVolumes(string $query, array $optParams = []): Volumes + { + return $this->service->volumes->listVolumes($query, $optParams); + } +} diff --git a/src/Api/GoogleCalendar.php b/src/Resources/GoogleCalendar.php similarity index 99% rename from src/Api/GoogleCalendar.php rename to src/Resources/GoogleCalendar.php index cd545f7..fb8df6a 100644 --- a/src/Api/GoogleCalendar.php +++ b/src/Resources/GoogleCalendar.php @@ -1,6 +1,6 @@