@craftercms/studio-ui
Version:
Services, components, models & utils to build CrafterCMS authoring extensions.
96 lines (94 loc) • 3.82 kB
JavaScript
/*
* Copyright (C) 2007-2022 Crafter Software Corporation. All Rights Reserved.
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License version 3 as published by
* the Free Software Foundation.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
/*
* Copyright (C) 2007-2022 Crafter Software Corporation. All Rights Reserved.
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 3 as published by
* the Free Software Foundation.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
var __rest =
(this && this.__rest) ||
function (s, e) {
var t = {};
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];
if (s != null && typeof Object.getOwnPropertySymbols === 'function')
for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];
}
return t;
};
import { get, postJSON } from '../utils/ajax';
import { map, pluck } from 'rxjs/operators';
import { toQueryString } from '../utils/object';
import { createItemActionMap, createItemStateMap } from '../utils/content';
export function fetchItemStates(siteId, path, states, options) {
const qs = toQueryString(Object.assign({ siteId, path, states }, options));
return get(`/studio/api/2/workflow/item_states${qs}`).pipe(
pluck('response'),
map(({ items, total, offset, limit }) =>
Object.assign(
items.map((item) =>
Object.assign(Object.assign({}, item), {
stateMap: createItemStateMap(item.state),
availableActionsMap: createItemActionMap(item.availableActions)
})
),
{
total,
offset,
limit: limit < options.limit ? options.limit : limit
}
)
)
);
}
export function setItemStates(siteId, items, _a) {
var rest = __rest(_a, []);
return postJSON('/studio/api/2/workflow/item_states', Object.assign({ siteId, items: items }, rest)).pipe(
map(() => true)
);
}
export function setItemStatesByQuery(siteId, states, update, path) {
return postJSON('/studio/api/2/workflow/update_item_states_by_query', {
query: Object.assign(Object.assign({ siteId }, path && { path }), { states }),
update
}).pipe(map(() => true));
}
export function publish(siteId, data) {
return postJSON('/studio/api/2/workflow/publish', Object.assign({ siteId }, data)).pipe(map(() => true));
}
export function requestPublish(siteId, data) {
return postJSON('/studio/api/2/workflow/request_publish', Object.assign({ siteId }, data)).pipe(map(() => true));
}
export function approve(siteId, data) {
return postJSON('/studio/api/2/workflow/approve', Object.assign({ siteId }, data)).pipe(map(() => true));
}
export function reject(siteId, items, comment) {
return postJSON('/studio/api/2/workflow/reject', {
siteId,
items,
comment
}).pipe(map(() => true));
}