66 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
		
		
			
		
	
	
			66 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
|  | 'use strict'; | ||
|  | 
 | ||
|  | angular | ||
|  |   .module('oauth3', []) | ||
|  |   .service('Oauth3', [ | ||
|  |     '$timeout' | ||
|  |   , '$q' | ||
|  |   , '$http' | ||
|  |   , function Oauth3($timeout, $q, $http) { | ||
|  | 
 | ||
|  |     var oauth3 = window.OAUTH3; | ||
|  | 
 | ||
|  |     // We need to make angular's $q appear to be a standard Promise/A+
 | ||
|  |     // fortunately, this is pretty easy
 | ||
|  |     // TODO don't use `new`, use a create function instead
 | ||
|  |     function PromiseAngularQ(fn) { | ||
|  |       var me = this; | ||
|  |       var d = $q.defer(); | ||
|  | 
 | ||
|  |       $timeout(function () { | ||
|  |         fn(d.resolve, d.reject); | ||
|  |       }, 0); | ||
|  | 
 | ||
|  |       //this.then = d.promise.then;
 | ||
|  |       //this.catch = d.promise.catch;
 | ||
|  |       me.then = function (fn) { | ||
|  |         return d.promise.then(fn); | ||
|  |       }; | ||
|  |       me.catch = function (fn) { | ||
|  |         return d.promise.catch(fn); | ||
|  |       }; | ||
|  |       // return d.promise;
 | ||
|  |     } | ||
|  |     PromiseAngularQ.create = function (fn) { | ||
|  |       var d = $q.defer(); | ||
|  |       $timeout(function () { | ||
|  |         fn(d.resolve, d.reject); | ||
|  |       }, 0); | ||
|  |       return d.promise; | ||
|  |     }; | ||
|  | 
 | ||
|  | 
 | ||
|  |     //PromiseAngularQ.create = PromiseAngularQ;
 | ||
|  |     PromiseAngularQ.resolve = function (dataOrPromise) { | ||
|  |       return $q.when(dataOrPromise); | ||
|  |     }; | ||
|  |     PromiseAngularQ.reject = function (errOrPromise) { | ||
|  |       return $q.reject(errOrPromise); | ||
|  |     }; | ||
|  |     PromiseAngularQ.all = function (arr) { | ||
|  |       return $q.all(arr); | ||
|  |     }; | ||
|  | 
 | ||
|  |     oauth3.providePromise(PromiseAngularQ).then(function () { | ||
|  |       // ignore
 | ||
|  |     }, function (/*err*/) { | ||
|  |       console.error("Bad Promise Implementation!"); | ||
|  |     }); | ||
|  | 
 | ||
|  |     oauth3.provideRequest($http); | ||
|  | 
 | ||
|  |     window.ngOauth3 = oauth3; | ||
|  | 
 | ||
|  |     return oauth3; | ||
|  |   }]); |