Fixes for fresh login check in API

- Fixes enter key causing two requests
- Makes sure fresh login is handled for resources as well

Fixes #1625
This commit is contained in:
Joseph Schorr 2016-07-25 15:29:55 -07:00
parent 640012103c
commit 1655e79a74

View file

@ -6,9 +6,8 @@
angular.module('quay').factory('ApiService', ['Restangular', '$q', 'UtilService', function(Restangular, $q, UtilService) {
var apiService = {};
var getResource = function(path, opt_background) {
var getResource = function(getMethod, operation, opt_parameters, opt_background) {
var resource = {};
resource.url = path;
resource.withOptions = function(options) {
this.options = options;
return this;
@ -16,21 +15,13 @@ angular.module('quay').factory('ApiService', ['Restangular', '$q', 'UtilService'
resource.get = function(processor, opt_errorHandler) {
var options = this.options;
var performer = Restangular.one(this.url);
var result = {
'loading': true,
'value': null,
'hasError': false
};
if (opt_background) {
performer.withHttpConfig({
'ignoreLoadingBar': true
});
}
performer.get(options).then(function(resp) {
getMethod(opt_parameters, options, opt_background).then(function(resp) {
result.value = processor(resp);
result.loading = false;
}, function(resp) {
@ -136,6 +127,10 @@ angular.module('quay').factory('ApiService', ['Restangular', '$q', 'UtilService'
};
var verifyNow = function() {
if (!$('#freshPassword').val()) {
return;
}
var info = {
'password': $('#freshPassword').val()
};
@ -234,7 +229,8 @@ angular.module('quay').factory('ApiService', ['Restangular', '$q', 'UtilService'
// If the method for the operation is a GET, add an operationAsResource method.
if (method == 'get') {
apiService[operationName + 'AsResource'] = function(opt_parameters, opt_background) {
return getResource(buildUrl(urlPath, opt_parameters), opt_background);
var getMethod = apiService[operationName];
return getResource(getMethod, operation, opt_parameters, opt_background);
};
}