Есть ли в страпях система драфта для одиночных типов? - PullRequest
0 голосов
/ 28 апреля 2020

Я хотел сохранить черновик в страпях для отдельных типов без его публикации. Прямо сейчас, если я сохраню изменения, они будут опубликованы напрямую. Я попытался использовать булево-опубликованное и показывать данные в веб-приложении, когда оно опубликовано. Таким образом, если опубликованный bool является ложным, данные всей страницы не будут показаны. Я хочу, чтобы прежние данные все еще были там, но не новые неопубликованные данные.

Есть ли способ сделать это достижимым?

1 Ответ

0 голосов
/ 30 апреля 2020

Поскольку вы упомянули об этом, почему бы не добавить логический тип is_draft к вашей модели strapi и использовать его в качестве фильтра shadow crud при запросе конечной точки rest api или graphql ?

Если вы хотите, чтобы strapi не возвращал черновые записи, вы также можете переопределить функцию поиска контроллера .


// api/article/controllers/article.js

const { sanitizeEntity } = require('strapi-utils');

module.exports = {

  /**
   * Retrieve records.
   *
   * @return {Array}
   */

  async find(ctx) {
    let entities;
    ctx.query.is_draft = typeof ctx.query.is_draft === 'boolean' ? ctx.query.is_draft || false; // return published by default, or the explicitly specified is_draft filter.
    if (ctx.query._q) {
      entities = await strapi.services.article.search(ctx.query);
    } else {
      entities = await strapi.services.article.find(ctx.query);
    }

    return entities.map(entity => sanitizeEntity(entity, { model: strapi.models.article }));
  },
};
...