UNPKG

@woocommerce/data

Version:
229 lines (228 loc) 6.64 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.setSuggestedProductAction = exports.deleteProduct = exports.deleteProductError = exports.deleteProductSuccess = exports.deleteProductStart = exports.duplicateProduct = exports.updateProduct = exports.createProduct = exports.getProductsTotalCountError = exports.getProductsTotalCountSuccess = exports.getProductsError = exports.getProductsSuccess = exports.updateProductError = exports.duplicateProductError = exports.createProductError = exports.getProductError = exports.getProductSuccess = void 0; /** * External dependencies */ const data_controls_1 = require("@wordpress/data-controls"); /** * Internal dependencies */ const action_types_1 = __importDefault(require("./action-types")); const constants_1 = require("./constants"); function getProductSuccess(id, product) { return { type: action_types_1.default.GET_PRODUCT_SUCCESS, id, product, }; } exports.getProductSuccess = getProductSuccess; function getProductError(productId, error) { return { type: action_types_1.default.GET_PRODUCT_ERROR, productId, error, }; } exports.getProductError = getProductError; function createProductStart() { return { type: action_types_1.default.CREATE_PRODUCT_START, }; } function createProductSuccess(id, product) { return { type: action_types_1.default.CREATE_PRODUCT_SUCCESS, id, product, }; } function createProductError(query, error) { return { type: action_types_1.default.CREATE_PRODUCT_ERROR, query, error, }; } exports.createProductError = createProductError; function duplicateProductStart(id) { return { type: action_types_1.default.DUPLICATE_PRODUCT_START, id, }; } function duplicateProductSuccess(id, product) { return { type: action_types_1.default.DUPLICATE_PRODUCT_SUCCESS, id, product, }; } function duplicateProductError(id, error) { return { type: action_types_1.default.DUPLICATE_PRODUCT_ERROR, id, error, }; } exports.duplicateProductError = duplicateProductError; function updateProductStart(id) { return { type: action_types_1.default.UPDATE_PRODUCT_START, id, }; } function updateProductSuccess(id, product) { return { type: action_types_1.default.UPDATE_PRODUCT_SUCCESS, id, product, }; } function updateProductError(id, error) { return { type: action_types_1.default.UPDATE_PRODUCT_ERROR, id, error, }; } exports.updateProductError = updateProductError; function getProductsSuccess(query, products, totalCount) { return { type: action_types_1.default.GET_PRODUCTS_SUCCESS, products, query, totalCount, }; } exports.getProductsSuccess = getProductsSuccess; function getProductsError(query, error) { return { type: action_types_1.default.GET_PRODUCTS_ERROR, query, error, }; } exports.getProductsError = getProductsError; function getProductsTotalCountSuccess(query, totalCount) { return { type: action_types_1.default.GET_PRODUCTS_TOTAL_COUNT_SUCCESS, query, totalCount, }; } exports.getProductsTotalCountSuccess = getProductsTotalCountSuccess; function getProductsTotalCountError(query, error) { return { type: action_types_1.default.GET_PRODUCTS_TOTAL_COUNT_ERROR, query, error, }; } exports.getProductsTotalCountError = getProductsTotalCountError; function* createProduct(data) { yield createProductStart(); try { const product = yield (0, data_controls_1.apiFetch)({ path: constants_1.WC_PRODUCT_NAMESPACE, method: 'POST', data, }); yield createProductSuccess(product.id, product); return product; } catch (error) { yield createProductError(data, error); throw error; } } exports.createProduct = createProduct; function* updateProduct(id, data) { yield updateProductStart(id); try { const product = yield (0, data_controls_1.apiFetch)({ path: `${constants_1.WC_PRODUCT_NAMESPACE}/${id}`, method: 'PUT', data, }); yield updateProductSuccess(product.id, product); return product; } catch (error) { yield updateProductError(id, error); throw error; } } exports.updateProduct = updateProduct; function* duplicateProduct(id, data) { yield duplicateProductStart(id); try { const product = yield (0, data_controls_1.apiFetch)({ path: `${constants_1.WC_PRODUCT_NAMESPACE}/${id}/duplicate`, method: 'POST', data, }); yield duplicateProductSuccess(product.id, product); return product; } catch (error) { yield duplicateProductError(id, error); throw error; } } exports.duplicateProduct = duplicateProduct; function deleteProductStart(id) { return { type: action_types_1.default.DELETE_PRODUCT_START, id, }; } exports.deleteProductStart = deleteProductStart; function deleteProductSuccess(id, product, force) { return { type: action_types_1.default.DELETE_PRODUCT_SUCCESS, id, product, force, }; } exports.deleteProductSuccess = deleteProductSuccess; function deleteProductError(id, error) { return { type: action_types_1.default.DELETE_PRODUCT_ERROR, id, error, }; } exports.deleteProductError = deleteProductError; function* deleteProduct(id, force = false) { yield deleteProductStart(id); try { const url = force ? `${constants_1.WC_PRODUCT_NAMESPACE}/${id}?force=true` : `${constants_1.WC_PRODUCT_NAMESPACE}/${id}`; const product = yield (0, data_controls_1.apiFetch)({ path: url, method: 'DELETE', }); yield deleteProductSuccess(product.id, product, force); return product; } catch (error) { yield deleteProductError(id, error); throw error; } } exports.deleteProduct = deleteProduct; function setSuggestedProductAction(key, items) { return { type: action_types_1.default.SET_SUGGESTED_PRODUCTS, key, items, }; } exports.setSuggestedProductAction = setSuggestedProductAction;