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);
   }
 });