From 0a1eafe55e96c3360e2439dcb30c01ac6b8990c3 Mon Sep 17 00:00:00 2001 From: Susmitha Girumala Date: Mon, 21 Sep 2020 18:23:32 -0400 Subject: [PATCH] refactor: Refactor seralizeScopeID from models to serializers --- addons/api/addon/models/account.js | 7 ------ addons/api/addon/models/base.js | 7 ------ addons/api/addon/models/host-set.js | 7 ------ addons/api/addon/models/host.js | 8 +------ addons/api/addon/serializers/account.js | 8 +++++++ addons/api/addon/serializers/application.js | 10 +++++++- addons/api/addon/serializers/host-set.js | 8 +++++++ addons/api/addon/serializers/host.js | 12 ++++++++++ addons/api/app/serializers/host.js | 1 + .../unit/serializers/application-test.js | 2 +- .../api/tests/unit/serializers/host-test.js | 23 +++++++++++++++++++ 11 files changed, 63 insertions(+), 30 deletions(-) create mode 100644 addons/api/addon/serializers/host.js create mode 100644 addons/api/app/serializers/host.js create mode 100644 addons/api/tests/unit/serializers/host-test.js diff --git a/addons/api/addon/models/account.js b/addons/api/addon/models/account.js index 77d631bca..71b337f44 100644 --- a/addons/api/addon/models/account.js +++ b/addons/api/addon/models/account.js @@ -4,13 +4,6 @@ import { computed } from '@ember/object'; export default class AccountModel extends GeneratedAccountModel { - // =properties - - /** - * @type {boolean} - */ - serializeScopeID = false; - // =attributes /** diff --git a/addons/api/addon/models/base.js b/addons/api/addon/models/base.js index f79834fe5..d883c8846 100644 --- a/addons/api/addon/models/base.js +++ b/addons/api/addon/models/base.js @@ -27,13 +27,6 @@ import { get } from '@ember/object'; */ export default class BaseModel extends Model { - // =properties - - /** - * @type {boolean} - */ - serializeScopeID = true; - // =relationships /** diff --git a/addons/api/addon/models/host-set.js b/addons/api/addon/models/host-set.js index fce605ebb..583971735 100644 --- a/addons/api/addon/models/host-set.js +++ b/addons/api/addon/models/host-set.js @@ -3,13 +3,6 @@ import { fragmentArray } from 'ember-data-model-fragments/attributes'; export default class HostSetModel extends GeneratedHostSetModel { - // =properties - - /** - * @type {boolean} - */ - serializeScopeID = false; - // =attributes /** diff --git a/addons/api/addon/models/host.js b/addons/api/addon/models/host.js index 6790b482c..a2e855084 100644 --- a/addons/api/addon/models/host.js +++ b/addons/api/addon/models/host.js @@ -3,16 +3,10 @@ import { fragment } from 'ember-data-model-fragments/attributes'; export default class HostModel extends GeneratedHostModel { - // =properties - - /** - * @type {boolean} - */ - serializeScopeID = false; - /** * Attributes of this resource, if any, represented as a JSON fragment. * @type {FragmentHostAttributesModel} */ @fragment('fragment-host-attributes', { defaultValue: {} }) attributes; + } diff --git a/addons/api/addon/serializers/account.js b/addons/api/addon/serializers/account.js index 01618a081..5f5291dcd 100644 --- a/addons/api/addon/serializers/account.js +++ b/addons/api/addon/serializers/account.js @@ -1,6 +1,14 @@ import ApplicationSerializer from './application'; export default class AccountSerializer extends ApplicationSerializer { + + // =properties + + /** + * @type {boolean} + */ + serializeScopeID = false; + // =methods /** diff --git a/addons/api/addon/serializers/application.js b/addons/api/addon/serializers/application.js index 5473a05bc..2819231fa 100644 --- a/addons/api/addon/serializers/application.js +++ b/addons/api/addon/serializers/application.js @@ -7,6 +7,14 @@ import { copy } from 'ember-copy'; * Manages serialization/normalization of data to/from the API. */ export default class ApplicationSerializer extends RESTSerializer { + + // =properties + + /** + * @type {boolean} + */ + serializeScopeID = true; + // =methods /** @@ -71,7 +79,7 @@ export default class ApplicationSerializer extends RESTSerializer { // Delete `scope` field delete serialized.scope; // And serialize `scope_id` - if(snapshot?.record?.serializeScopeID) { + if(this.serializeScopeID) { const scope_id = snapshot?.attr('scope')?.attr('scope_id'); if (scope_id) serialized.scope_id = scope_id; } diff --git a/addons/api/addon/serializers/host-set.js b/addons/api/addon/serializers/host-set.js index 591da7c76..ee38bd5eb 100644 --- a/addons/api/addon/serializers/host-set.js +++ b/addons/api/addon/serializers/host-set.js @@ -1,6 +1,14 @@ import ApplicationSerializer from './application'; export default class HostSetSerializer extends ApplicationSerializer { + + // =properties + + /** + * @type {boolean} + */ + serializeScopeID = false; + // =methods /** diff --git a/addons/api/addon/serializers/host.js b/addons/api/addon/serializers/host.js new file mode 100644 index 000000000..fad6f2ca7 --- /dev/null +++ b/addons/api/addon/serializers/host.js @@ -0,0 +1,12 @@ +import ApplicationSerializer from './application'; + +export default class HostSerializer extends ApplicationSerializer { + + // =properties + + /** + * @type {boolean} + */ + serializeScopeID = false; + +} diff --git a/addons/api/app/serializers/host.js b/addons/api/app/serializers/host.js new file mode 100644 index 000000000..33844fbaf --- /dev/null +++ b/addons/api/app/serializers/host.js @@ -0,0 +1 @@ +export { default } from 'api/serializers/host'; diff --git a/addons/api/tests/unit/serializers/application-test.js b/addons/api/tests/unit/serializers/application-test.js index 1089e3b74..5c2c07a20 100644 --- a/addons/api/tests/unit/serializers/application-test.js +++ b/addons/api/tests/unit/serializers/application-test.js @@ -62,7 +62,7 @@ module('Unit | Serializer | application', function (hooks) { }, }); const snapshot = record._createSnapshot(); - snapshot.record.serializeScopeID = false; + serializer.serializeScopeID = false; const serializedRecord = serializer.serialize(snapshot); assert.deepEqual(serializedRecord, { name: 'User', diff --git a/addons/api/tests/unit/serializers/host-test.js b/addons/api/tests/unit/serializers/host-test.js new file mode 100644 index 000000000..c31a5ce4e --- /dev/null +++ b/addons/api/tests/unit/serializers/host-test.js @@ -0,0 +1,23 @@ +import { module, test } from 'qunit'; +import { setupTest } from 'ember-qunit'; + +module('Unit | Serializer | host', function(hooks) { + setupTest(hooks); + + // Replace this with your real tests. + test('it exists', function(assert) { + let store = this.owner.lookup('service:store'); + let serializer = store.serializerFor('host'); + + assert.ok(serializer); + }); + + test('it serializes records', function(assert) { + let store = this.owner.lookup('service:store'); + let record = store.createRecord('host', {}); + + let serializedRecord = record.serialize(); + + assert.ok(serializedRecord); + }); +});