Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit 551ef2b

Browse files
authored
Add support for reorderMetadataFields Admin API
1 parent 211f0a0 commit 551ef2b

File tree

3 files changed

+93
-0
lines changed

3 files changed

+93
-0
lines changed

src/Api/Admin/MetadataFieldsTrait.php

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -200,4 +200,23 @@ public function reorderMetadataFieldDatasource($fieldExternalId, $orderBy, $dire
200200

201201
return $this->apiClient->postJson($uri, $params);
202202
}
203+
204+
/**
205+
* Reorders metadata fields.
206+
*
207+
* @param string $orderBy Criteria for the order (one of the fields 'label', 'external_id', 'created_at').
208+
* @param string $direction Optional (gets either asc or desc).
209+
*
210+
* @return ApiResponse
211+
*/
212+
public function reorderMetadataFields($orderBy, $direction = null)
213+
{
214+
$uri = [ApiEndPoint::METADATA_FIELDS, 'order'];
215+
$params = [
216+
'order_by' => $orderBy,
217+
'direction' => $direction,
218+
];
219+
220+
return $this->apiClient->putJson($uri, $params);
221+
}
203222
}

tests/Helpers/RequestAssertionsTrait.php

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,17 @@ protected static function assertRequestDelete(RequestInterface $request, $messag
5656
self::assertEquals('DELETE', $request->getMethod(), $message);
5757
}
5858

59+
/**
60+
* Assert the HTTP request method is PUT.
61+
*
62+
* @param RequestInterface $request
63+
* @param string $message
64+
*/
65+
protected static function assertRequestPut(RequestInterface $request, $message = 'HTTP method should be PUT')
66+
{
67+
self::assertEquals('PUT', $request->getMethod(), $message);
68+
}
69+
5970
/**
6071
* Asserts that a request contains the expected fields and values.
6172
*

tests/Unit/Admin/MetadataFieldsTest.php

Lines changed: 63 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -160,4 +160,67 @@ public function testDeleteMetadataField()
160160
self::assertRequestDelete($lastRequest);
161161
self::assertRequestFields($lastRequest);
162162
}
163+
164+
/**
165+
* Test the reorder of metadata fields for label order by asc.
166+
*/
167+
public function testReorderMetadataFieldsByLabel()
168+
{
169+
$mockAdminApi = new MockAdminApi();
170+
171+
$mockAdminApi->reorderMetadataFields('label', 'asc');
172+
$lastRequest = $mockAdminApi->getMockHandler()->getLastRequest();
173+
174+
self::assertRequestUrl(
175+
$lastRequest,
176+
'/metadata_fields/order'
177+
);
178+
self::assertRequestPut($lastRequest);
179+
self::assertRequestJsonBodySubset(
180+
$lastRequest,
181+
['order_by' => 'label', 'direction' => 'asc']
182+
);
183+
}
184+
185+
/**
186+
* Test the reorder of metadata fields for external_id order by desc.
187+
*/
188+
public function testReorderMetadataFieldsByExternalId()
189+
{
190+
$mockAdminApi = new MockAdminApi();
191+
192+
$mockAdminApi->reorderMetadataFields('external_id', 'asc');
193+
$lastRequest = $mockAdminApi->getMockHandler()->getLastRequest();
194+
195+
self::assertRequestUrl(
196+
$lastRequest,
197+
'/metadata_fields/order'
198+
);
199+
self::assertRequestPut($lastRequest);
200+
self::assertRequestJsonBodySubset(
201+
$lastRequest,
202+
['order_by' => 'external_id', 'direction' => 'asc']
203+
);
204+
}
205+
206+
/**
207+
* Test the reorder of metadata fields for created_at order by asc.
208+
*/
209+
public function testReorderMetadataFieldsByCreatedAt()
210+
{
211+
$mockAdminApi = new MockAdminApi();
212+
213+
$mockAdminApi->reorderMetadataFields('created_at', 'asc');
214+
$lastRequest = $mockAdminApi->getMockHandler()->getLastRequest();
215+
216+
self::assertRequestUrl(
217+
$lastRequest,
218+
'/metadata_fields/order'
219+
);
220+
self::assertRequestPut($lastRequest);
221+
self::assertRequestJsonBodySubset(
222+
$lastRequest,
223+
['order_by' => 'created_at', 'direction' => 'asc']
224+
);
225+
}
163226
}

0 commit comments

Comments
 (0)