UserOauthController.js 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. define(['base'], App =>
  2. App.controller('UserOauthController', [
  3. '$scope',
  4. '$q',
  5. '_',
  6. 'UserOauthDataService',
  7. function($scope, $q, _, UserOauthDataService) {
  8. $scope.providers = [
  9. { key: 'google', name: 'Google' },
  10. { key: 'orcid', name: 'Orcid' },
  11. { key: 'twitter', name: 'Twitter' }
  12. ]
  13. const _monitorRequest = function(promise) {
  14. $scope.ui.hasError = false
  15. $scope.ui.isLoadingProviders = true
  16. promise
  17. .catch(response => {
  18. $scope.ui.hasError = true
  19. $scope.ui.errorMessage =
  20. response && response.data && response.data.message
  21. ? response.data.message
  22. : 'error'
  23. })
  24. .finally(() => {
  25. $scope.ui.isLoadingProviders = false
  26. })
  27. return promise
  28. }
  29. const _reset = function() {
  30. $scope.ui = {
  31. hasError: false,
  32. errorMessage: '',
  33. isLoadingProviders: false
  34. }
  35. $scope.userProviders = {}
  36. }
  37. const _getUserV1OauthProviders = () => {
  38. $scope.ui.isLoadingProviders = true
  39. return _monitorRequest(UserOauthDataService.getUserOauthV1()).then(
  40. userProviders => {
  41. $scope.userProviders = userProviders
  42. }
  43. )
  44. }
  45. _reset()
  46. return _getUserV1OauthProviders()
  47. }
  48. ]))