InputValidation устарел

Привет!

Я мигрирую довольно старую версию форума (2.7.0) на последнюю версию Discourse. Одна из проблем, с которой я столкнулся, заключается в том, что модуль ‘discourse/models/input-validation’, похоже, удалён. Не могли бы вы подсказать, как перенести эту функциональность на актуальное решение? Похоже, что валидация ввода сейчас реализована совершенно иначе.

Спасибо,
Дэвид

Это в каком-то плагине, который вы написали? Возможно, поделитесь ссылкой на него, если это возможно.

Или что именно вы пытаетесь проверить?

Привет! Да, извините, это несколько плагинов. Код находится в закрытом репозитории Git, но я могу прислать примеры.

 @computed('model.title', 'lastValidatedAt')
  titleValidation(title, lastValidatedAt) {
    if(this.model.get('titleMissing') && !title) {
      return InputValidation.create({ failed: true, reason: I18n.t('news.error.title_missing'), lastShownAt: lastValidatedAt });
    }
  },

Спасибо!

Так что вот вам небольшая хитрость (кстати, она не специфична для Discourse):

В вашей директории разработки Discourse выполните:

git log -SInputValidation -p

И :tada: вы сразу увидите потенциальный современный аналог!:

-import InputValidation from "discourse/models/input-validation";
+import EmberObject from "@ember/object";

 export default Controller.extend({
   adminWebHooks: inject(),
@@ -41,14 +41,14 @@ export default Controller.extend({
   secretValidation(secret) {
     if (!isEmpty(secret)) {
       if (secret.indexOf(" ") !== -1) {
-        return InputValidation.create({
+        return EmberObject.create({
           failed: true,
           reason: I18n.t("admin.web_hooks.secret_invalid")
         });

<SNIP>

Отлично! Я подумал, что смогу найти изменения в git, связанные с этим, но я не совсем гений в git. Спасибо! Это очень поможет. Я думал, что мне нужно начать использовать более специфичные классы валидации, которые существуют, например name-validation.js и т.д. Это выглядит достаточно просто.