# InputValidation deprecated

**URL:** https://meta.discourse.org/t/inputvalidation-deprecated/253116
**Category:** Development
**Created:** [January 27, 2023, 2:27pm UTC](https://meta.discourse.org/t/inputvalidation-deprecated/253116 "2023-01-27T14:27:31Z")
**Posts on this page:** 5
**Page:** 1

<div class="post-metadata">

### Author: ![piratdavid](https://avatars.discourse-cdn.com/v4/letter/p/ba9def/32.png) [@piratdavid](https://meta.discourse.org/u/piratdavid)
#### Post date: [January 27, 2023, 2:27pm UTC](https://meta.discourse.org/t/inputvalidation-deprecated/253116/1 "2023-01-27T14:27:31Z")

</div>

Hi!

I’m migrating a rather old forum version (2.7.0) to the latest discourse version. One problem I’m encountering is that ‘discourse/models/input-validation’ seems to be removed. Could someone guide me to migrate this to whatever solution is accurate now. It seems that input validation is done pretty different now.

Thanks  
David

---

<div class="post-metadata">

### Author: ![pfaffman](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/pfaffman/32/120154_2.png) [@pfaffman](https://meta.discourse.org/u/pfaffman)
#### Post date: [January 27, 2023, 4:33pm UTC](https://meta.discourse.org/t/inputvalidation-deprecated/253116/2 "2023-01-27T16:33:55Z")

</div>

It this in some plugin that you wrote? Maybe share a link to it if that’s possible.

Or what it is that you’re trying to validate.

---

<div class="post-metadata">

### Author: ![piratdavid](https://avatars.discourse-cdn.com/v4/letter/p/ba9def/32.png) [@piratdavid](https://meta.discourse.org/u/piratdavid)
#### Post date: [January 27, 2023, 5:20pm UTC](https://meta.discourse.org/t/inputvalidation-deprecated/253116/3 "2023-01-27T17:20:39Z")

</div>

Hi! Yes sorry it’s a number of plugins. It’s in a private git repo but I could send code examples.

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

```

Thanks!

---

<div class="post-metadata">

### Author: ![merefield](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/merefield/32/176214_2.png) [@merefield](https://meta.discourse.org/u/merefield)
#### Post date: [January 27, 2023, 6:25pm UTC](https://meta.discourse.org/t/inputvalidation-deprecated/253116/4 "2023-01-27T18:25:46Z")

</div>

So a little trick for you (which isn’t particularly Discourse specific btw):

In your dev discourse directory do:

```plaintext
git log -SInputValidation -p

```

And 🎉 , you can immediately see a potentially modern equivalent!:

```bash
-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>

```

---

<div class="post-metadata">

### Author: ![piratdavid](https://avatars.discourse-cdn.com/v4/letter/p/ba9def/32.png) [@piratdavid](https://meta.discourse.org/u/piratdavid)
#### Post date: [January 27, 2023, 6:46pm UTC](https://meta.discourse.org/t/inputvalidation-deprecated/253116/5 "2023-01-27T18:46:35Z")

</div>

Great! I figured I might be able to find git changes related to that but I’m not really a git genie. Thank you! That will help a lot. I thought I had to start using the more specific validation classes that exist, name-validation.js etc. This looks easy enough.
