travis-web/app/routes/caches.js
2016-01-04 13:15:14 +01:00

52 lines
1.3 KiB
JavaScript

import Ember from 'ember';
import TravisRoute from 'travis/routes/basic';
export default TravisRoute.extend({
ajax: Ember.inject.service(),
needsAuth: true,
setupController(controller) {
this._super.apply(this, arguments);
return this.controllerFor('repo').activate('caches');
},
model() {
var repo;
repo = this.modelFor('repo');
return this.get('ajax').get("/repos/" + (repo.get('id')) + "/caches").then(function(data) {
var branch, cache, caches, pullRequests, pushes;
caches = {};
data["caches"].forEach(function(cacheData) {
var branch, cache;
branch = cacheData.branch;
cache = caches[branch];
if (cache) {
cache.size += cacheData.size;
if (cache.last_modified < cacheData.last_modified) {
return cache.last_modified = cacheData.last_modified;
}
} else {
return caches[branch] = cacheData;
}
});
pushes = [];
pullRequests = [];
for (branch in caches) {
cache = caches[branch];
if (/PR./.test(branch)) {
cache.type = "pull_request";
pullRequests.push(cache);
} else {
cache.type = "push";
pushes.push(cache);
}
}
return {
pushes: pushes,
pullRequests: pullRequests
};
});
}
});