From ba3dbf34e25752417ded77bfc67a05d31d6ee564 Mon Sep 17 00:00:00 2001 From: Mathis Neumann <mathis@simpletechs.net> Date: Sat, 9 Jul 2016 15:10:22 +0200 Subject: [PATCH] listen to changelog stream and automatically parse and add them into the Ember Data store --- app/services/changelog-parser.js | 15 +++++++++++++++ app/services/changelog-stream.js | 3 ++- 2 files changed, 17 insertions(+), 1 deletion(-) create mode 100644 app/services/changelog-parser.js diff --git a/app/services/changelog-parser.js b/app/services/changelog-parser.js new file mode 100644 index 0000000..5d40da4 --- /dev/null +++ b/app/services/changelog-parser.js @@ -0,0 +1,15 @@ +import Ember from 'ember'; + +export default Ember.Service.extend({ + store: Ember.inject.service(), + parse(changelog) { + this.debug('store', this.get('store')); + this.debug('parsing changelog', changelog); + const data = changelog.data; + const store = this.get('store'); + const normalized = store.normalize('node', data); // using application serializer + + this.debug('normalized', normalized); + store.push(normalized); + } +}); \ No newline at end of file diff --git a/app/services/changelog-stream.js b/app/services/changelog-stream.js index 0d97072..fb10d45 100644 --- a/app/services/changelog-stream.js +++ b/app/services/changelog-stream.js @@ -2,6 +2,7 @@ import Ember from 'ember'; export default Ember.Service.extend({ shouldClose: false, + changelogParser: Ember.inject.service(), init() { this._super(...arguments); this.debug('session', this.get('systemId')); @@ -51,7 +52,7 @@ export default Ember.Service.extend({ this.debug('new changelog received', changelogJson); try { const changelog = JSON.parse(changelogJson); - this.debug('changelog converted', changelog); + this.get('changelogParser').parse(changelog); } catch (e) { console.error('could not parse changelog json', e, changelogJson); } -- GitLab