@hmcts/ccd-case-ui-toolkit 6.19.12-rc3 → 6.19.12-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);
@@ -31092,13 +31098,14 @@
31092
31098
  i0__namespace.ɵɵsetComponentScope(CaseTimelineComponent, [i2__namespace.NgIf, i2__namespace.NgSwitch, i2__namespace.NgSwitchCase, EventLogComponent, CaseHistoryComponent], [i1__namespace.RpxTranslatePipe]);
31093
31099
 
31094
31100
  var CaseResolver = /** @class */ (function () {
31095
- function CaseResolver(caseNotifier, draftService, navigationNotifierService, router, sessionStorage) {
31101
+ function CaseResolver(caseNotifier, draftService, navigationNotifierService, router, sessionStorage, appConfig) {
31096
31102
  var _this = this;
31097
31103
  this.caseNotifier = caseNotifier;
31098
31104
  this.draftService = draftService;
31099
31105
  this.navigationNotifierService = navigationNotifierService;
31100
31106
  this.router = router;
31101
31107
  this.sessionStorage = sessionStorage;
31108
+ this.appConfig = appConfig;
31102
31109
  router.events.pipe(operators.filter(function (event) { return event instanceof i1$1.NavigationEnd; }))
31103
31110
  .subscribe(function (event) {
31104
31111
  _this.previousUrl = event.url;
@@ -31144,7 +31151,7 @@
31144
31151
  else {
31145
31152
  console.info('getAndCacheCaseView - Path B.');
31146
31153
  return this.caseNotifier.fetchAndRefresh(cid)
31147
- .pipe(operators.catchError(function (error) { return _this.processErrorInCaseFetch(error); }))
31154
+ .pipe(operators.catchError(function (error) { return _this.processErrorInCaseFetch(error, cid); }))
31148
31155
  .toPromise();
31149
31156
  }
31150
31157
  }
@@ -31157,9 +31164,9 @@
31157
31164
  _this.caseNotifier.cachedCaseView = classTransformer.plainToClassFromExist(new CaseView(), caseView);
31158
31165
  _this.caseNotifier.announceCase(_this.caseNotifier.cachedCaseView);
31159
31166
  return _this.caseNotifier.cachedCaseView;
31160
- }), operators.catchError(function (error) { return _this.processErrorInCaseFetch(error); })).toPromise();
31167
+ }), operators.catchError(function (error) { return _this.processErrorInCaseFetch(error, cid); })).toPromise();
31161
31168
  };
31162
- CaseResolver.prototype.processErrorInCaseFetch = function (error) {
31169
+ CaseResolver.prototype.processErrorInCaseFetch = function (error, caseReference) {
31163
31170
  console.error('!!! processErrorInCaseFetch !!!');
31164
31171
  console.error(error);
31165
31172
  // TODO Should be logged to remote logging infrastructure
@@ -31167,12 +31174,16 @@
31167
31174
  this.router.navigate(['/search/noresults']);
31168
31175
  return rxjs.of(null);
31169
31176
  }
31170
- console.error(error);
31171
31177
  if (CaseResolver.EVENT_REGEX.test(this.previousUrl) && error.status === 404) {
31172
31178
  this.router.navigate(['/list/case']);
31173
31179
  return rxjs.of(null);
31174
31180
  }
31175
- if (error.status !== 401 && error.status !== 403) {
31181
+ // Error 403 and enable-restricted-case-access Launch Darkly flag is enabled, navigate to restricted case access page
31182
+ if (error.status === 403 && this.appConfig.getEnableRestrictedCaseAccessConfig()) {
31183
+ this.router.navigate(["/cases/restricted-case-access/" + caseReference]);
31184
+ return rxjs.of(null);
31185
+ }
31186
+ if (error.status !== 401) {
31176
31187
  this.router.navigate(['/error']);
31177
31188
  }
31178
31189
  this.goToDefaultPage();
@@ -31199,12 +31210,12 @@
31199
31210
  CaseResolver.CASE_CREATED_MSG = 'The case has been created successfully';
31200
31211
  CaseResolver.defaultWAPage = '/work/my-work/list';
31201
31212
  CaseResolver.defaultPage = '/cases';
31202
- 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)); };
31213
+ 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)); };
31203
31214
  CaseResolver.ɵprov = i0__namespace.ɵɵdefineInjectable({ token: CaseResolver, factory: CaseResolver.ɵfac });
31204
31215
  (function () {
31205
31216
  (typeof ngDevMode === "undefined" || ngDevMode) && i0__namespace.ɵsetClassMetadata(CaseResolver, [{
31206
31217
  type: i0.Injectable
31207
- }], function () { return [{ type: CaseNotifier }, { type: DraftService }, { type: NavigationNotifierService }, { type: i1__namespace$1.Router }, { type: SessionStorageService }]; }, null);
31218
+ }], function () { return [{ type: CaseNotifier }, { type: DraftService }, { type: NavigationNotifierService }, { type: i1__namespace$1.Router }, { type: SessionStorageService }, { type: AbstractAppConfig }]; }, null);
31208
31219
  })();
31209
31220
 
31210
31221
  var EventTriggerResolver = /** @class */ (function () {