From 30038e43df4062fce0292846313c99d5fb503bb0 Mon Sep 17 00:00:00 2001 From: Brandon Clayton <bclayton@usgs.gov> Date: Fri, 13 Dec 2024 13:17:23 -0700 Subject: [PATCH 1/7] add interceptor --- projects/nshmp-apps/src/main.ts | 5 ++-- .../too-many-requests.interceptor.ts | 28 +++++++++++++++++++ 2 files changed, 31 insertions(+), 2 deletions(-) create mode 100644 projects/nshmp-apps/src/shared/interceptors/too-many-requests.interceptor.ts diff --git a/projects/nshmp-apps/src/main.ts b/projects/nshmp-apps/src/main.ts index c5e4a2adc..2c37f0ca7 100644 --- a/projects/nshmp-apps/src/main.ts +++ b/projects/nshmp-apps/src/main.ts @@ -1,4 +1,4 @@ -import {provideHttpClient} from '@angular/common/http'; +import {provideHttpClient, withInterceptors} from '@angular/common/http'; import {enableProdMode, importProvidersFrom} from '@angular/core'; import {bootstrapApplication, BrowserModule} from '@angular/platform-browser'; import {provideAnimations} from '@angular/platform-browser/animations'; @@ -7,6 +7,7 @@ import {provideRouter} from '@angular/router'; import {AppComponent} from './app/app.component'; import {appRoutes} from './app/app.routes'; import {environment} from './environments/environment'; +import {tooManyRequestsInterceptor} from './shared/interceptors/too-many-requests.interceptor'; if (environment.production) { enableProdMode(); @@ -17,6 +18,6 @@ bootstrapApplication(AppComponent, { importProvidersFrom(BrowserModule), provideRouter(appRoutes()), provideAnimations(), - provideHttpClient(), + provideHttpClient(withInterceptors([tooManyRequestsInterceptor])), ], }).catch(err => console.error(err)); diff --git a/projects/nshmp-apps/src/shared/interceptors/too-many-requests.interceptor.ts b/projects/nshmp-apps/src/shared/interceptors/too-many-requests.interceptor.ts new file mode 100644 index 000000000..a843e5599 --- /dev/null +++ b/projects/nshmp-apps/src/shared/interceptors/too-many-requests.interceptor.ts @@ -0,0 +1,28 @@ +import { + HttpErrorResponse, + HttpEvent, + HttpHandlerFn, + HttpRequest, +} from '@angular/common/http'; +import {catchError, Observable} from 'rxjs'; + +export function tooManyRequestsInterceptor( + req: HttpRequest<unknown>, + next: HttpHandlerFn +): Observable<HttpEvent<unknown>> { + return next(req).pipe( + catchError(error => { + console.log(error); + + if (error instanceof HttpErrorResponse) { + console.log(error.status); + + if (error.status === 429) { + console.log(error.statusText); + } + } + + throw error; + }) + ); +} -- GitLab From cbae117c5143b38436fac8194a80562f8555fc9a Mon Sep 17 00:00:00 2001 From: Brandon Clayton <bclayton@usgs.gov> Date: Fri, 13 Dec 2024 13:19:29 -0700 Subject: [PATCH 2/7] test --- .gitlab-ci.yml | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index d2c108618..a7909aa3b 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -281,6 +281,11 @@ End to End Tests: #### Trigger AWS Deployment: + needs: + - Init + - CHS Registry + - Container Registry + - Build rules: - <<: *development-env when: manual -- GitLab From 5828b107fd39921095adaafdc12c1e033c8c06bb Mon Sep 17 00:00:00 2001 From: Brandon Clayton <bclayton@usgs.gov> Date: Fri, 13 Dec 2024 13:19:55 -0700 Subject: [PATCH 3/7] test --- .gitlab-ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index a7909aa3b..b37835e2b 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -285,7 +285,7 @@ Trigger AWS Deployment: - Init - CHS Registry - Container Registry - - Build + - Build Project rules: - <<: *development-env when: manual -- GitLab From bbedd76f93bdbec63cc207eb33aaec842d9d02fa Mon Sep 17 00:00:00 2001 From: Brandon Clayton <bclayton@usgs.gov> Date: Fri, 13 Dec 2024 13:58:22 -0700 Subject: [PATCH 4/7] test --- .../shared/interceptors/too-many-requests.interceptor.ts | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/projects/nshmp-apps/src/shared/interceptors/too-many-requests.interceptor.ts b/projects/nshmp-apps/src/shared/interceptors/too-many-requests.interceptor.ts index a843e5599..1e0920f51 100644 --- a/projects/nshmp-apps/src/shared/interceptors/too-many-requests.interceptor.ts +++ b/projects/nshmp-apps/src/shared/interceptors/too-many-requests.interceptor.ts @@ -15,10 +15,9 @@ export function tooManyRequestsInterceptor( console.log(error); if (error instanceof HttpErrorResponse) { - console.log(error.status); - - if (error.status === 429) { - console.log(error.statusText); + if (typeof error.error === 'string') { + console.log('is string'); + throw new Error(error.error); } } -- GitLab From 5d569234d10a638e6b7fce82e48dff293a979058 Mon Sep 17 00:00:00 2001 From: Brandon Clayton <bclayton@usgs.gov> Date: Fri, 13 Dec 2024 14:26:25 -0700 Subject: [PATCH 5/7] add http interceptor --- projects/nshmp-apps/src/main.ts | 4 ++-- ...any-requests.interceptor.ts => http-error.interceptor.ts} | 5 +---- 2 files changed, 3 insertions(+), 6 deletions(-) rename projects/nshmp-apps/src/shared/interceptors/{too-many-requests.interceptor.ts => http-error.interceptor.ts} (81%) diff --git a/projects/nshmp-apps/src/main.ts b/projects/nshmp-apps/src/main.ts index 2c37f0ca7..4f81ffd98 100644 --- a/projects/nshmp-apps/src/main.ts +++ b/projects/nshmp-apps/src/main.ts @@ -7,7 +7,7 @@ import {provideRouter} from '@angular/router'; import {AppComponent} from './app/app.component'; import {appRoutes} from './app/app.routes'; import {environment} from './environments/environment'; -import {tooManyRequestsInterceptor} from './shared/interceptors/too-many-requests.interceptor'; +import {httpErrorInterceptor} from './shared/interceptors/http-error.interceptor'; if (environment.production) { enableProdMode(); @@ -18,6 +18,6 @@ bootstrapApplication(AppComponent, { importProvidersFrom(BrowserModule), provideRouter(appRoutes()), provideAnimations(), - provideHttpClient(withInterceptors([tooManyRequestsInterceptor])), + provideHttpClient(withInterceptors([httpErrorInterceptor])), ], }).catch(err => console.error(err)); diff --git a/projects/nshmp-apps/src/shared/interceptors/too-many-requests.interceptor.ts b/projects/nshmp-apps/src/shared/interceptors/http-error.interceptor.ts similarity index 81% rename from projects/nshmp-apps/src/shared/interceptors/too-many-requests.interceptor.ts rename to projects/nshmp-apps/src/shared/interceptors/http-error.interceptor.ts index 1e0920f51..100340041 100644 --- a/projects/nshmp-apps/src/shared/interceptors/too-many-requests.interceptor.ts +++ b/projects/nshmp-apps/src/shared/interceptors/http-error.interceptor.ts @@ -6,17 +6,14 @@ import { } from '@angular/common/http'; import {catchError, Observable} from 'rxjs'; -export function tooManyRequestsInterceptor( +export function httpErrorInterceptor( req: HttpRequest<unknown>, next: HttpHandlerFn ): Observable<HttpEvent<unknown>> { return next(req).pipe( catchError(error => { - console.log(error); - if (error instanceof HttpErrorResponse) { if (typeof error.error === 'string') { - console.log('is string'); throw new Error(error.error); } } -- GitLab From edb65d4449b422b899a05c67dae937def6c95211 Mon Sep 17 00:00:00 2001 From: Brandon Clayton <bclayton@usgs.gov> Date: Fri, 13 Dec 2024 14:26:49 -0700 Subject: [PATCH 6/7] remove needs --- .gitlab-ci.yml | 5 ----- 1 file changed, 5 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index b37835e2b..d2c108618 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -281,11 +281,6 @@ End to End Tests: #### Trigger AWS Deployment: - needs: - - Init - - CHS Registry - - Container Registry - - Build Project rules: - <<: *development-env when: manual -- GitLab From b869c42aee8562fb1c64fad8373c93ce0f930812 Mon Sep 17 00:00:00 2001 From: Brandon Clayton <bclayton@usgs.gov> Date: Fri, 13 Dec 2024 14:28:19 -0700 Subject: [PATCH 7/7] make one liner --- .../src/shared/interceptors/http-error.interceptor.ts | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/projects/nshmp-apps/src/shared/interceptors/http-error.interceptor.ts b/projects/nshmp-apps/src/shared/interceptors/http-error.interceptor.ts index 100340041..1de70ea45 100644 --- a/projects/nshmp-apps/src/shared/interceptors/http-error.interceptor.ts +++ b/projects/nshmp-apps/src/shared/interceptors/http-error.interceptor.ts @@ -12,10 +12,11 @@ export function httpErrorInterceptor( ): Observable<HttpEvent<unknown>> { return next(req).pipe( catchError(error => { - if (error instanceof HttpErrorResponse) { - if (typeof error.error === 'string') { - throw new Error(error.error); - } + if ( + error instanceof HttpErrorResponse && + typeof error.error === 'string' + ) { + throw new Error(error.error); } throw error; -- GitLab