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;
|
||
|
}]);
|