From 34294ca7484530fcd4871d06b2be9401675ad2f9 Mon Sep 17 00:00:00 2001 From: Robin Ward <robin.ward@gmail.com> Date: Thu, 5 Mar 2015 17:13:32 -0500 Subject: [PATCH] Add `deleteRecord` API to store to support deleting a tag --- .../javascripts/discourse/adapters/rest.js.es6 | 12 ++++++++++++ app/assets/javascripts/discourse/models/store.js.es6 | 5 +++++ 2 files changed, 17 insertions(+) diff --git a/app/assets/javascripts/discourse/adapters/rest.js.es6 b/app/assets/javascripts/discourse/adapters/rest.js.es6 index f3f275730..1afa6eb7f 100644 --- a/app/assets/javascripts/discourse/adapters/rest.js.es6 +++ b/app/assets/javascripts/discourse/adapters/rest.js.es6 @@ -15,6 +15,11 @@ const RestModel = Ember.Object.extend({ self.setProperties(attrs); return result; }); + }, + + destroyRecord() { + const type = this.get('__type'); + return this.store.destroyRecord(type, this.get('id')); } }); @@ -60,6 +65,13 @@ export default Ember.Object.extend({ }); }, + destroyRecord(type, id) { + return Discourse.ajax(this.pathFor(type, id), { method: 'DELETE' }).then(function(result) { + delete _identityMap[type][id]; + return result; + }); + }, + createRecord(type, attrs) { return this._hydrate(type, attrs); }, diff --git a/app/assets/javascripts/discourse/models/store.js.es6 b/app/assets/javascripts/discourse/models/store.js.es6 index d95e6a010..ef9903168 100644 --- a/app/assets/javascripts/discourse/models/store.js.es6 +++ b/app/assets/javascripts/discourse/models/store.js.es6 @@ -12,5 +12,10 @@ export default Ember.Object.extend({ createRecord(type, attrs) { const adapter = this.container.lookup('adapter:' + type) || this.container.lookup('adapter:rest'); return adapter.createRecord(type, attrs); + }, + + destroyRecord(type, id) { + const adapter = this.container.lookup('adapter:' + type) || this.container.lookup('adapter:rest'); + return adapter.destroyRecord(type, id); } });