@hmcts/ccd-case-ui-toolkit 6.19.13-rc1 → 6.19.13-restricted-case-access

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1985,6 +1985,13 @@
1985
1985
  error[key] = response.error.hasOwnProperty(key) && response.error[key] ? response.error[key] : error[key];
1986
1986
  });
1987
1987
  }
1988
+ // Error object in HttpErrorResponse will be empty for 403 errors
1989
+ // Set the error properties of HttpError accordingly
1990
+ if ((response === null || response === void 0 ? void 0 : response.status) === 403) {
1991
+ error.error = response.statusText;
1992
+ error.status = response.status;
1993
+ error.message = response.message;
1994
+ }
1988
1995
  return error;
1989
1996
  };
1990
1997
  return HttpError;
@@ -2083,14 +2090,13 @@
2083
2090
  this.authService = authService;
2084
2091
  }
2085
2092
  HttpErrorService.convertToHttpError = function (error) {
2093
+ var _a;
2086
2094
  if (error instanceof HttpError) {
2087
2095
  return error;
2088
2096
  }
2089
2097
  var httpError = new HttpError();
2090
2098
  if (error instanceof i1$2.HttpErrorResponse) {
2091
- if (error.headers
2092
- && error.headers.get(HttpErrorService.CONTENT_TYPE)
2093
- && error.headers.get(HttpErrorService.CONTENT_TYPE).indexOf(HttpErrorService.JSON) !== -1) {
2099
+ if (((_a = error.headers) === null || _a === void 0 ? void 0 : _a.get(HttpErrorService.CONTENT_TYPE).indexOf(HttpErrorService.JSON)) !== -1) {
2094
2100
  try {
2095
2101
  httpError = HttpError.from(error);
2096
2102
  }
@@ -2125,7 +2131,7 @@
2125
2131
  console.error('Handling error in http error service.');
2126
2132
  console.error(error);
2127
2133
  var httpError = HttpErrorService.convertToHttpError(error);
2128
- if (redirectIfNotAuthorised && (httpError.status === 401 || httpError.status === 403)) {
2134
+ if (redirectIfNotAuthorised && httpError.status === 401) {
2129
2135
  this.authService.signIn();
2130
2136
  }
2131
2137
  return rxjs.throwError(httpError);
@@ -31076,13 +31082,14 @@
31076
31082
  i0__namespace.ɵɵsetComponentScope(CaseTimelineComponent, [i2__namespace.NgIf, i2__namespace.NgSwitch, i2__namespace.NgSwitchCase, EventLogComponent, CaseHistoryComponent], [i1__namespace.RpxTranslatePipe]);
31077
31083
 
31078
31084
  var CaseResolver = /** @class */ (function () {
31079
- function CaseResolver(caseNotifier, draftService, navigationNotifierService, router, sessionStorage) {
31085
+ function CaseResolver(caseNotifier, draftService, navigationNotifierService, router, sessionStorage, appConfig) {
31080
31086
  var _this = this;
31081
31087
  this.caseNotifier = caseNotifier;
31082
31088
  this.draftService = draftService;
31083
31089
  this.navigationNotifierService = navigationNotifierService;
31084
31090
  this.router = router;
31085
31091
  this.sessionStorage = sessionStorage;
31092
+ this.appConfig = appConfig;
31086
31093
  router.events.pipe(operators.filter(function (event) { return event instanceof i1$1.NavigationEnd; }))
31087
31094
  .subscribe(function (event) {
31088
31095
  _this.previousUrl = event.url;
@@ -31128,7 +31135,7 @@
31128
31135
  else {
31129
31136
  console.info('getAndCacheCaseView - Path B.');
31130
31137
  return this.caseNotifier.fetchAndRefresh(cid)
31131
- .pipe(operators.catchError(function (error) { return _this.processErrorInCaseFetch(error); }))
31138
+ .pipe(operators.catchError(function (error) { return _this.processErrorInCaseFetch(error, cid); }))
31132
31139
  .toPromise();
31133
31140
  }
31134
31141
  }
@@ -31141,9 +31148,9 @@
31141
31148
  _this.caseNotifier.cachedCaseView = classTransformer.plainToClassFromExist(new CaseView(), caseView);
31142
31149
  _this.caseNotifier.announceCase(_this.caseNotifier.cachedCaseView);
31143
31150
  return _this.caseNotifier.cachedCaseView;
31144
- }), operators.catchError(function (error) { return _this.processErrorInCaseFetch(error); })).toPromise();
31151
+ }), operators.catchError(function (error) { return _this.processErrorInCaseFetch(error, cid); })).toPromise();
31145
31152
  };
31146
- CaseResolver.prototype.processErrorInCaseFetch = function (error) {
31153
+ CaseResolver.prototype.processErrorInCaseFetch = function (error, caseReference) {
31147
31154
  console.error('!!! processErrorInCaseFetch !!!');
31148
31155
  console.error(error);
31149
31156
  // TODO Should be logged to remote logging infrastructure
@@ -31151,12 +31158,16 @@
31151
31158
  this.router.navigate(['/search/noresults']);
31152
31159
  return rxjs.of(null);
31153
31160
  }
31154
- console.error(error);
31155
31161
  if (CaseResolver.EVENT_REGEX.test(this.previousUrl) && error.status === 404) {
31156
31162
  this.router.navigate(['/list/case']);
31157
31163
  return rxjs.of(null);
31158
31164
  }
31159
- if (error.status !== 401 && error.status !== 403) {
31165
+ // Error 403 and enable-restricted-case-access Launch Darkly flag is enabled, navigate to restricted case access page
31166
+ if (error.status === 403 && this.appConfig.getEnableRestrictedCaseAccessConfig()) {
31167
+ this.router.navigate(["/cases/restricted-case-access/" + caseReference]);
31168
+ return rxjs.of(null);
31169
+ }
31170
+ if (error.status !== 401) {
31160
31171
  this.router.navigate(['/error']);
31161
31172
  }
31162
31173
  this.goToDefaultPage();
@@ -31183,12 +31194,12 @@
31183
31194
  CaseResolver.CASE_CREATED_MSG = 'The case has been created successfully';
31184
31195
  CaseResolver.defaultWAPage = '/work/my-work/list';
31185
31196
  CaseResolver.defaultPage = '/cases';
31186
- CaseResolver.ɵfac = function CaseResolver_Factory(t) { return new (t || CaseResolver)(i0__namespace.ɵɵinject(CaseNotifier), i0__namespace.ɵɵinject(DraftService), i0__namespace.ɵɵinject(NavigationNotifierService), i0__namespace.ɵɵinject(i1__namespace$1.Router), i0__namespace.ɵɵinject(SessionStorageService)); };
31197
+ CaseResolver.ɵfac = function CaseResolver_Factory(t) { return new (t || CaseResolver)(i0__namespace.ɵɵinject(CaseNotifier), i0__namespace.ɵɵinject(DraftService), i0__namespace.ɵɵinject(NavigationNotifierService), i0__namespace.ɵɵinject(i1__namespace$1.Router), i0__namespace.ɵɵinject(SessionStorageService), i0__namespace.ɵɵinject(AbstractAppConfig)); };
31187
31198
  CaseResolver.ɵprov = i0__namespace.ɵɵdefineInjectable({ token: CaseResolver, factory: CaseResolver.ɵfac });
31188
31199
  (function () {
31189
31200
  (typeof ngDevMode === "undefined" || ngDevMode) && i0__namespace.ɵsetClassMetadata(CaseResolver, [{
31190
31201
  type: i0.Injectable
31191
- }], function () { return [{ type: CaseNotifier }, { type: DraftService }, { type: NavigationNotifierService }, { type: i1__namespace$1.Router }, { type: SessionStorageService }]; }, null);
31202
+ }], function () { return [{ type: CaseNotifier }, { type: DraftService }, { type: NavigationNotifierService }, { type: i1__namespace$1.Router }, { type: SessionStorageService }, { type: AbstractAppConfig }]; }, null);
31192
31203
  })();
31193
31204
 
31194
31205
  var EventTriggerResolver = /** @class */ (function () {