クラス
GroupItem
ソース ソース
ファイル: src/REST/GroupItem.php
class GroupItem
{
/**
* Creates a new combo group item and returns it
*
* @author Evan D Shaw <evandanielshaw@gmail.com>
* @param array $args
* @param array $payload
* @return GenericError|GroupItemType
*/
public function create(array $args, array $payload) {
$requiredFields = ['welitemSkuMetaId'];
foreach ($requiredFields as $field) {
if (empty($payload[$field])) {
return Master::getErrorStore()->getErrorResponse(ErrorStore::REQUIRED_FIELDS_MISSING, [$field]);
}
}
$groupId = (int)$args['groupId'];
$welitemSkuMetaId = (int)$payload['welitemSkuMetaId'];
$priceModifier = !empty($payload['priceModifier']) ? (float)$payload['priceModifier'] : 0;
$itemLabel = !empty($payload['itemLabel']) ? (string)$payload['itemLabel'] : '';
$itemQuantity = !empty($payload['itemQuantity']) ? (int)$payload['itemQuantity'] : 1;
$itemQuantity = $itemQuantity < 1 ? 1 : $itemQuantity;
$position = !empty($payload['position']) ? (int)$payload['position'] : 0;
return API\GroupItem::createGroupItem(
$groupId,
$welitemSkuMetaId,
$priceModifier,
$itemLabel,
$itemQuantity,
$position
);
}
/**
* Gets a group item by id or returns all group items
*
* @author Evan D Shaw <evandanielshaw@gmail.com>
* @param array $args
* @param array $payload
* @return GenericError|GroupItemType|GroupItemType[]
*/
public function get(array $args, array $payload) {
$groupId = (int)$args['groupId'];
$id = !empty($payload['itemId']) ? (int)$payload['itemId'] : null;
if (!empty($id)) {
return API\GroupItem::getGroupItemById($id);
}
return API\GroupItem::getAllGroupItemsByComboGroupId($groupId);
}
/**
* Updates a combo group item and returns it
*
* @author Evan D Shaw <evandanielshaw@gmail.com>
* @param array $args
* @param array $payload
* @return GenericError|GroupItemType
*/
public function update(array $args, array $payload) {
$itemId = (int)$args['itemId'];
$priceModifier = !empty($payload['priceModifier']) ? (float)$payload['priceModifier'] : 0;
$itemLabel = !empty($payload['itemLabel']) ? (string)$payload['itemLabel'] : '';
$itemQuantity = !empty($payload['itemQuantity']) ? (int)$payload['itemQuantity'] : 1;
$itemQuantity = $itemQuantity < 1 ? 1 : $itemQuantity;
return API\GroupItem::updateGroupItem($itemId, $priceModifier, $itemLabel, $itemQuantity);
}
/**
* Deletes a combo group item
*
* @author Evan D Shaw <evandanielshaw@gmail.com>
* @param array $args
* @return GenericError|string `success` on success
*/
public function delete(array $args) {
$itemId = (int)$args['itemId'];
$res = API\GroupItem::deleteGroupItem($itemId);
if ($res instanceof GenericError) {
return $res;
}
return 'success';
}
/**
* Re-orders all items in a group
*
* @author Evan D Shaw <evandanielshaw@gmail.com>
* @param array $args
* @param array $payload
* @return GenericError|GroupItemType[]
*/
public function reorder(array $args, array $payload) {
$groupId = (int)$args['groupId'];
$itemIds = (array)$payload['itemIds'];
$res = API\GroupItem::reorderGroupItems($groupId, $itemIds);
if ($res instanceof GenericError) {
return $res;
}
return API\GroupItem::getAllGroupItemsByComboGroupId($groupId);
}
}