InputValidation deprecato

Ciao!

Sto migrando una versione piuttosto vecchia del forum (2.7.0) all’ultima versione di Discourse. Un problema che sto riscontrando è che ‘discourse/models/input-validation’ sembra essere stato rimosso. Qualcuno potrebbe guidarmi a migrare questo a qualsiasi soluzione sia accurata ora. Sembra che la validazione dell’input venga fatta in modo piuttosto diverso ora.

Grazie
David

È in qualche plugin che hai scritto? Magari condividi un link se possibile.

O cosa stai cercando di convalidare.

1 Mi Piace

Ciao! Sì, mi dispiace, è un numero di plugin. Si trova in un repository git privato, ma potrei inviare esempi di codice.

 @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 });
    }
  },

Grazie!

Quindi un piccolo trucco per te (che tra l’altro non è particolarmente specifico di Discourse):

Nella tua directory di sviluppo di Discourse fai:

git log -SInputValidation -p

E :tada:, puoi vedere immediatamente un potenziale equivalente moderno!:

-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>
1 Mi Piace

Ottimo! Pensavo di poter trovare modifiche git relative a ciò, ma non sono un mago di git. Grazie! Mi aiuterà molto. Pensavo di dover iniziare a usare le classi di validazione più specifiche che esistono, name-validation.js ecc. Questo sembra abbastanza facile.

2 Mi Piace