1
0
mirror of https://github.com/bitwarden/browser synced 2025-12-17 08:43:33 +00:00

convert api service to ts with fetch

This commit is contained in:
Kyle Spearrin
2017-11-03 11:59:45 -04:00
parent 9f9e3245de
commit 6ae7b2e035
16 changed files with 616 additions and 147 deletions

View File

@@ -1,4 +1,4 @@
angular
angular
.module('bit.accounts')
.controller('accountsHintController', function ($scope, $state, apiService, toastr, $q, utilsService,
@@ -31,13 +31,11 @@
function hintPromise(request) {
return $q(function (resolve, reject) {
apiService.postPasswordHint(request,
function () {
resolve();
},
function (error) {
reject(error);
});
apiService.postPasswordHint(request).then(function () {
resolve();
}, function (error) {
reject(error);
});
});
}
});

View File

@@ -45,17 +45,17 @@ angular
function registerPromise(key, masterPassword, email, hint) {
var deferred = $q.defer();
cryptoService.makeEncKey(key).then(function (encKey) {
var encKey;
cryptoService.makeEncKey(key).then(function (theEncKey) {
encKey = theEncKey;
return cryptoService.hashPassword(masterPassword, key);
}).then(function (hashedPassword) {
var request = new RegisterRequest(email, hashedPassword, hint, encKey.encryptedString);
apiService.postRegister(request,
function () {
deferred.resolve();
},
function (error) {
deferred.reject(error);
});
apiService.postRegister(request).then(function () {
deferred.resolve();
}, function (error) {
deferred.reject(error);
});
});
return deferred.promise;
}

View File

@@ -21,7 +21,6 @@ require('../../scripts/analytics.js');
require('../../scripts/duo.js');
require('../../scripts/u2f.js');
require('../../models/api/requestModels.js');
require('../../models/domainModels.js');
require('../less/libs.less');
@@ -42,6 +41,7 @@ import { SecureNoteData } from '../../models/data/secureNoteData';
import { CipherString } from '../../models/domain/cipherString';
import { CipherRequest } from '../../models/request/cipherRequest';
import { DeviceRequest } from '../../models/request/deviceRequest';
import { DeviceTokenRequest } from '../../models/request/deviceTokenRequest';
import { FolderRequest } from '../../models/request/folderRequest';

View File

@@ -10,7 +10,8 @@ angular
var key = cryptoService.makeKey(masterPassword, email),
deferred = $q.defer(),
deviceRequest = null,
twoFactorRememberedToken;
twoFactorRememberedToken,
hashedPassword;
appIdService.getAppId().then(function (appId) {
deviceRequest = new DeviceRequest(appId, utilsService);
@@ -18,7 +19,8 @@ angular
}).then(function (theTwoFactorRememberedToken) {
twoFactorRememberedToken = theTwoFactorRememberedToken;
return cryptoService.hashPassword(masterPassword, key);
}).then(function (hashedPassword) {
}).then(function (theHashedPassword) {
hashedPassword = theHashedPassword;
var request;
if (twoFactorToken && typeof (twoFactorProvider) !== 'undefined' && twoFactorProvider !== null) {
@@ -33,45 +35,48 @@ angular
request = new TokenRequest(email, hashedPassword, null, null, false, deviceRequest);
}
apiService.postIdentityToken(request, function (response) {
// success
if (!response || !response.accessToken) {
return;
}
return apiService.postIdentityToken(request);
}).then(function (response) {
if (!response) {
return;
}
if (response.twoFactorToken) {
tokenService.setTwoFactorToken(response.twoFactorToken, email);
}
tokenService.setTokens(response.accessToken, response.refreshToken).then(function () {
return cryptoService.setKey(key);
}).then(function () {
return cryptoService.setKeyHash(hashedPassword);
}).then(function () {
userService.setUserIdAndEmail(tokenService.getUserId(), tokenService.getEmail(),
function () {
cryptoService.setEncKey(response.key).then(function () {
return cryptoService.setEncPrivateKey(response.privateKey);
}).then(function () {
chrome.runtime.sendMessage({ command: 'loggedIn' });
deferred.resolve({
twoFactor: false,
twoFactorProviders: null
});
});
});
});
}, function (providers) {
if (!response.accessToken) {
// two factor required
deferred.resolve({
twoFactor: true,
twoFactorProviders: providers
twoFactorProviders: response
});
}, function (error) {
// error
deferred.reject(error);
return;
}
if (response.twoFactorToken) {
tokenService.setTwoFactorToken(response.twoFactorToken, email);
}
return tokenService.setTokens(response.accessToken, response.refreshToken).then(function () {
return cryptoService.setKey(key);
}).then(function () {
return cryptoService.setKeyHash(hashedPassword);
}).then(function () {
userService.setUserIdAndEmail(tokenService.getUserId(), tokenService.getEmail(),
function () {
cryptoService.setEncKey(response.key).then(function () {
return cryptoService.setEncPrivateKey(response.privateKey);
}).then(function () {
chrome.runtime.sendMessage({ command: 'loggedIn' });
deferred.resolve({
twoFactor: false,
twoFactorProviders: null
});
});
});
});
}, function (error) {
// error
deferred.reject(error);
});
return deferred.promise;
};

View File

@@ -1,4 +1,4 @@
angular
angular
.module('bit.settings')
.controller('settingsPremiumController', function ($scope, i18nService, tokenService, apiService, toastr, SweetAlert,
@@ -8,7 +8,7 @@
$scope.price = '$10';
$scope.refresh = function () {
apiService.refreshIdentityToken(function () {
apiService.refreshIdentityToken().then(function () {
toastr.success(i18nService.refreshComplete);
$timeout(function () {
$scope.isPremium = tokenService.getPremium();