diff --git a/src/Quintype/Api.php b/src/Quintype/Api.php index eb3917c..912703d 100644 --- a/src/Quintype/Api.php +++ b/src/Quintype/Api.php @@ -40,6 +40,11 @@ public function executeBulk() return $this->bulk->executeBulk(); } + public function executeBulkCached() + { + return $this->bulk->executeBulkCached(); + } + public function getBulkResponse($name, $showAltInPage = '') { return $this->bulk->getBulkResponse($name, $showAltInPage); @@ -185,6 +190,11 @@ public function bulkCollections($requestPayload) { return $this->collections->bulkCollections($requestPayload); } + public function bulkCollectionsCached($requestPayload) + { + return $this->collections->bulkCollectionsCached($requestPayload); + } + //Version 1.12.0 onwards public function getEntity($entityId = '', $params = []) { return $this->entities->getEntity($entityId, $params); diff --git a/src/Quintype/Api/BaseFunctions.php b/src/Quintype/Api/BaseFunctions.php index a0344d3..00a5a7d 100644 --- a/src/Quintype/Api/BaseFunctions.php +++ b/src/Quintype/Api/BaseFunctions.php @@ -69,4 +69,12 @@ public function removeDateFromSlug($storySlug){ return $storySlug; } } + + public function reorderKeys($arr, $order) { + $output = []; + foreach($order as $key => $val) { + $output[$key] = $arr[$key]; + } + return $output; + } } diff --git a/src/Quintype/Api/Bulk.php b/src/Quintype/Api/Bulk.php index ae24377..b8e8610 100644 --- a/src/Quintype/Api/Bulk.php +++ b/src/Quintype/Api/Bulk.php @@ -19,13 +19,13 @@ public function addBulkRequest($name, $request, $params) return $this; } - public function executeBulk() + private function doExecuteBulk($path) { $requests = []; foreach ($this->requests as $key => $value) { $requests[$key] = $value->toBulkRequest(); } - $apiResponse = $this->getStories($requests); + $apiResponse = $this->getStories($requests, $path); $responses = []; foreach ($this->requests as $key => $value) { $responses[$key] = $value->fromBulkResponse($apiResponse[$key]); @@ -33,6 +33,16 @@ public function executeBulk() $this->responses = $responses; } + public function executeBulk() + { + return $this->doExecuteBulk('/api/v1/bulk'); + } + + public function executeBulkCached() + { + return $this->doExecuteBulk('/api/v1/bulk-request'); + } + public function getBulkResponse($name, $showAltInPage = '') { if ($showAltInPage === '') { @@ -42,11 +52,9 @@ public function getBulkResponse($name, $showAltInPage = '') } } - private function getStories($requestPayload) + private function getStories($requestPayload, $query) { - $query = '/api/v1/bulk'; $response = $this->base->postRequest($query, ['requests' => $requestPayload]); - return $response['results']; } diff --git a/src/Quintype/Api/Collections.php b/src/Quintype/Api/Collections.php index 3628096..a61eb40 100644 --- a/src/Quintype/Api/Collections.php +++ b/src/Quintype/Api/Collections.php @@ -44,4 +44,9 @@ public function bulkCollections($requestPayload) return $response['results']; } + + public function bulkCollectionsCached($requestPayload) { + $response = $this->base->postRequest('/api/v1/bulk-request', ['requests' => $requestPayload]); + return $this->base->reorderKeys($response['results'], $requestPayload); + } }