UNPKG

sb-mig

Version:

CLI to rule the world. (and handle stuff related to Storyblok CMS)

82 lines (81 loc) 2.66 kB
import Logger from "../../utils/logger.js"; import { getAllItemsWithPagination } from "../utils/request.js"; // GET export const getPreset = (args, config) => { const { presetId } = args; const { spaceId, sbApi } = config; Logger.log(`Trying to get preset by id: ${presetId}`); return sbApi .get(`spaces/${spaceId}/presets/${presetId}`) .then((response) => response.data) .then((response) => { if (Array.isArray(response.presets)) { Logger.warning(`There is no preset for '${presetId}' preset id`); return false; } return response; }) .catch((err) => Logger.error(err)); }; export const getAllPresets = (config) => { const { spaceId, sbApi } = config; Logger.log("Trying to get all Presets."); // TODO: All Presets doesnt support pagination... // https://github.com/storyblok/storyblok-js-client/issues/535 return getAllItemsWithPagination({ apiFn: ({ per_page, page, spaceId }) => sbApi .get(`spaces/${spaceId}/presets/`, { per_page, page }) .then((res) => { Logger.log(`Amount of presets: ${res.total}`); return res; }) .catch((err) => Logger.error(err)), params: { spaceId, }, itemsKey: "presets", }); }; // CREATE export const createPreset = (p, config) => { const { spaceId, sbApi } = config; return sbApi .post(`spaces/${spaceId}/presets/`, { preset: p.preset, }) .then((res) => { Logger.warning(`Preset: '${p.preset.name}' has been created.`); return res; }) .catch((e) => { console.log("!!!!!!!!!!"); console.log(e); Logger.error(`Error happened. Preset: '${p.preset.name}' has been not created.`); }); }; // UPDATE export const updatePreset = (args, config) => { const { p } = args; const { spaceId, sbApi } = config; return sbApi .put(`spaces/${spaceId}/presets/${p.preset.id}`, { preset: p.preset, }) .then((res) => { Logger.warning(`Preset: '${p.preset.name}' with '${p.preset.id}' id has been updated.`); return res; }) .catch(() => { Logger.error(`Error happened. Preset: '${p.preset.name}' with '${p.preset.id}' id has been not updated.`); }); }; export const updatePresets = (args, config) => { const { presets, spaceId } = args; return Promise.allSettled(presets.map(async (item) => { return updatePreset({ p: { preset: item, }, }, { ...config, spaceId }); })); };