diff --git a/EnvelopeGenerator.GeneratorAPI/ClientApp/envelope-generator-ui/src/app/app.config.ts b/EnvelopeGenerator.GeneratorAPI/ClientApp/envelope-generator-ui/src/app/app.config.ts index 6de1bf84..98f2bd19 100644 --- a/EnvelopeGenerator.GeneratorAPI/ClientApp/envelope-generator-ui/src/app/app.config.ts +++ b/EnvelopeGenerator.GeneratorAPI/ClientApp/envelope-generator-ui/src/app/app.config.ts @@ -1,12 +1,11 @@ import { ApplicationConfig } from '@angular/core'; import { provideRouter } from '@angular/router'; - import { routes } from './app.routes'; import { provideClientHydration } from '@angular/platform-browser'; import { provideAnimationsAsync } from '@angular/platform-browser/animations/async'; import { APP_BASE_HREF } from '@angular/common'; -import { BaseHrefService } from './services/base-href.service'; - +import { UrlService } from './services/url.service'; +import { API_URL } from './tokens/index' export const appConfig: ApplicationConfig = { providers: [ provideRouter(routes), @@ -14,8 +13,13 @@ export const appConfig: ApplicationConfig = { provideAnimationsAsync(), { provide: APP_BASE_HREF, - useFactory: (baseHrefService: BaseHrefService) => baseHrefService.getBaseHref(), - deps: [BaseHrefService] + useFactory: (urlService: UrlService) => urlService.getBaseHref(), + deps: [UrlService] + }, + { + provide: API_URL, + useFactory: (urlService: UrlService) => urlService.getApiUrl(), + deps: [UrlService] } ] -}; +}; \ No newline at end of file diff --git a/EnvelopeGenerator.GeneratorAPI/ClientApp/envelope-generator-ui/src/app/services/auth.service.ts b/EnvelopeGenerator.GeneratorAPI/ClientApp/envelope-generator-ui/src/app/services/auth.service.ts index 59127312..d9496162 100644 --- a/EnvelopeGenerator.GeneratorAPI/ClientApp/envelope-generator-ui/src/app/services/auth.service.ts +++ b/EnvelopeGenerator.GeneratorAPI/ClientApp/envelope-generator-ui/src/app/services/auth.service.ts @@ -1,28 +1,28 @@ -import { Injectable, Inject, inject } from '@angular/core'; +import { Injectable, inject } from '@angular/core'; import { HttpClient } from '@angular/common/http'; import { Observable } from 'rxjs'; -import { APP_BASE_HREF } from '@angular/common'; +import { API_URL } from '../tokens/index'; @Injectable({ providedIn: 'root' }) export class AuthService { - private baseUrl: string; + private url: string; constructor(private http: HttpClient) { - const baseHref = inject(APP_BASE_HREF); - this.baseUrl = `${baseHref}auth`; + const api_url = inject(API_URL); + this.url = `${api_url}/auth`; } login(credentials: { username: string; password: string }): Observable { - return this.http.post(`${this.baseUrl}login`, credentials); + return this.http.post(`${this.url}/login`, credentials); } logout(): Observable { - return this.http.post(`${this.baseUrl}logout`, {}); + return this.http.post(`${this.url}/logout`, {}); } isAuthenticated(): Observable { - return this.http.get(`${this.baseUrl}check`); + return this.http.get(`${this.url}/check`); } } \ No newline at end of file diff --git a/EnvelopeGenerator.GeneratorAPI/ClientApp/envelope-generator-ui/src/app/services/base-href.service.spec.ts b/EnvelopeGenerator.GeneratorAPI/ClientApp/envelope-generator-ui/src/app/services/url.service.spec.ts similarity index 53% rename from EnvelopeGenerator.GeneratorAPI/ClientApp/envelope-generator-ui/src/app/services/base-href.service.spec.ts rename to EnvelopeGenerator.GeneratorAPI/ClientApp/envelope-generator-ui/src/app/services/url.service.spec.ts index 27b1db30..31de0749 100644 --- a/EnvelopeGenerator.GeneratorAPI/ClientApp/envelope-generator-ui/src/app/services/base-href.service.spec.ts +++ b/EnvelopeGenerator.GeneratorAPI/ClientApp/envelope-generator-ui/src/app/services/url.service.spec.ts @@ -1,13 +1,13 @@ import { TestBed } from '@angular/core/testing'; -import { BaseHrefService } from './base-href.service'; +import { UrlService } from './url.service'; -describe('BaseHrefService', () => { - let service: BaseHrefService; +describe('UrlService', () => { + let service: UrlService; beforeEach(() => { TestBed.configureTestingModule({}); - service = TestBed.inject(BaseHrefService); + service = TestBed.inject(UrlService); }); it('should be created', () => { diff --git a/EnvelopeGenerator.GeneratorAPI/ClientApp/envelope-generator-ui/src/app/services/base-href.service.ts b/EnvelopeGenerator.GeneratorAPI/ClientApp/envelope-generator-ui/src/app/services/url.service.ts similarity index 57% rename from EnvelopeGenerator.GeneratorAPI/ClientApp/envelope-generator-ui/src/app/services/base-href.service.ts rename to EnvelopeGenerator.GeneratorAPI/ClientApp/envelope-generator-ui/src/app/services/url.service.ts index 8345b658..8b0bcbf5 100644 --- a/EnvelopeGenerator.GeneratorAPI/ClientApp/envelope-generator-ui/src/app/services/base-href.service.ts +++ b/EnvelopeGenerator.GeneratorAPI/ClientApp/envelope-generator-ui/src/app/services/url.service.ts @@ -1,18 +1,26 @@ -// base-href.service.ts import { Injectable, Inject, inject } from '@angular/core'; import { DOCUMENT } from '@angular/common'; +import { Meta } from '@angular/platform-browser'; @Injectable({ providedIn: 'root' }) -export class BaseHrefService { +export class UrlService { document: Document; + meta: Meta; + constructor() { this.document = inject(DOCUMENT) + this.meta = inject(Meta) } getBaseHref(): string { const baseElement = this.document.querySelector('base'); return baseElement?.getAttribute('href') || '/'; } + + getApiUrl(): string | null { + const apiMetaTag = this.meta.getTag('name="api-url"'); + return apiMetaTag ? apiMetaTag.content : null; + } } \ No newline at end of file diff --git a/EnvelopeGenerator.GeneratorAPI/ClientApp/envelope-generator-ui/src/app/tokens/index.ts b/EnvelopeGenerator.GeneratorAPI/ClientApp/envelope-generator-ui/src/app/tokens/index.ts new file mode 100644 index 00000000..ae05e6bd --- /dev/null +++ b/EnvelopeGenerator.GeneratorAPI/ClientApp/envelope-generator-ui/src/app/tokens/index.ts @@ -0,0 +1,3 @@ +import { InjectionToken } from '@angular/core'; + +export const API_URL = new InjectionToken('API_URL'); \ No newline at end of file diff --git a/EnvelopeGenerator.GeneratorAPI/ClientApp/envelope-generator-ui/src/index.html b/EnvelopeGenerator.GeneratorAPI/ClientApp/envelope-generator-ui/src/index.html index 13df8b22..fffc4c2a 100644 --- a/EnvelopeGenerator.GeneratorAPI/ClientApp/envelope-generator-ui/src/index.html +++ b/EnvelopeGenerator.GeneratorAPI/ClientApp/envelope-generator-ui/src/index.html @@ -4,6 +4,7 @@ signFlow +