]> git.immae.eu Git - github/Chocobozzz/PeerTube.git/blobdiff - client/src/app/shared/auth/auth-http.service.ts
Use typescript standard and lint all files
[github/Chocobozzz/PeerTube.git] / client / src / app / shared / auth / auth-http.service.ts
index 2392898cae43521a56bcb348af5ea84d5c09ec09..0fbaab0a845e72eebb0ad150da4b326004ad1a1b 100644 (file)
@@ -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<Response> {
-    if (!options) options = {};
+  request (url: string | Request, options?: RequestOptionsArgs): Observable<Response> {
+    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<Response> {
-    if (!options) options = {};
-    options.method = RequestMethod.Delete;
+  delete (url: string, options?: RequestOptionsArgs): Observable<Response> {
+    if (!options) options = {}
+    options.method = RequestMethod.Delete
 
-    return this.request(url, options);
+    return this.request(url, options)
   }
 
-  get(url: string, options?: RequestOptionsArgs): Observable<Response> {
-    if (!options) options = {};
-    options.method = RequestMethod.Get;
+  get (url: string, options?: RequestOptionsArgs): Observable<Response> {
+    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<Response> {
-    if (!options) options = {};
-    options.method = RequestMethod.Post;
-    options.body = body;
+  post (url: string, body: any, options?: RequestOptionsArgs): Observable<Response> {
+    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<Response> {
-    if (!options) options = {};
-    options.method = RequestMethod.Put;
-    options.body = body;
+  put (url: string, body: any, options?: RequestOptionsArgs): Observable<Response> {
+    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 ]
+  }
+]