diff --git a/src/app/app.module.ts b/src/app/app.module.ts index 9a096d6..8270401 100644 --- a/src/app/app.module.ts +++ b/src/app/app.module.ts @@ -1,5 +1,6 @@ import { NgModule, CUSTOM_ELEMENTS_SCHEMA } from '@angular/core'; import { BrowserModule } from '@angular/platform-browser'; +import { HTTP_INTERCEPTORS, HttpClientModule } from '@angular/common/http'; import { AppComponent } from './app.component'; import { ContactSidebarComponent } from './contact-sidebar/contact-sidebar.component'; @@ -10,7 +11,8 @@ import { ProjectsComponent } from './projects/projects.component'; import { BlogComponent } from './blog/blog.component'; import { ContactComponent } from './contact/contact.component'; import { AppRoutingModule } from './app-routing.module'; -import { HttpClientModule } from '@angular/common/http'; +import { AuthInterceptor } from './http-interceptors/auth.interceptor'; +import { httpInterceptorProviders } from './http-interceptors'; @NgModule({ declarations: [ @@ -29,7 +31,7 @@ import { HttpClientModule } from '@angular/common/http'; AppRoutingModule ], schemas: [CUSTOM_ELEMENTS_SCHEMA], - providers: [], + providers: [httpInterceptorProviders], bootstrap: [AppComponent] }) export class AppModule { } diff --git a/src/app/base/base.component.ts b/src/app/base/base.component.ts index 6aac0b6..a2bc505 100644 --- a/src/app/base/base.component.ts +++ b/src/app/base/base.component.ts @@ -5,7 +5,7 @@ import { CvService } from "../services/cv.service"; export abstract class BaseComponent { public model: T = {}; candidateId: number = 1; - imagesOrigin: string = environment.imagesUrl + '/images/'; + imagesOrigin: string = environment.apiUrl + '/images/'; constructor(public svc: CvService) { } diff --git a/src/app/http-interceptors/auth.interceptor.ts b/src/app/http-interceptors/auth.interceptor.ts new file mode 100644 index 0000000..6caa6dc --- /dev/null +++ b/src/app/http-interceptors/auth.interceptor.ts @@ -0,0 +1,18 @@ +import { HttpEvent, HttpHandler, HttpInterceptor, HttpRequest } from "@angular/common/http"; +import { Observable } from "rxjs"; +import { AuthService } from "../services/auth.service"; +import { Injectable } from "@angular/core"; + +@Injectable() +export class AuthInterceptor implements HttpInterceptor{ + constructor(public authSvc: AuthService){} + intercept(req: HttpRequest, next: HttpHandler): Observable> { + const apiKey = this.authSvc.getApiKey(); + + const authReq = req.clone({ + headers: req.headers.set('XApiKey', apiKey) + }); + + return next.handle(authReq); + } +} \ No newline at end of file diff --git a/src/app/http-interceptors/index.ts b/src/app/http-interceptors/index.ts new file mode 100644 index 0000000..b5e66cd --- /dev/null +++ b/src/app/http-interceptors/index.ts @@ -0,0 +1,7 @@ +import { HTTP_INTERCEPTORS } from "@angular/common/http"; + +import { AuthInterceptor } from "./auth.interceptor"; + +export const httpInterceptorProviders = [ + {provide: HTTP_INTERCEPTORS, useClass: AuthInterceptor, multi: true} +] \ No newline at end of file diff --git a/src/app/services/auth.service.spec.ts b/src/app/services/auth.service.spec.ts new file mode 100644 index 0000000..f1251ca --- /dev/null +++ b/src/app/services/auth.service.spec.ts @@ -0,0 +1,16 @@ +import { TestBed } from '@angular/core/testing'; + +import { AuthService } from './auth.service'; + +describe('AuthService', () => { + let service: AuthService; + + beforeEach(() => { + TestBed.configureTestingModule({}); + service = TestBed.inject(AuthService); + }); + + it('should be created', () => { + expect(service).toBeTruthy(); + }); +}); diff --git a/src/app/services/auth.service.ts b/src/app/services/auth.service.ts new file mode 100644 index 0000000..63d0068 --- /dev/null +++ b/src/app/services/auth.service.ts @@ -0,0 +1,12 @@ +import { Injectable } from '@angular/core'; +import { environment } from 'src/environments/environment'; + +@Injectable({ + providedIn: 'root' +}) +export class AuthService { + + getApiKey(): string{ + return environment.apiKey; + } +} diff --git a/src/environments/environment.development.ts b/src/environments/environment.development.ts index 98e0e6f..d8f088d 100644 --- a/src/environments/environment.development.ts +++ b/src/environments/environment.development.ts @@ -1,4 +1,5 @@ export const environment = { - imagesUrl: 'https://localhost:7013', - blogImagesUrl: 'https://bangararaju.kottedi.in/blog/assets/img/posts/' + apiUrl: 'https://localhost:7013', + blogImagesUrl: 'https://bangararaju-uat.kottedi.in/blog/assets/img/posts/', + apiKey: "c6eAXYcNT873TT7BfMgQyS4ii7hxa53TLEUN7pAGaaU=" }; diff --git a/src/environments/environment.ts b/src/environments/environment.ts index 98e0e6f..0935523 100644 --- a/src/environments/environment.ts +++ b/src/environments/environment.ts @@ -1,4 +1,5 @@ export const environment = { - imagesUrl: 'https://localhost:7013', - blogImagesUrl: 'https://bangararaju.kottedi.in/blog/assets/img/posts/' + apiUrl: 'https://localhost:7013', + blogImagesUrl: 'https://bangararaju-uat.kottedi.in/blog/assets/img/posts/', + apiKey: "" };