From c3369e9868b9304844d6326bbf88f7ecb7f1029d Mon Sep 17 00:00:00 2001 From: ssterling Date: Fri, 2 Dec 2022 13:51:32 -0800 Subject: [PATCH 1/6] Add search by image funcitonality --- src/GettyImages_Client.php | 28 +++++ src/Request/FluentRequest.php | 18 +++ .../Search/SearchImagesCreativeByImage.php | 111 ++++++++++++++++++ .../Search/SearchVideosCreativeByImage.php | 111 ++++++++++++++++++ src/Request/WebHelper.php | 26 ++++ 5 files changed, 294 insertions(+) create mode 100644 src/Request/Search/SearchImagesCreativeByImage.php create mode 100644 src/Request/Search/SearchVideosCreativeByImage.php diff --git a/src/GettyImages_Client.php b/src/GettyImages_Client.php index 11a6701..4a4cbc0 100644 --- a/src/GettyImages_Client.php +++ b/src/GettyImages_Client.php @@ -28,6 +28,8 @@ require_once("Request/Videos/VideosSimilar.php"); require_once("Request/Search/SearchImages.php"); require_once("Request/Search/SearchImagesCreative.php"); + require_once("Request/Search/SearchImagesCreativeByImage.php"); + require_once("Request/Search/SearchVideosCreativeByImage.php"); require_once("Request/Search/SearchImagesEditorial.php"); require_once("Request/Search/SearchVideos.php"); require_once("Request/Search/SearchVideosCreative.php"); @@ -37,6 +39,8 @@ use GettyImages\Api\Request\Search\SearchImages; use GettyImages\Api\Request\Search\SearchImagesCreative; + use GettyImages\Api\Request\Search\SearchImagesCreativeByImage; + use GettyImages\Api\Request\Search\SearchVideosCreativeByImage; use GettyImages\Api\Request\Search\SearchImagesEditorial; use GettyImages\Api\Request\Search\SearchVideos; use GettyImages\Api\Request\Search\SearchVideosCreative; @@ -330,6 +334,18 @@ public function SearchImagesCreative() { return $searchImagesCreativeObj; } + /** + * SearchImagesCreativeByImage + * + * Search for creative Images by image + * + * @return SearchImagesCreativeByImage + */ + public function SearchImagesCreativeByImage() { + $searchImagesCreativeByImageObj = new SearchImagesCreativeByImage($this->credentials,$this->apiBaseUri,$this->container); + return $searchImagesCreativeByImageObj; + } + /** * SearchImagesEditorial * @@ -366,6 +382,18 @@ public function SearchVideosCreative() { return $searchVideosCreativeObj; } + /** + * SearchVideosCreativeByImage + * + * Search for creative Videos by image + * + * @return SearchVideosCreativeByImage + */ + public function SearchVideosCreativeByImage() { + $searchVideosCreativeByImageObj = new SearchVideosCreativeByImage($this->credentials,$this->apiBaseUri,$this->container); + return $searchVideosCreativeByImageObj; + } + /** * SearchVideosEditorial * diff --git a/src/Request/FluentRequest.php b/src/Request/FluentRequest.php index 3a40a9d..fd05db8 100644 --- a/src/Request/FluentRequest.php +++ b/src/Request/FluentRequest.php @@ -129,6 +129,24 @@ public function execute() { return $this->handleResponse($response); } + /** + * Upload image for SBI search + */ + protected function executeFileUpload(string $route, string $filepath) { + $endpointUrl = $this->endpointUri."/".$route; + + $this->options[CURLOPT_HTTPHEADER][] = "Api-Key:".$this->credentials->getApiKey(); + + $webHelper = new WebHelper($this->container); + + $response = $webHelper->putImageRequest($endpointUrl, + $this->requestDetails, + $this->options, + $filepath); + + return $this->handleResponse($response); + } + protected function handleResponse($response){ if(($response["http_code"] < 200 || $response["http_code"] >= 300) && $response['http_code'] != 303) { throw new \Exception("Non 200 status code returned: " .$response["http_code"] . "\nBody: ". $response["body"]); diff --git a/src/Request/Search/SearchImagesCreativeByImage.php b/src/Request/Search/SearchImagesCreativeByImage.php new file mode 100644 index 0000000..eb3e6a4 --- /dev/null +++ b/src/Request/Search/SearchImagesCreativeByImage.php @@ -0,0 +1,111 @@ +route; + } + + protected function getMethod() { + return "get"; + } + + /** + * @ignore + */ + private function addToBucket(string $filename, string $filepath) + { + $route = 'search/by-image/uploads/'.$filename; + $fileUrl = $this->endpointUri."/".$route; + self::executeFileUpload($route, $filepath); + return $fileUrl; + } + + public function addToBucketAndSearchAsync(string $filename, string $imageFilepath) + { + $url = self::addToBucket($filename, $imageFilepath); + echo $url; + return self::withImageUrl($url); + } + + /** + * @param int $pageNum + * @return $this + */ + public function withImageUrl(string $url) { + $this->requestDetails["image_url"] = $url; + return $this; + } + + /** + * @param int $pageNum + * @return $this + */ + public function withAssetId(string $assetId) { + $this->requestDetails["asset_id"] = $assetId; + return $this; + } + + /** + * Will set the search request to only return the fields provided. + * + * @param array $fields An array of field names to include in the response. + * this list isn't exclusive, default fields are always returned. + * @throws Exception + * @return $this + */ + public function withFields(array $fields) { + $this->addArrayOfValuesToRequestDetails("fields", $fields); + return $this; + } + + /** + * @param int $pageNum + * @return $this + */ + public function withPage(int $pageNum) { + $this->requestDetails["page"] = $pageNum; + return $this; + } + + /** + * @param int $pageSize + * @return $this + */ + public function withPageSize(int $pageSize) { + $this->requestDetails["page_size"] = $pageSize; + return $this; + } + + /** + * @param array $productTypes An array of product types by which to filter. + * @throws Exception + * @return $this + */ + public function withProductTypes(array $productTypes) { + $this->addArrayOfValuesToRequestDetails("product_types", $productTypes); + return $this; + } + + /** + * @param array $acceptLanguage Provide a header to specify the language of result values. + * @throws Exception + * @return $this + */ + public function withAcceptLanguage(string $acceptLanguage) { + $this->addHeader("Accept-Language", $acceptLanguage); + return $this; + } +} +} \ No newline at end of file diff --git a/src/Request/Search/SearchVideosCreativeByImage.php b/src/Request/Search/SearchVideosCreativeByImage.php new file mode 100644 index 0000000..3634574 --- /dev/null +++ b/src/Request/Search/SearchVideosCreativeByImage.php @@ -0,0 +1,111 @@ +route; + } + + protected function getMethod() { + return "get"; + } + + /** + * @ignore + */ + private function addToBucket(string $filename, string $filepath) + { + $route = 'search/by-image/uploads/'.$filename; + $fileUrl = $this->endpointUri."/".$route; + self::executeFileUpload($route, $filepath); + return $fileUrl; + } + + public function addToBucketAndSearchAsync(string $filename, string $imageFilepath) + { + $url = self::addToBucket($filename, $imageFilepath); + echo $url; + return self::withImageUrl($url); + } + + /** + * @param int $pageNum + * @return $this + */ + public function withImageUrl(string $url) { + $this->requestDetails["image_url"] = $url; + return $this; + } + + /** + * @param int $pageNum + * @return $this + */ + public function withAssetId(string $assetId) { + $this->requestDetails["asset_id"] = $assetId; + return $this; + } + + /** + * Will set the search request to only return the fields provided. + * + * @param array $fields An array of field names to include in the response. + * this list isn't exclusive, default fields are always returned. + * @throws Exception + * @return $this + */ + public function withFields(array $fields) { + $this->addArrayOfValuesToRequestDetails("fields", $fields); + return $this; + } + + /** + * @param int $pageNum + * @return $this + */ + public function withPage(int $pageNum) { + $this->requestDetails["page"] = $pageNum; + return $this; + } + + /** + * @param int $pageSize + * @return $this + */ + public function withPageSize(int $pageSize) { + $this->requestDetails["page_size"] = $pageSize; + return $this; + } + + /** + * @param array $productTypes An array of product types by which to filter. + * @throws Exception + * @return $this + */ + public function withProductTypes(array $productTypes) { + $this->addArrayOfValuesToRequestDetails("product_types", $productTypes); + return $this; + } + + /** + * @param array $acceptLanguage Provide a header to specify the language of result values. + * @throws Exception + * @return $this + */ + public function withAcceptLanguage(string $acceptLanguage) { + $this->addHeader("Accept-Language", $acceptLanguage); + return $this; + } +} +} \ No newline at end of file diff --git a/src/Request/WebHelper.php b/src/Request/WebHelper.php index 9f88d81..df3bab5 100644 --- a/src/Request/WebHelper.php +++ b/src/Request/WebHelper.php @@ -93,6 +93,32 @@ public function put($endpoint, $queryParams, array $options = array(), array $da return $result; } + /** + * Send a PUT requst using cURL + * @param string $url to request + * @param array $queryParams values to send + * @param array $options for cURL + * @param string $filepath of image to add + * @return string + */ + public function putImageRequest($endpoint, $queryParams, array $options = array(), string $filepath) { + + $image = fopen($filepath, "rb"); + + if(!array_key_exists(CURLOPT_HTTPHEADER, $options)) { + $options[CURLOPT_HTTPHEADER] = array(); + } + + array_push($options[CURLOPT_HTTPHEADER],'Content-Type: image/jpeg'); + $options[CURLOPT_PUT] = 1; + $options[CURLOPT_INFILE] = $image; + $options[CURLOPT_INFILESIZE] = filesize($filepath); + $options[CURLOPT_URL] = $endpoint; + $result = self::execute($options); + + return $result; + } + /** * Send a GET requst using cURL From 6783957c7dbe327c12c3d15056b0c2d593e601bf Mon Sep 17 00:00:00 2001 From: ssterling Date: Tue, 6 Dec 2022 11:23:41 -0800 Subject: [PATCH 2/6] Add unit tests --- .../Search/SearchImagesCreativeByImage.php | 1 - .../SearchImagesCreativeByImageTest.php | 122 ++++++++++++++++++ .../SearchVideosCreativeByImageTest.php | 122 ++++++++++++++++++ 3 files changed, 244 insertions(+), 1 deletion(-) create mode 100644 unitTests/Search/SearchImagesCreativeByImageTest.php create mode 100644 unitTests/Search/SearchVideosCreativeByImageTest.php diff --git a/src/Request/Search/SearchImagesCreativeByImage.php b/src/Request/Search/SearchImagesCreativeByImage.php index eb3e6a4..6385e31 100644 --- a/src/Request/Search/SearchImagesCreativeByImage.php +++ b/src/Request/Search/SearchImagesCreativeByImage.php @@ -35,7 +35,6 @@ private function addToBucket(string $filename, string $filepath) public function addToBucketAndSearchAsync(string $filename, string $imageFilepath) { $url = self::addToBucket($filename, $imageFilepath); - echo $url; return self::withImageUrl($url); } diff --git a/unitTests/Search/SearchImagesCreativeByImageTest.php b/unitTests/Search/SearchImagesCreativeByImageTest.php new file mode 100644 index 0000000..aa10699 --- /dev/null +++ b/unitTests/Search/SearchImagesCreativeByImageTest.php @@ -0,0 +1,122 @@ +build(); + $container->set('ICurler', $curlerMock); + + $client = GettyImages_Client::getClientWithClientCredentials("", "", $container); + + $search = $client->SearchImagesCreativeByImage()->withImageUrl("https://api.gettyimages.com/v3/search/by-image/uploads/my-test-image.jpg")->execute(); + $encodedUrl = urlencode("https://api.gettyimages.com/v3/search/by-image/uploads/my-test-image.jpg"); + $this->assertContains("search/images/creative/by-image", $curlerMock->options[CURLOPT_URL]); + $this->assertContains("image_url=".$encodedUrl, $curlerMock->options[CURLOPT_URL]); + } + + public function testSearchImagesCreativeByImageWithAssetId() + { + $curlerMock = new CurlerMock(); + $builder = new \DI\ContainerBuilder(); + $container = $builder->build(); + $container->set('ICurler', $curlerMock); + + $client = GettyImages_Client::getClientWithClientCredentials("", "", $container); + + $search = $client->SearchImagesCreativeByImage()->withAssetId("fakeasset")->execute(); + + $this->assertContains("search/images/creative/by-image", $curlerMock->options[CURLOPT_URL]); + $this->assertContains("asset_id=fakeasset", $curlerMock->options[CURLOPT_URL]); + } + + public function testSearchImagesCreativeByImageWithFields() + { + $curlerMock = new CurlerMock(); + $builder = new \DI\ContainerBuilder(); + $container = $builder->build(); + $container->set('ICurler', $curlerMock); + + $fields = array("asset_family", "id", "uri_oembed"); + + $client = GettyImages_Client::getClientWithClientCredentials("", "", $container); + + $search = $client->SearchImagesCreativeByImage()->withAssetId("fakeasset")->withFields($fields)->execute(); + + $this->assertContains("search/images/creative/by-image", $curlerMock->options[CURLOPT_URL]); + $this->assertContains("asset_id=fakeasset", $curlerMock->options[CURLOPT_URL]); + $this->assertContains("fields=asset_family%2Cid%2Curi_oembed", $curlerMock->options[CURLOPT_URL]); + } + + public function testSearchImagesCreativeByImageWithPage() + { + $curlerMock = new CurlerMock(); + $builder = new \DI\ContainerBuilder(); + $container = $builder->build(); + $container->set('ICurler', $curlerMock); + + $client = GettyImages_Client::getClientWithClientCredentials("", "", $container); + + $search = $client->SearchImagesCreativeByImage()->withAssetId("fakeasset")->withPage(3)->execute(); + + $this->assertContains("search/images/creative/by-image", $curlerMock->options[CURLOPT_URL]); + $this->assertContains("asset_id=fakeasset", $curlerMock->options[CURLOPT_URL]); + $this->assertContains("page=3", $curlerMock->options[CURLOPT_URL]); + } + + + public function testSearchImagesCreativeByImageWithPageSize() + { + $curlerMock = new CurlerMock(); + $builder = new \DI\ContainerBuilder(); + $container = $builder->build(); + $container->set('ICurler', $curlerMock); + + $client = GettyImages_Client::getClientWithClientCredentials("", "", $container); + + $search = $client->SearchImagesCreativeByImage()->withAssetId("fakeasset")->withPageSize(50)->execute(); + + $this->assertContains("search/images/creative/by-image", $curlerMock->options[CURLOPT_URL]); + $this->assertContains("asset_id=fakeasset", $curlerMock->options[CURLOPT_URL]); + $this->assertContains("page_size=50", $curlerMock->options[CURLOPT_URL]); + } + + public function testSearchImagesCreativeByImageWithProductTypes() + { + $curlerMock = new CurlerMock(); + $builder = new \DI\ContainerBuilder(); + $container = $builder->build(); + $container->set('ICurler', $curlerMock); + + $types = array("easyaccess", "editorialsubscription"); + + $client = GettyImages_Client::getClientWithClientCredentials("", "", $container); + + $search = $client->SearchImagesCreativeByImage()->withAssetId("fakeasset")->withProductTypes($types)->execute(); + + $this->assertContains("search/images/creative/by-image", $curlerMock->options[CURLOPT_URL]); + $this->assertContains("asset_id=fakeasset", $curlerMock->options[CURLOPT_URL]); + $this->assertContains("product_types=easyaccess%2Ceditorialsubscription", $curlerMock->options[CURLOPT_URL]); + } + + public function testSearchImagesCreativeByImageWithAcceptLanguage() + { + $curlerMock = new CurlerMock(); + $builder = new \DI\ContainerBuilder(); + $container = $builder->build(); + $container->set('ICurler', $curlerMock); + + $client = GettyImages_Client::getClientWithClientCredentials("", "", $container); + + $search = $client->SearchImagesCreativeByImage()->withAcceptLanguage("en-US")->execute(); + + $this->assertContains("search/images/creative/by-image", $curlerMock->options[CURLOPT_URL]); + $this->assertContains("Accept-Language: en-US", $curlerMock->options[CURLOPT_HTTPHEADER]); + } +} \ No newline at end of file diff --git a/unitTests/Search/SearchVideosCreativeByImageTest.php b/unitTests/Search/SearchVideosCreativeByImageTest.php new file mode 100644 index 0000000..dd309c5 --- /dev/null +++ b/unitTests/Search/SearchVideosCreativeByImageTest.php @@ -0,0 +1,122 @@ +build(); + $container->set('ICurler', $curlerMock); + + $client = GettyImages_Client::getClientWithClientCredentials("", "", $container); + + $search = $client->SearchVideosCreativeByImage()->withImageUrl("https://api.gettyimages.com/v3/search/by-image/uploads/my-test-image.jpg")->execute(); + $encodedUrl = urlencode("https://api.gettyimages.com/v3/search/by-image/uploads/my-test-image.jpg"); + $this->assertContains("search/videos/creative/by-image", $curlerMock->options[CURLOPT_URL]); + $this->assertContains("image_url=".$encodedUrl, $curlerMock->options[CURLOPT_URL]); + } + + public function testSearchVideosCreativeByImageWithAssetId() + { + $curlerMock = new CurlerMock(); + $builder = new \DI\ContainerBuilder(); + $container = $builder->build(); + $container->set('ICurler', $curlerMock); + + $client = GettyImages_Client::getClientWithClientCredentials("", "", $container); + + $search = $client->SearchVideosCreativeByImage()->withAssetId("fakeasset")->execute(); + + $this->assertContains("search/videos/creative/by-image", $curlerMock->options[CURLOPT_URL]); + $this->assertContains("asset_id=fakeasset", $curlerMock->options[CURLOPT_URL]); + } + + public function testSearchVideosCreativeByImageWithFields() + { + $curlerMock = new CurlerMock(); + $builder = new \DI\ContainerBuilder(); + $container = $builder->build(); + $container->set('ICurler', $curlerMock); + + $fields = array("asset_family", "id", "uri_oembed"); + + $client = GettyImages_Client::getClientWithClientCredentials("", "", $container); + + $search = $client->SearchVideosCreativeByImage()->withAssetId("fakeasset")->withFields($fields)->execute(); + + $this->assertContains("search/videos/creative/by-image", $curlerMock->options[CURLOPT_URL]); + $this->assertContains("asset_id=fakeasset", $curlerMock->options[CURLOPT_URL]); + $this->assertContains("fields=asset_family%2Cid%2Curi_oembed", $curlerMock->options[CURLOPT_URL]); + } + + public function testSearchVideosCreativeByImageWithPage() + { + $curlerMock = new CurlerMock(); + $builder = new \DI\ContainerBuilder(); + $container = $builder->build(); + $container->set('ICurler', $curlerMock); + + $client = GettyImages_Client::getClientWithClientCredentials("", "", $container); + + $search = $client->SearchVideosCreativeByImage()->withAssetId("fakeasset")->withPage(3)->execute(); + + $this->assertContains("search/videos/creative/by-image", $curlerMock->options[CURLOPT_URL]); + $this->assertContains("asset_id=fakeasset", $curlerMock->options[CURLOPT_URL]); + $this->assertContains("page=3", $curlerMock->options[CURLOPT_URL]); + } + + + public function testSearchVideosCreativeByImageWithPageSize() + { + $curlerMock = new CurlerMock(); + $builder = new \DI\ContainerBuilder(); + $container = $builder->build(); + $container->set('ICurler', $curlerMock); + + $client = GettyImages_Client::getClientWithClientCredentials("", "", $container); + + $search = $client->SearchVideosCreativeByImage()->withAssetId("fakeasset")->withPageSize(50)->execute(); + + $this->assertContains("search/videos/creative/by-image", $curlerMock->options[CURLOPT_URL]); + $this->assertContains("asset_id=fakeasset", $curlerMock->options[CURLOPT_URL]); + $this->assertContains("page_size=50", $curlerMock->options[CURLOPT_URL]); + } + + public function testSearchVideosCreativeByImageWithProductTypes() + { + $curlerMock = new CurlerMock(); + $builder = new \DI\ContainerBuilder(); + $container = $builder->build(); + $container->set('ICurler', $curlerMock); + + $types = array("easyaccess", "editorialsubscription"); + + $client = GettyImages_Client::getClientWithClientCredentials("", "", $container); + + $search = $client->SearchVideosCreativeByImage()->withAssetId("fakeasset")->withProductTypes($types)->execute(); + + $this->assertContains("search/videos/creative/by-image", $curlerMock->options[CURLOPT_URL]); + $this->assertContains("asset_id=fakeasset", $curlerMock->options[CURLOPT_URL]); + $this->assertContains("product_types=easyaccess%2Ceditorialsubscription", $curlerMock->options[CURLOPT_URL]); + } + + public function testSearchVideosCreativeByImageWithAcceptLanguage() + { + $curlerMock = new CurlerMock(); + $builder = new \DI\ContainerBuilder(); + $container = $builder->build(); + $container->set('ICurler', $curlerMock); + + $client = GettyImages_Client::getClientWithClientCredentials("", "", $container); + + $search = $client->SearchVideosCreativeByImage()->withAcceptLanguage("en-US")->execute(); + + $this->assertContains("search/videos/creative/by-image", $curlerMock->options[CURLOPT_URL]); + $this->assertContains("Accept-Language: en-US", $curlerMock->options[CURLOPT_HTTPHEADER]); + } +} \ No newline at end of file From b427e971ded99a793d5e464a034c57cdb426c97f Mon Sep 17 00:00:00 2001 From: ssterling Date: Tue, 6 Dec 2022 11:33:58 -0800 Subject: [PATCH 3/6] Add examples --- examples/searchbyimage.php | 27 +++++++++++++++++++ .../Search/SearchVideosCreativeByImage.php | 1 - 2 files changed, 27 insertions(+), 1 deletion(-) create mode 100644 examples/searchbyimage.php diff --git a/examples/searchbyimage.php b/examples/searchbyimage.php new file mode 100644 index 0000000..1cbaaea --- /dev/null +++ b/examples/searchbyimage.php @@ -0,0 +1,27 @@ +#!/usr/bin/env php + +SearchImagesCreativeByImage()->addToBucketAndSearchAsync($filename, $filepath)->execute(); + +echo $uploadedImageResponse; + +//Search by GettyImages asset id: +$assetId = "1194409229"; + +$assetIdResponse = $client->SearchImagesCreativeByImage()->withAssetId($assetId)->execute(); + +echo $assetIdResponse; diff --git a/src/Request/Search/SearchVideosCreativeByImage.php b/src/Request/Search/SearchVideosCreativeByImage.php index 3634574..cbe79fd 100644 --- a/src/Request/Search/SearchVideosCreativeByImage.php +++ b/src/Request/Search/SearchVideosCreativeByImage.php @@ -35,7 +35,6 @@ private function addToBucket(string $filename, string $filepath) public function addToBucketAndSearchAsync(string $filename, string $imageFilepath) { $url = self::addToBucket($filename, $imageFilepath); - echo $url; return self::withImageUrl($url); } From e62fc195c935c52133696224af8e8a9072b58f4d Mon Sep 17 00:00:00 2001 From: ssterling Date: Tue, 6 Dec 2022 15:00:34 -0800 Subject: [PATCH 4/6] Update param names --- examples/searchbyimage.php | 6 +++--- src/Request/Search/SearchImagesCreativeByImage.php | 6 +++--- src/Request/Search/SearchVideosCreativeByImage.php | 6 +++--- 3 files changed, 9 insertions(+), 9 deletions(-) diff --git a/examples/searchbyimage.php b/examples/searchbyimage.php index 1cbaaea..5ba0f0b 100644 --- a/examples/searchbyimage.php +++ b/examples/searchbyimage.php @@ -12,10 +12,10 @@ $client = GettyImages_Client::getClientWithResourceOwnerCredentials("$apiKey", "$apiSecret", "$user", "$password"); //Upload image to bucket and search: -$filename = "testimage.jpg"; -$filepath = "filepath/to/testimage.jpg"; +$destFilename = "testimage.jpg"; +$sourceFilepath = "filepath/to/testimage.jpg"; -$uploadedImageResponse = $client->SearchImagesCreativeByImage()->addToBucketAndSearchAsync($filename, $filepath)->execute(); +$uploadedImageResponse = $client->SearchImagesCreativeByImage()->addToBucketAndSearchAsync($destFilename, $sourceFilepath)->execute(); echo $uploadedImageResponse; diff --git a/src/Request/Search/SearchImagesCreativeByImage.php b/src/Request/Search/SearchImagesCreativeByImage.php index 6385e31..84fd0ee 100644 --- a/src/Request/Search/SearchImagesCreativeByImage.php +++ b/src/Request/Search/SearchImagesCreativeByImage.php @@ -24,11 +24,11 @@ protected function getMethod() { /** * @ignore */ - private function addToBucket(string $filename, string $filepath) + private function addToBucket(string $destFilename, string $sourceFilepath) { - $route = 'search/by-image/uploads/'.$filename; + $route = 'search/by-image/uploads/'.$destFilename; $fileUrl = $this->endpointUri."/".$route; - self::executeFileUpload($route, $filepath); + self::executeFileUpload($route, $sourceFilepath); return $fileUrl; } diff --git a/src/Request/Search/SearchVideosCreativeByImage.php b/src/Request/Search/SearchVideosCreativeByImage.php index cbe79fd..5529073 100644 --- a/src/Request/Search/SearchVideosCreativeByImage.php +++ b/src/Request/Search/SearchVideosCreativeByImage.php @@ -24,11 +24,11 @@ protected function getMethod() { /** * @ignore */ - private function addToBucket(string $filename, string $filepath) + private function addToBucket(string $destFilename, string $sourceFilepath) { - $route = 'search/by-image/uploads/'.$filename; + $route = 'search/by-image/uploads/'.$destFilename; $fileUrl = $this->endpointUri."/".$route; - self::executeFileUpload($route, $filepath); + self::executeFileUpload($route, $sourceFilepath); return $fileUrl; } From e56e34d3ba1da1770f9efa178085747881bdec1c Mon Sep 17 00:00:00 2001 From: ssterling Date: Tue, 6 Dec 2022 15:53:25 -0800 Subject: [PATCH 5/6] Update param names --- src/Request/Search/SearchImagesCreativeByImage.php | 4 ++-- src/Request/Search/SearchVideosCreativeByImage.php | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/Request/Search/SearchImagesCreativeByImage.php b/src/Request/Search/SearchImagesCreativeByImage.php index 84fd0ee..557eb3b 100644 --- a/src/Request/Search/SearchImagesCreativeByImage.php +++ b/src/Request/Search/SearchImagesCreativeByImage.php @@ -32,9 +32,9 @@ private function addToBucket(string $destFilename, string $sourceFilepath) return $fileUrl; } - public function addToBucketAndSearchAsync(string $filename, string $imageFilepath) + public function addToBucketAndSearch(string $destFilename, string $sourceFilepath) { - $url = self::addToBucket($filename, $imageFilepath); + $url = self::addToBucket($destFilename, $sourceFilepath); return self::withImageUrl($url); } diff --git a/src/Request/Search/SearchVideosCreativeByImage.php b/src/Request/Search/SearchVideosCreativeByImage.php index 5529073..545a5f9 100644 --- a/src/Request/Search/SearchVideosCreativeByImage.php +++ b/src/Request/Search/SearchVideosCreativeByImage.php @@ -32,9 +32,9 @@ private function addToBucket(string $destFilename, string $sourceFilepath) return $fileUrl; } - public function addToBucketAndSearchAsync(string $filename, string $imageFilepath) + public function addToBucketAndSearch(string $destFilename, string $sourceFilepath) { - $url = self::addToBucket($filename, $imageFilepath); + $url = self::addToBucket($destFilename, $sourceFilepath); return self::withImageUrl($url); } From 89bd2c3a43177d24505cf05937ad93315d559483 Mon Sep 17 00:00:00 2001 From: ssterling Date: Tue, 6 Dec 2022 15:56:33 -0800 Subject: [PATCH 6/6] Update example --- examples/searchbyimage.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/examples/searchbyimage.php b/examples/searchbyimage.php index 5ba0f0b..04a9d6a 100644 --- a/examples/searchbyimage.php +++ b/examples/searchbyimage.php @@ -15,7 +15,7 @@ $destFilename = "testimage.jpg"; $sourceFilepath = "filepath/to/testimage.jpg"; -$uploadedImageResponse = $client->SearchImagesCreativeByImage()->addToBucketAndSearchAsync($destFilename, $sourceFilepath)->execute(); +$uploadedImageResponse = $client->SearchImagesCreativeByImage()->addToBucketAndSearch($destFilename, $sourceFilepath)->execute(); echo $uploadedImageResponse;