diff --git a/app/serializers/request.coffee b/app/serializers/request.coffee deleted file mode 100644 index a7afbc88..00000000 --- a/app/serializers/request.coffee +++ /dev/null @@ -1,11 +0,0 @@ -`import Ember from 'ember'` -`import ApplicationSerializer from 'travis/serializers/application'` - -Serializer = ApplicationSerializer.extend - attrs: { - branch_name: { key: 'branch' } - tag_name: { key: 'tag' } - repo: { key: 'repository_id' } - } - -`export default Serializer` diff --git a/app/serializers/request.js b/app/serializers/request.js new file mode 100644 index 00000000..a1f1effe --- /dev/null +++ b/app/serializers/request.js @@ -0,0 +1,35 @@ +import Ember from 'ember'; +import V2FallbackSerializer from 'travis/serializers/v2_fallback'; + +var Serializer = V2FallbackSerializer.extend({ + isNewSerializerAPI: true, + attrs: { + branch_name: { key: 'branch' }, + tag_name: { key: 'tag' } + }, + + keyForV2Relationship: function(key, typeClass, method) { + if (key === 'repo') { + return 'repository_id'; + } else { + return this._super.apply(this, arguments); + } + }, + + normalizeArrayResponse: function(store, primaryModelClass, payload, id, requestType) { + var result; + if (payload.commits) { + payload.requests.forEach(function(request) { + var commit, commit_id; + commit_id = request.commit_id; + if (commit = payload.commits.findBy('id', commit_id)) { + request.commit = commit; + return delete request.commit_id; + } + }); + } + return this._super.apply(this, arguments); + } +}); + +export default Serializer;