client-ui
Version:
Testing implementation of nodeJs Backend, angular frontend, and hopefully in a way that this can be deployed to s3/cloudfront
121 lines (108 loc) • 4.35 kB
JavaScript
angular.module(moduleName).service('client', ['$http', 'rootConstants', 'aiStorage', '$q', "promiseWrapper", function ($http, rootConstants, store, $q, promiseWrapper) {
var self = this;
self.setClientStore = function(clientData) {
store.set('client', clientData);
};
self.getClientStore = function() {
return store.get('client');
};
self.unsetClientStore = function() {
store.remove('client');
};
self.createProspect = function(prospectData) {
var deferred = $q.defer();
$http.post(rootConstants.server + 'clients/createProspect', prospectData)
.then(function(returnData) {
return deferred.resolve(returnData.data);
}, function(error) {
return deferred.reject(error.data);
});
return deferred.promise;
};
self.createClient = function (clientData) {
var promise = new promiseWrapper();
promise.timeoutAfter({error: {code: "CREATION_TIMEOUT"}});
$http.post(rootConstants.server + 'signup/', clientData)
.then(function(returnedClientData) {
if (!promise.resolved) {
self.setClientStore(returnedClientData.data);
return promise.resolve(returnedClientData.data);
}
}, function(error) {
return promise.reject(error.data);
});
return promise.promise;
};
self.getClient = function () {
var deferred = $q.defer();
$http.get(rootConstants.server + 'clients/client')
.then(function(clientData) {
self.setClientStore(clientData.data);
return deferred.resolve(clientData.data);
}, function(error) {
return deferred.reject(error.data);
});
return deferred.promise;
};
self.resendVerificationEmail = function(clientId) {
var deferred = $q.defer();
var url = rootConstants.server + 'clients/' + clientId + '/resendEmailHash';
$http.get(url)
.then(function(clientData) {
self.setClientStore(clientData.data);
deferred.resolve(clientData.data);
}, function(error) {
deferred.reject(error.data);
});
return deferred.promise;
};
self.updateClient = function(clientData) {
var deferred = $q.defer();
var clientId = self.getClientStore().clientId;
$http.put(rootConstants.server + 'clients/' + clientId, clientData)
.then(function(res) {
self.setClientStore(res.data);
return deferred.resolve(res.data);
}, function(error) {
return deferred.reject(error.data);
});
return deferred.promise;
};
self.updateEmail = function(email) {
var deferred = $q.defer();
var clientId = self.getClientStore().clientId;
$http.put(rootConstants.server + 'clients/' + clientId + '/email', email)
.then(function(res) {
self.setClientStore(res.data);
return deferred.resolve(res.data);
}, function(error) {
return deferred.reject(error.data);
});
return deferred.promise;
};
self.resetPassword = function(passwords) {
var deferred = $q.defer();
var clientId = self.getClientStore().clientId;
$http.put(rootConstants.server + 'clients/' + clientId + '/password/', passwords)
.then(function(res) {
return deferred.resolve(res.data);
}, function(error) {
return deferred.reject(error.data);
});
return deferred.promise;
};
self.generateUploadUrl = function(form) {
var clientId = self.getClientStore().clientId;
return $http.post(rootConstants.server + 'clients/' + clientId + '/documents/generate/uploadUrl', form);
};
self.uploadCallback = function(url) {
var deferred = $q.defer();
$http.put(url)
.then(function(response) {
deferred.resolve(response.data);
}, function(error) {
deferred.reject(error.data);
});
return deferred.promise;
};
}]);