diff --git a/addons/api/mirage/models/account.js b/addons/api/mirage/models/account.js index 8f39ad219..11c2b3944 100644 --- a/addons/api/mirage/models/account.js +++ b/addons/api/mirage/models/account.js @@ -1,4 +1,5 @@ -import { Model, belongsTo } from 'ember-cli-mirage'; +import { belongsTo } from 'ember-cli-mirage'; +import Model from './base'; export default Model.extend({ scope: belongsTo(), diff --git a/addons/api/mirage/models/auth-method.js b/addons/api/mirage/models/auth-method.js index 7faa2b5a2..0cc6532df 100644 --- a/addons/api/mirage/models/auth-method.js +++ b/addons/api/mirage/models/auth-method.js @@ -1,4 +1,5 @@ -import { Model, belongsTo } from 'ember-cli-mirage'; +import { belongsTo } from 'ember-cli-mirage'; +import Model from './base'; export default Model.extend({ scope: belongsTo(), diff --git a/addons/api/mirage/models/base.js b/addons/api/mirage/models/base.js new file mode 100644 index 000000000..dbaa877d9 --- /dev/null +++ b/addons/api/mirage/models/base.js @@ -0,0 +1,20 @@ +import { Model } from 'ember-cli-mirage'; + +export default Model.extend({ + assignDefaults(defaultAttrs, attrs) { + Object.entries(defaultAttrs).map(([key, value]) => { + if (!attrs[key]) { + attrs[key] = value; + } + }); + }, + defaultAttrs: () => ({ + version: 1, + authorized_actions: ['no-op', 'read', 'update', 'delete'], + created_time: new Date(), + }), + save() { + this.assignDefaults(this.defaultAttrs(), this.attrs); + return Model.prototype.save.apply(this, arguments); + }, +}); diff --git a/addons/api/mirage/models/credential-library.js b/addons/api/mirage/models/credential-library.js index 921a63182..83ad9f912 100644 --- a/addons/api/mirage/models/credential-library.js +++ b/addons/api/mirage/models/credential-library.js @@ -1,4 +1,5 @@ -import { Model, belongsTo } from 'ember-cli-mirage'; +import { belongsTo } from 'ember-cli-mirage'; +import Model from './base'; export default Model.extend({ scope: belongsTo(), diff --git a/addons/api/mirage/models/credential-store.js b/addons/api/mirage/models/credential-store.js index 7faa2b5a2..0cc6532df 100644 --- a/addons/api/mirage/models/credential-store.js +++ b/addons/api/mirage/models/credential-store.js @@ -1,4 +1,5 @@ -import { Model, belongsTo } from 'ember-cli-mirage'; +import { belongsTo } from 'ember-cli-mirage'; +import Model from './base'; export default Model.extend({ scope: belongsTo(), diff --git a/addons/api/mirage/models/group.js b/addons/api/mirage/models/group.js index 67446a6d6..17a62f13e 100644 --- a/addons/api/mirage/models/group.js +++ b/addons/api/mirage/models/group.js @@ -1,4 +1,5 @@ -import { Model, belongsTo, hasMany } from 'ember-cli-mirage'; +import { belongsTo, hasMany } from 'ember-cli-mirage'; +import Model from './base'; export default Model.extend({ scope: belongsTo(), diff --git a/addons/api/mirage/models/host-catalog.js b/addons/api/mirage/models/host-catalog.js index 0f03cb6ef..a898eb0c0 100644 --- a/addons/api/mirage/models/host-catalog.js +++ b/addons/api/mirage/models/host-catalog.js @@ -1,4 +1,5 @@ -import { Model, belongsTo, hasMany } from 'ember-cli-mirage'; +import { belongsTo, hasMany } from 'ember-cli-mirage'; +import Model from './base'; export default Model.extend({ scope: belongsTo(), diff --git a/addons/api/mirage/models/host-set.js b/addons/api/mirage/models/host-set.js index 645c144ff..58f32181f 100644 --- a/addons/api/mirage/models/host-set.js +++ b/addons/api/mirage/models/host-set.js @@ -1,4 +1,5 @@ -import { Model, belongsTo, hasMany } from 'ember-cli-mirage'; +import { belongsTo, hasMany } from 'ember-cli-mirage'; +import Model from './base'; export default Model.extend({ scope: belongsTo(), diff --git a/addons/api/mirage/models/host.js b/addons/api/mirage/models/host.js index 88d9026e8..bd7e561df 100644 --- a/addons/api/mirage/models/host.js +++ b/addons/api/mirage/models/host.js @@ -1,4 +1,5 @@ -import { Model, belongsTo } from 'ember-cli-mirage'; +import { belongsTo } from 'ember-cli-mirage'; +import Model from './base'; export default Model.extend({ scope: belongsTo(), diff --git a/addons/api/mirage/models/managed-group.js b/addons/api/mirage/models/managed-group.js index 8f39ad219..11c2b3944 100644 --- a/addons/api/mirage/models/managed-group.js +++ b/addons/api/mirage/models/managed-group.js @@ -1,4 +1,5 @@ -import { Model, belongsTo } from 'ember-cli-mirage'; +import { belongsTo } from 'ember-cli-mirage'; +import Model from './base'; export default Model.extend({ scope: belongsTo(), diff --git a/addons/api/mirage/models/role.js b/addons/api/mirage/models/role.js index c256df5fc..97be034f9 100644 --- a/addons/api/mirage/models/role.js +++ b/addons/api/mirage/models/role.js @@ -1,4 +1,5 @@ -import { Model, belongsTo, hasMany } from 'ember-cli-mirage'; +import { belongsTo, hasMany } from 'ember-cli-mirage'; +import Model from './base'; export default Model.extend({ scope: belongsTo(), diff --git a/addons/api/mirage/models/session.js b/addons/api/mirage/models/session.js index eb036d6b8..4842c2480 100644 --- a/addons/api/mirage/models/session.js +++ b/addons/api/mirage/models/session.js @@ -1,4 +1,5 @@ -import { Model, belongsTo } from 'ember-cli-mirage'; +import { belongsTo } from 'ember-cli-mirage'; +import Model from './base'; export default Model.extend({ scope: belongsTo(), diff --git a/addons/api/mirage/models/target.js b/addons/api/mirage/models/target.js index 389e255d2..d6a7b8ab0 100644 --- a/addons/api/mirage/models/target.js +++ b/addons/api/mirage/models/target.js @@ -1,4 +1,5 @@ -import { Model, belongsTo, hasMany } from 'ember-cli-mirage'; +import Model from './base'; +import { belongsTo, hasMany } from 'ember-cli-mirage'; export default Model.extend({ scope: belongsTo(), diff --git a/addons/api/mirage/models/user.js b/addons/api/mirage/models/user.js index d3eb79bed..984a681b8 100644 --- a/addons/api/mirage/models/user.js +++ b/addons/api/mirage/models/user.js @@ -1,4 +1,5 @@ -import { Model, belongsTo, hasMany } from 'ember-cli-mirage'; +import { belongsTo, hasMany } from 'ember-cli-mirage'; +import Model from './base'; export default Model.extend({ scope: belongsTo(),