Unverified Commit 98bcc4fe by Sam Padgett Committed by GitHub

Merge pull request #265 from benjaminapetersen/trello/api-groups/services/projects

Update projects service to use getPreferredVersion
parents 13decab9 ceec8534
......@@ -3131,6 +3131,7 @@ angular.module('openshiftCommonServices')
function($location,
$q,
$rootScope,
APIService,
AuthService,
AuthorizationService,
DataService,
......@@ -3141,6 +3142,8 @@ angular.module('openshiftCommonServices')
// Cache project data when we can so we don't request it on every page load.
var cachedProjectData;
var cachedProjectDataIncomplete = false;
var projectsVersion = APIService.getPreferredVersion('projects');
var projectRequestsVersion = APIService.getPreferredVersion('projectrequests');
var clearCachedProjectData = function() {
Logger.debug('ProjectsService: clearing project cache');
......@@ -3176,7 +3179,7 @@ angular.module('openshiftCommonServices')
project: undefined
};
return DataService
.get('projects', projectName, context, {errorNotification: false})
.get(projectsVersion, projectName, context, {errorNotification: false})
.then(function(project) {
return AuthorizationService
.getProjectRules(projectName)
......@@ -3226,7 +3229,7 @@ angular.module('openshiftCommonServices')
}
Logger.debug('ProjectsService: listing projects, force refresh', forceRefresh);
return DataService.list('projects', {}).then(function(projectData) {
return DataService.list(projectsVersion, {}).then(function(projectData) {
cachedProjectData = projectData;
return projectData;
}, function(error) {
......@@ -3245,14 +3248,14 @@ angular.module('openshiftCommonServices')
// Wrap `DataService.watch` so we can update the cached projects
// list on changes. TODO: We might want to disable watches entirely
// if we know the project list is large.
return DataService.watch('projects', context, function(projectData) {
return DataService.watch(projectsVersion, context, function(projectData) {
cachedProjectData = projectData;
callback(projectData);
});
},
update: function(projectName, data) {
return DataService.update('projects', projectName, cleanEditableAnnotations(data), {
return DataService.update(projectsVersion, projectName, cleanEditableAnnotations(data), {
projectName: projectName
}, {
errorNotification: false
......@@ -3276,7 +3279,7 @@ angular.module('openshiftCommonServices')
description: description
};
return DataService
.create('projectrequests', null, projectRequest, {})
.create(projectRequestsVersion, null, projectRequest, {})
.then(function(project) {
RecentlyViewedProjectsService.addProjectUID(project.metadata.uid);
if (cachedProjectData) {
......@@ -3287,11 +3290,11 @@ angular.module('openshiftCommonServices')
},
canCreate: function() {
return DataService.get("projectrequests", null, {}, { errorNotification: false});
return DataService.get(projectRequestsVersion, null, {}, { errorNotification: false});
},
delete: function(project) {
return DataService.delete('projects', project.metadata.name, {}).then(function(deletedProject) {
return DataService.delete(projectsVersion, project.metadata.name, {}).then(function(deletedProject) {
if (cachedProjectData) {
cachedProjectData.update(project, 'DELETED');
}
......
......@@ -5177,9 +5177,10 @@ angular.module('openshiftCommonServices')
angular.module('openshiftCommonServices')
.factory('ProjectsService',
["$location", "$q", "$rootScope", "AuthService", "AuthorizationService", "DataService", "Logger", "RecentlyViewedProjectsService", "annotationNameFilter", function($location,
["$location", "$q", "$rootScope", "APIService", "AuthService", "AuthorizationService", "DataService", "Logger", "RecentlyViewedProjectsService", "annotationNameFilter", function($location,
$q,
$rootScope,
APIService,
AuthService,
AuthorizationService,
DataService,
......@@ -5190,6 +5191,8 @@ angular.module('openshiftCommonServices')
// Cache project data when we can so we don't request it on every page load.
var cachedProjectData;
var cachedProjectDataIncomplete = false;
var projectsVersion = APIService.getPreferredVersion('projects');
var projectRequestsVersion = APIService.getPreferredVersion('projectrequests');
var clearCachedProjectData = function() {
Logger.debug('ProjectsService: clearing project cache');
......@@ -5225,7 +5228,7 @@ angular.module('openshiftCommonServices')
project: undefined
};
return DataService
.get('projects', projectName, context, {errorNotification: false})
.get(projectsVersion, projectName, context, {errorNotification: false})
.then(function(project) {
return AuthorizationService
.getProjectRules(projectName)
......@@ -5275,7 +5278,7 @@ angular.module('openshiftCommonServices')
}
Logger.debug('ProjectsService: listing projects, force refresh', forceRefresh);
return DataService.list('projects', {}).then(function(projectData) {
return DataService.list(projectsVersion, {}).then(function(projectData) {
cachedProjectData = projectData;
return projectData;
}, function(error) {
......@@ -5294,14 +5297,14 @@ angular.module('openshiftCommonServices')
// Wrap `DataService.watch` so we can update the cached projects
// list on changes. TODO: We might want to disable watches entirely
// if we know the project list is large.
return DataService.watch('projects', context, function(projectData) {
return DataService.watch(projectsVersion, context, function(projectData) {
cachedProjectData = projectData;
callback(projectData);
});
},
update: function(projectName, data) {
return DataService.update('projects', projectName, cleanEditableAnnotations(data), {
return DataService.update(projectsVersion, projectName, cleanEditableAnnotations(data), {
projectName: projectName
}, {
errorNotification: false
......@@ -5325,7 +5328,7 @@ angular.module('openshiftCommonServices')
description: description
};
return DataService
.create('projectrequests', null, projectRequest, {})
.create(projectRequestsVersion, null, projectRequest, {})
.then(function(project) {
RecentlyViewedProjectsService.addProjectUID(project.metadata.uid);
if (cachedProjectData) {
......@@ -5336,11 +5339,11 @@ angular.module('openshiftCommonServices')
},
canCreate: function() {
return DataService.get("projectrequests", null, {}, { errorNotification: false});
return DataService.get(projectRequestsVersion, null, {}, { errorNotification: false});
},
delete: function(project) {
return DataService.delete('projects', project.metadata.name, {}).then(function(deletedProject) {
return DataService.delete(projectsVersion, project.metadata.name, {}).then(function(deletedProject) {
if (cachedProjectData) {
cachedProjectData.update(project, 'DELETED');
}
......
......@@ -2323,8 +2323,8 @@ token ? (authLogger.log("LocalStorageUserStore.setToken", token, ttl), localStor
}
};
} ];
}), angular.module("openshiftCommonServices").factory("ProjectsService", [ "$location", "$q", "$rootScope", "AuthService", "AuthorizationService", "DataService", "Logger", "RecentlyViewedProjectsService", "annotationNameFilter", function($location, $q, $rootScope, AuthService, AuthorizationService, DataService, Logger, RecentlyViewedProjectsService, annotationNameFilter) {
var cachedProjectData, cachedProjectDataIncomplete = !1, clearCachedProjectData = function() {
}), angular.module("openshiftCommonServices").factory("ProjectsService", [ "$location", "$q", "$rootScope", "APIService", "AuthService", "AuthorizationService", "DataService", "Logger", "RecentlyViewedProjectsService", "annotationNameFilter", function($location, $q, $rootScope, APIService, AuthService, AuthorizationService, DataService, Logger, RecentlyViewedProjectsService, annotationNameFilter) {
var cachedProjectData, cachedProjectDataIncomplete = !1, projectsVersion = APIService.getPreferredVersion("projects"), projectRequestsVersion = APIService.getPreferredVersion("projectrequests"), clearCachedProjectData = function() {
Logger.debug("ProjectsService: clearing project cache"), cachedProjectData = null, cachedProjectDataIncomplete = !1;
};
AuthService.onUserChanged(clearCachedProjectData), AuthService.onLogout(clearCachedProjectData);
......@@ -2342,7 +2342,7 @@ projectPromise:$.Deferred(),
projectName:projectName,
project:void 0
};
return DataService.get("projects", projectName, context, {
return DataService.get(projectsVersion, projectName, context, {
errorNotification:!1
}).then(function(project) {
return AuthorizationService.getProjectRules(projectName).then(function() {
......@@ -2359,7 +2359,7 @@ error_description:description
});
},
list:function(forceRefresh) {
return cachedProjectData && !forceRefresh ? (Logger.debug("ProjectsService: returning cached project data"), $q.when(cachedProjectData)) :(Logger.debug("ProjectsService: listing projects, force refresh", forceRefresh), DataService.list("projects", {}).then(function(projectData) {
return cachedProjectData && !forceRefresh ? (Logger.debug("ProjectsService: returning cached project data"), $q.when(cachedProjectData)) :(Logger.debug("ProjectsService: listing projects, force refresh", forceRefresh), DataService.list(projectsVersion, {}).then(function(projectData) {
return cachedProjectData = projectData, projectData;
}, function(error) {
return cachedProjectData = DataService.createData([]), cachedProjectDataIncomplete = !0, $q.reject();
......@@ -2369,12 +2369,12 @@ isProjectListIncomplete:function() {
return cachedProjectDataIncomplete;
},
watch:function(context, callback) {
return DataService.watch("projects", context, function(projectData) {
return DataService.watch(projectsVersion, context, function(projectData) {
cachedProjectData = projectData, callback(projectData);
});
},
update:function(projectName, data) {
return DataService.update("projects", projectName, cleanEditableAnnotations(data), {
return DataService.update(projectsVersion, projectName, cleanEditableAnnotations(data), {
projectName:projectName
}, {
errorNotification:!1
......@@ -2392,17 +2392,17 @@ name:name
displayName:displayName,
description:description
};
return DataService.create("projectrequests", null, projectRequest, {}).then(function(project) {
return DataService.create(projectRequestsVersion, null, projectRequest, {}).then(function(project) {
return RecentlyViewedProjectsService.addProjectUID(project.metadata.uid), cachedProjectData && cachedProjectData.update(project, "ADDED"), project;
});
},
canCreate:function() {
return DataService.get("projectrequests", null, {}, {
return DataService.get(projectRequestsVersion, null, {}, {
errorNotification:!1
});
},
"delete":function(project) {
return DataService["delete"]("projects", project.metadata.name, {}).then(function(deletedProject) {
return DataService["delete"](projectsVersion, project.metadata.name, {}).then(function(deletedProject) {
return cachedProjectData && cachedProjectData.update(project, "DELETED"), deletedProject;
});
}
......
......@@ -5,6 +5,7 @@ angular.module('openshiftCommonServices')
function($location,
$q,
$rootScope,
APIService,
AuthService,
AuthorizationService,
DataService,
......@@ -15,6 +16,8 @@ angular.module('openshiftCommonServices')
// Cache project data when we can so we don't request it on every page load.
var cachedProjectData;
var cachedProjectDataIncomplete = false;
var projectsVersion = APIService.getPreferredVersion('projects');
var projectRequestsVersion = APIService.getPreferredVersion('projectrequests');
var clearCachedProjectData = function() {
Logger.debug('ProjectsService: clearing project cache');
......@@ -50,7 +53,7 @@ angular.module('openshiftCommonServices')
project: undefined
};
return DataService
.get('projects', projectName, context, {errorNotification: false})
.get(projectsVersion, projectName, context, {errorNotification: false})
.then(function(project) {
return AuthorizationService
.getProjectRules(projectName)
......@@ -100,7 +103,7 @@ angular.module('openshiftCommonServices')
}
Logger.debug('ProjectsService: listing projects, force refresh', forceRefresh);
return DataService.list('projects', {}).then(function(projectData) {
return DataService.list(projectsVersion, {}).then(function(projectData) {
cachedProjectData = projectData;
return projectData;
}, function(error) {
......@@ -119,14 +122,14 @@ angular.module('openshiftCommonServices')
// Wrap `DataService.watch` so we can update the cached projects
// list on changes. TODO: We might want to disable watches entirely
// if we know the project list is large.
return DataService.watch('projects', context, function(projectData) {
return DataService.watch(projectsVersion, context, function(projectData) {
cachedProjectData = projectData;
callback(projectData);
});
},
update: function(projectName, data) {
return DataService.update('projects', projectName, cleanEditableAnnotations(data), {
return DataService.update(projectsVersion, projectName, cleanEditableAnnotations(data), {
projectName: projectName
}, {
errorNotification: false
......@@ -150,7 +153,7 @@ angular.module('openshiftCommonServices')
description: description
};
return DataService
.create('projectrequests', null, projectRequest, {})
.create(projectRequestsVersion, null, projectRequest, {})
.then(function(project) {
RecentlyViewedProjectsService.addProjectUID(project.metadata.uid);
if (cachedProjectData) {
......@@ -161,11 +164,11 @@ angular.module('openshiftCommonServices')
},
canCreate: function() {
return DataService.get("projectrequests", null, {}, { errorNotification: false});
return DataService.get(projectRequestsVersion, null, {}, { errorNotification: false});
},
delete: function(project) {
return DataService.delete('projects', project.metadata.name, {}).then(function(deletedProject) {
return DataService.delete(projectsVersion, project.metadata.name, {}).then(function(deletedProject) {
if (cachedProjectData) {
cachedProjectData.update(project, 'DELETED');
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment