Merge branch 'next' into develop
This commit is contained in:
@@ -0,0 +1,7 @@
|
||||
<digi-notification-alert af-heading="Personalkontot saknar behörigheter!" af-variation="danger">
|
||||
<p>
|
||||
Ditt personalkonto behöver tilldelas en tjänst och utförande verksamheter för att det ska fungera korrekt. Ändra
|
||||
ditt personalkonto via personallistan eller kontakta din behörighetsadministratör om du inte kan ändra dina egna
|
||||
behörigheter.
|
||||
</p>
|
||||
</digi-notification-alert>
|
||||
@@ -0,0 +1,26 @@
|
||||
/* tslint:disable:no-unused-variable */
|
||||
import { CUSTOM_ELEMENTS_SCHEMA } from '@angular/core';
|
||||
import { ComponentFixture, TestBed } from '@angular/core/testing';
|
||||
import { UnauthorizedAlertComponent } from './unauthorized-alert.component';
|
||||
|
||||
describe('UnauthorizedAlertComponent', () => {
|
||||
let component: UnauthorizedAlertComponent;
|
||||
let fixture: ComponentFixture<UnauthorizedAlertComponent>;
|
||||
|
||||
beforeEach(async () => {
|
||||
await TestBed.configureTestingModule({
|
||||
declarations: [UnauthorizedAlertComponent],
|
||||
schemas: [CUSTOM_ELEMENTS_SCHEMA],
|
||||
}).compileComponents();
|
||||
});
|
||||
|
||||
beforeEach(() => {
|
||||
fixture = TestBed.createComponent(UnauthorizedAlertComponent);
|
||||
component = fixture.componentInstance;
|
||||
fixture.detectChanges();
|
||||
});
|
||||
|
||||
it('should create', () => {
|
||||
expect(component).toBeTruthy();
|
||||
});
|
||||
});
|
||||
@@ -0,0 +1,9 @@
|
||||
import { ChangeDetectionStrategy, Component } from '@angular/core';
|
||||
|
||||
@Component({
|
||||
selector: 'msfa-unauthorized-alert',
|
||||
templateUrl: './unauthorized-alert.component.html',
|
||||
styleUrls: ['./unauthorized-alert.component.scss'],
|
||||
changeDetection: ChangeDetectionStrategy.OnPush,
|
||||
})
|
||||
export class UnauthorizedAlertComponent {}
|
||||
@@ -0,0 +1,11 @@
|
||||
import { CommonModule } from '@angular/common';
|
||||
import { CUSTOM_ELEMENTS_SCHEMA, NgModule } from '@angular/core';
|
||||
import { UnauthorizedAlertComponent } from './unauthorized-alert.component';
|
||||
|
||||
@NgModule({
|
||||
schemas: [CUSTOM_ELEMENTS_SCHEMA],
|
||||
declarations: [UnauthorizedAlertComponent],
|
||||
imports: [CommonModule],
|
||||
exports: [UnauthorizedAlertComponent],
|
||||
})
|
||||
export class UnauthorizedAlertModule {}
|
||||
@@ -7,9 +7,10 @@ import { HandledareResponse } from '@msfa-models/api/handledare.response.model';
|
||||
import { Params } from '@msfa-models/api/params.model';
|
||||
import { AvropFilter, mapResponseToAvropFilter } from '@msfa-models/avrop-filter.model';
|
||||
import { AvropCompact, AvropCompactData, mapAvropResponseToAvrop } from '@msfa-models/avrop.model';
|
||||
import { CustomError, errorToCustomError } from '@msfa-models/error/custom-error';
|
||||
import { Handledare, mapHandledareResponseToHandledare } from '@msfa-models/handledare.model';
|
||||
import { BehaviorSubject, Observable, of } from 'rxjs';
|
||||
import { filter, map, tap } from 'rxjs/operators';
|
||||
import { catchError, filter, map, tap } from 'rxjs/operators';
|
||||
|
||||
@Injectable({
|
||||
providedIn: 'root',
|
||||
@@ -18,6 +19,8 @@ export class AvropApiService {
|
||||
private _apiBaseUrl = `${environment.api.url}/avrop`;
|
||||
private _lockedAvropSnapshot$ = new BehaviorSubject<AvropCompact[]>(null);
|
||||
private _availableHandledareSnapshot$ = new BehaviorSubject<Handledare[]>(null);
|
||||
private _showUnauthorizedError$ = new BehaviorSubject<boolean>(false);
|
||||
public showUnauthorizedError$: Observable<boolean> = this._showUnauthorizedError$.asObservable();
|
||||
|
||||
constructor(private httpClient: HttpClient) {}
|
||||
|
||||
@@ -28,7 +31,19 @@ export class AvropApiService {
|
||||
fetchAvrop$(params: Params): Observable<AvropCompactData> {
|
||||
return this.httpClient
|
||||
.get<AvropApiResponse>(`${this._apiBaseUrl}`, { params })
|
||||
.pipe(map(({ data, meta }) => ({ data: data.map(avrop => mapAvropResponseToAvrop(avrop)), meta })));
|
||||
.pipe(
|
||||
map(({ data, meta }) => ({ data: data.map(avrop => mapAvropResponseToAvrop(avrop)), meta })),
|
||||
catchError((error: Error & { status: number }) => {
|
||||
if (error.status === 403) {
|
||||
this._showUnauthorizedError$.next(true);
|
||||
return of(null);
|
||||
} else {
|
||||
throw new CustomError(
|
||||
errorToCustomError({ ...error, message: `Kunde inte hämta deltagare.\n\n${error.message}` })
|
||||
);
|
||||
}
|
||||
})
|
||||
);
|
||||
}
|
||||
|
||||
fetchAvailableHandledare$(avrop: AvropCompact[]): Observable<Handledare[]> {
|
||||
|
||||
@@ -34,6 +34,8 @@ export class DeltagareApiService {
|
||||
private _apiBaseUrl = `${environment.api.url}/deltagare`;
|
||||
private _deltagareLoading$ = new BehaviorSubject<boolean>(false);
|
||||
public deltagareLoading$: Observable<boolean> = this._deltagareLoading$.asObservable();
|
||||
private _showUnauthorizedError$ = new BehaviorSubject<boolean>(false);
|
||||
public showUnauthorizedError$: Observable<boolean> = this._showUnauthorizedError$.asObservable();
|
||||
|
||||
constructor(private httpClient: HttpClient) {}
|
||||
|
||||
@@ -65,10 +67,15 @@ export class DeltagareApiService {
|
||||
this._deltagareLoading$.next(false);
|
||||
return { data: data.map(deltagare => mapResponseToDeltagareCompact(deltagare)), meta };
|
||||
}),
|
||||
catchError((error: Error) => {
|
||||
throw new CustomError(
|
||||
errorToCustomError({ ...error, message: `Kunde inte hämta deltagare.\n\n${error.message}` })
|
||||
);
|
||||
catchError((error: Error & { status: number }) => {
|
||||
if (error.status === 403) {
|
||||
this._showUnauthorizedError$.next(true);
|
||||
return of(null);
|
||||
} else {
|
||||
throw new CustomError(
|
||||
errorToCustomError({ ...error, message: `Kunde inte hämta deltagare.\n\n${error.message}` })
|
||||
);
|
||||
}
|
||||
})
|
||||
);
|
||||
}
|
||||
|
||||
@@ -45,7 +45,7 @@ export class AvropService {
|
||||
public handledareIsConfirmed$: Observable<boolean> = this._handledareIsConfirmed$.asObservable();
|
||||
public avropIsSubmitted$: Observable<boolean> = this._avropIsSubmitted$.asObservable();
|
||||
public error$: Observable<string> = this._error$.asObservable();
|
||||
|
||||
public showUnauthorizedError$: Observable<boolean> = this.avropApiService.showUnauthorizedError$;
|
||||
public avropData$: Observable<AvropCompactData> = combineLatest([
|
||||
this._filteredTjanster$,
|
||||
this._filteredUtforandeVerksamheter$,
|
||||
|
||||
@@ -16,6 +16,7 @@ export class DeltagareService {
|
||||
public sort$: Observable<Sort<keyof DeltagareCompact>> = this._sort$.asObservable();
|
||||
private _onlyMyDeltagare$ = new BehaviorSubject<boolean>(false);
|
||||
public onlyMyDeltagare$: Observable<boolean> = this._onlyMyDeltagare$.asObservable();
|
||||
public showUnauthorizedError$: Observable<boolean> = this.deltagareApiService.showUnauthorizedError$;
|
||||
public deltagareLoading$: Observable<boolean> = this.deltagareApiService.deltagareLoading$;
|
||||
public allDeltagareData$: Observable<DeltagareCompactData> = combineLatest([
|
||||
this._limit$,
|
||||
|
||||
Reference in New Issue
Block a user