X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;ds=sidebyside;f=client%2Fsrc%2Fapp%2Fshared%2Fauth%2Fauth-http.service.ts;h=0fbaab0a845e72eebb0ad150da4b326004ad1a1b;hb=df98563e2104b82b119c00a3cd83cd0dc1242d25;hp=2392898cae43521a56bcb348af5ea84d5c09ec09;hpb=a6375e69668ea42e19531c6bc68dcd37f3f7cbd7;p=github%2FChocobozzz%2FPeerTube.git diff --git a/client/src/app/shared/auth/auth-http.service.ts b/client/src/app/shared/auth/auth-http.service.ts index 2392898ca..0fbaab0a8 100644 --- a/client/src/app/shared/auth/auth-http.service.ts +++ b/client/src/app/shared/auth/auth-http.service.ts @@ -1,4 +1,4 @@ -import { Injectable } from '@angular/core'; +import { Injectable } from '@angular/core' import { ConnectionBackend, Headers, @@ -7,74 +7,87 @@ import { RequestMethod, RequestOptions, RequestOptionsArgs, - Response -} from '@angular/http'; -import { Observable } from 'rxjs/Observable'; + Response, + XHRBackend +} from '@angular/http' +import { Observable } from 'rxjs/Observable' -import { AuthService } from './auth.service'; +import { AuthService } from '../../core' @Injectable() export class AuthHttp extends Http { - constructor(backend: ConnectionBackend, defaultOptions: RequestOptions, private authService: AuthService) { - super(backend, defaultOptions); + constructor (backend: ConnectionBackend, defaultOptions: RequestOptions, private authService: AuthService) { + super(backend, defaultOptions) } - request(url: string | Request, options?: RequestOptionsArgs): Observable { - if (!options) options = {}; + request (url: string | Request, options?: RequestOptionsArgs): Observable { + if (!options) options = {} - options.headers = new Headers(); - this.setAuthorizationHeader(options.headers); + options.headers = new Headers() + this.setAuthorizationHeader(options.headers) return super.request(url, options) .catch((err) => { if (err.status === 401) { - return this.handleTokenExpired(url, options); + return this.handleTokenExpired(url, options) } - return Observable.throw(err); - }); + return Observable.throw(err) + }) } - delete(url: string, options?: RequestOptionsArgs): Observable { - if (!options) options = {}; - options.method = RequestMethod.Delete; + delete (url: string, options?: RequestOptionsArgs): Observable { + if (!options) options = {} + options.method = RequestMethod.Delete - return this.request(url, options); + return this.request(url, options) } - get(url: string, options?: RequestOptionsArgs): Observable { - if (!options) options = {}; - options.method = RequestMethod.Get; + get (url: string, options?: RequestOptionsArgs): Observable { + if (!options) options = {} + options.method = RequestMethod.Get - return this.request(url, options); + return this.request(url, options) } - post(url: string, body: any, options?: RequestOptionsArgs): Observable { - if (!options) options = {}; - options.method = RequestMethod.Post; - options.body = body; + post (url: string, body: any, options?: RequestOptionsArgs): Observable { + if (!options) options = {} + options.method = RequestMethod.Post + options.body = body - return this.request(url, options); + return this.request(url, options) } - put(url: string, body: any, options?: RequestOptionsArgs): Observable { - if (!options) options = {}; - options.method = RequestMethod.Put; - options.body = body; + put (url: string, body: any, options?: RequestOptionsArgs): Observable { + if (!options) options = {} + options.method = RequestMethod.Put + options.body = body - return this.request(url, options); + return this.request(url, options) } - private handleTokenExpired(url: string | Request, options: RequestOptionsArgs) { + private handleTokenExpired (url: string | Request, options: RequestOptionsArgs) { return this.authService.refreshAccessToken() .flatMap(() => { - this.setAuthorizationHeader(options.headers); + this.setAuthorizationHeader(options.headers) - return super.request(url, options); - }); + return super.request(url, options) + }) } - private setAuthorizationHeader(headers: Headers) { - headers.set('Authorization', this.authService.getRequestHeaderValue()); + private setAuthorizationHeader (headers: Headers) { + headers.set('Authorization', this.authService.getRequestHeaderValue()) } } + +export function useFactory (backend: XHRBackend, defaultOptions: RequestOptions, authService: AuthService) { + return new AuthHttp(backend, defaultOptions, authService) +} + +export const AUTH_HTTP_PROVIDERS = [ + { + provide: AuthHttp, + useFactory, + deps: [ XHRBackend, RequestOptions, AuthService ] + } +]