UNPKG

@woocommerce/data

Version:
166 lines (165 loc) 5.26 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.batchUpdateNotes = exports.removeAllNotes = exports.removeNote = exports.triggerNoteAction = exports.updateNote = exports.setIsRequesting = exports.setError = exports.setNotesQuery = exports.setNotes = exports.setNoteIsUpdating = exports.setNote = void 0; /** * External dependencies */ const data_controls_1 = require("@wordpress/data-controls"); const url_1 = require("@wordpress/url"); /** * Internal dependencies */ const constants_1 = require("../constants"); const action_types_1 = __importDefault(require("./action-types")); function setNote(noteId, noteFields) { return { type: action_types_1.default.SET_NOTE, noteId, noteFields, }; } exports.setNote = setNote; function setNoteIsUpdating(noteId, isUpdating) { return { type: action_types_1.default.SET_NOTE_IS_UPDATING, noteId, isUpdating, }; } exports.setNoteIsUpdating = setNoteIsUpdating; function setNotes(notes) { return { type: action_types_1.default.SET_NOTES, notes, }; } exports.setNotes = setNotes; function setNotesQuery(query, noteIds) { return { type: action_types_1.default.SET_NOTES_QUERY, query, noteIds, }; } exports.setNotesQuery = setNotesQuery; function setError(selector, error) { return { type: action_types_1.default.SET_ERROR, error, selector, }; } exports.setError = setError; function setIsRequesting(selector, isRequesting) { return { type: action_types_1.default.SET_IS_REQUESTING, selector, isRequesting, }; } exports.setIsRequesting = setIsRequesting; function* updateNote(noteId, noteFields) { yield setIsRequesting('updateNote', true); yield setNoteIsUpdating(noteId, true); try { const url = `${constants_1.NAMESPACE}/admin/notes/${noteId}`; const note = yield (0, data_controls_1.apiFetch)({ path: url, method: 'PUT', data: noteFields, }); yield setNote(noteId, note); yield setIsRequesting('updateNote', false); yield setNoteIsUpdating(noteId, false); } catch (error) { yield setError('updateNote', error); yield setIsRequesting('updateNote', false); yield setNoteIsUpdating(noteId, false); throw new Error(); } } exports.updateNote = updateNote; function* triggerNoteAction(noteId, actionId) { yield setIsRequesting('triggerNoteAction', true); const url = `${constants_1.NAMESPACE}/admin/notes/${noteId}/action/${actionId}`; try { const result = yield (0, data_controls_1.apiFetch)({ path: url, method: 'POST', }); yield updateNote(noteId, result); yield setIsRequesting('triggerNoteAction', false); } catch (error) { yield setError('triggerNoteAction', error); yield setIsRequesting('triggerNoteAction', false); throw new Error(); } } exports.triggerNoteAction = triggerNoteAction; function* removeNote(noteId) { yield setIsRequesting('removeNote', true); yield setNoteIsUpdating(noteId, true); try { const url = `${constants_1.NAMESPACE}/admin/notes/delete/${noteId}`; const response = yield (0, data_controls_1.apiFetch)({ path: url, method: 'DELETE', }); yield setNote(noteId, response); yield setIsRequesting('removeNote', false); return response; } catch (error) { yield setError('removeNote', error); yield setIsRequesting('removeNote', false); yield setNoteIsUpdating(noteId, false); throw new Error(); } } exports.removeNote = removeNote; function* removeAllNotes(query = {}) { yield setIsRequesting('removeAllNotes', true); try { const url = (0, url_1.addQueryArgs)(`${constants_1.NAMESPACE}/admin/notes/delete/all`, query); const notes = yield (0, data_controls_1.apiFetch)({ path: url, method: 'DELETE', }); yield setNotes(notes); yield setIsRequesting('removeAllNotes', false); return notes; } catch (error) { yield setError('removeAllNotes', error); yield setIsRequesting('removeAllNotes', false); throw new Error(); } } exports.removeAllNotes = removeAllNotes; function* batchUpdateNotes(noteIds, noteFields) { yield setIsRequesting('batchUpdateNotes', true); try { const url = `${constants_1.NAMESPACE}/admin/notes/update`; const notes = yield (0, data_controls_1.apiFetch)({ path: url, method: 'PUT', data: { noteIds, ...noteFields, }, }); yield setNotes(notes); yield setIsRequesting('batchUpdateNotes', false); } catch (error) { yield setError('updateNote', error); yield setIsRequesting('batchUpdateNotes', false); throw new Error(); } } exports.batchUpdateNotes = batchUpdateNotes;