Update projects service to use getPreferredVersion

parent 623cb787
......@@ -3112,6 +3112,7 @@ angular.module('openshiftCommonServices')
function($location,
$q,
$rootScope,
APIService,
AuthService,
AuthorizationService,
DataService,
......@@ -3122,6 +3123,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');
......@@ -3157,7 +3160,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)
......@@ -3207,7 +3210,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) {
......@@ -3226,14 +3229,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
......@@ -3257,7 +3260,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) {
......@@ -3268,11 +3271,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');
}
......
......@@ -5144,9 +5144,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,
......@@ -5157,6 +5158,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');
......@@ -5192,7 +5195,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)
......@@ -5242,7 +5245,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) {
......@@ -5261,14 +5264,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
......@@ -5292,7 +5295,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) {
......@@ -5303,11 +5306,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');
}
......
......@@ -2325,8 +2325,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);
......@@ -2344,7 +2344,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() {
......@@ -2361,7 +2361,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();
......@@ -2371,12 +2371,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
......@@ -2394,17 +2394,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