From bcf5ac50c5e069eabed433b3930fd96854e38e14 Mon Sep 17 00:00:00 2001 From: Piotr Sarnacki Date: Mon, 28 Jul 2014 12:50:11 +0200 Subject: [PATCH] Send record to buildURL method when it's available For some cases (like coming env vars) we will need to also pass a repository id to the URL, so I'm passing it from createRecord and other methods which handle records. --- assets/scripts/lib/travis/adapter.coffee | 25 ++++++++++++++++++++++-- 1 file changed, 23 insertions(+), 2 deletions(-) diff --git a/assets/scripts/lib/travis/adapter.coffee b/assets/scripts/lib/travis/adapter.coffee index 7baf43b0..95aae5aa 100644 --- a/assets/scripts/lib/travis/adapter.coffee +++ b/assets/scripts/lib/travis/adapter.coffee @@ -1,3 +1,5 @@ +get = Ember.get + Travis.Adapter = Ember.RESTAdapter.extend ajax: (url, params, method) -> Travis.ajax.ajax(url, method || 'get', data: params) @@ -17,7 +19,7 @@ Travis.Adapter = Ember.RESTAdapter.extend records.load(klass, dataToLoad) @addToRecordArrays(records.get('content')) - buildURL: -> + buildURL: (klass, id, record) -> @_super.apply(this, arguments).replace(/\.json$/, '') didFind: (record, id, data) -> @@ -55,7 +57,6 @@ Travis.Adapter = Ember.RESTAdapter.extend for record in records record.constructor.addToRecordArrays(record) - sideload: (klass, data) -> for name, records of data records = [records] unless Ember.isArray(records) @@ -66,4 +67,24 @@ Travis.Adapter = Ember.RESTAdapter.extend record = type.findFromCacheOrLoad(record) @addToRecordArrays(record) + find: (record, id) -> + url = @buildURL(record.constructor, id, record) + self = this + @ajax(url).then (data) -> + self.didFind record, id, data + record + createRecord: (record) -> + url = @buildURL(record.constructor, undefined, record) + self = this + @ajax(url, record.toJSON(), "POST").then (data) -> + self.didCreateRecord record, data + record + + deleteRecord: (record) -> + primaryKey = get(record.constructor, "primaryKey") + url = @buildURL(record.constructor, get(record, primaryKey), record) + self = this + @ajax(url, record.toJSON(), "DELETE").then (data) -> # TODO: Some APIs may or may not return data + self.didDeleteRecord record, data + return