feat(deltagare): Added functionality to filter on only "My deltagare". (TV-405)

Squashed commit of the following:

commit f67c9cd63e51bdc84a7c9da4c66b413213c33117
Merge: 84f00ea 0753d39
Author: Erik Tiekstra <erik.tiekstra@arbetsformedlingen.se>
Date:   Wed Sep 1 12:00:15 2021 +0200

    Merge branch 'feature/TV-405' of ssh://bitbucket.arbetsformedlingen.se:7999/tea/dafa-web-monorepo into feature/TV-405

commit 84f00eab3e211a5102d7abc9902be523f2e5b450
Author: Erik Tiekstra <erik.tiekstra@arbetsformedlingen.se>
Date:   Wed Sep 1 11:58:37 2021 +0200

    Updated mock-api and removed some unused code

commit 0753d39b7bd51163ddf1d2cf91f39a84321e8bb2
Merge: 47c363f a4bc9aa
Author: Cecilia Varnava <cecilia.varnava@arbetsformedlingen.se>
Date:   Wed Sep 1 11:46:37 2021 +0200

    Merge branch 'develop' into feature/TV-405

commit 14164ca7b01c0954d6f3efd441fef124a564edec
Merge: 47c363f a4bc9aa
Author: Erik Tiekstra <erik.tiekstra@arbetsformedlingen.se>
Date:   Wed Sep 1 10:33:10 2021 +0200

    Merge branch 'develop' into feature/TV-405

commit 47c363f6b984d1c46ed2f2bb054b3e541aa01cc3
Author: Cecilia Varnava <cecilia.varnava@arbetsformedlingen.se>
Date:   Sun Aug 29 19:14:43 2021 +0200

    TV-405 cleanup

commit 241d67de57ffc5d83b1dfd8e00de9cad7a6b985a
Merge: 40f30ff eee20a3
Author: Cecilia Varnava <cecilia.varnava@arbetsformedlingen.se>
Date:   Sun Aug 29 18:54:55 2021 +0200

    Merge branch 'develop' into feature/TV-405

    # Conflicts:
    #	apps/mina-sidor-fa/src/app/shared/services/api/deltagare.service.ts
    #	mock-api/mina-sidor-fa/server.js

commit 40f30ff385022dcac88a8cd3046d01bcd92760bf
Author: Cecilia Varnava <cecilia.varnava@arbetsformedlingen.se>
Date:   Sun Aug 29 18:45:37 2021 +0200

    TV-405 temporary empty 'mina deltagare' in mockapi until assign handledare is implemented

commit 9bdeefc57dcb7d409abb1d7fe88865392a1b7516
Author: Cecilia Varnava <cecilia.varnava@arbetsformedlingen.se>
Date:   Wed Aug 25 16:24:08 2021 +0200

    TV-405 filter mina deltagare
This commit is contained in:
Erik Tiekstra
2021-09-01 12:10:16 +02:00
parent a4bc9aa37c
commit 70ab2c3ee4
8 changed files with 42 additions and 13 deletions

View File

@@ -44,6 +44,8 @@ export class DeltagareService extends UnsubscribeDirective {
private _page$ = new BehaviorSubject<number>(1);
private _sort$ = new BehaviorSubject<Sort<keyof DeltagareCompact>>({ key: 'fullName', order: SortOrder.ASC });
public sort$: Observable<Sort<keyof DeltagareCompact>> = this._sort$.asObservable();
private _onlyMyDeltagare$ = new BehaviorSubject<boolean>(false);
public onlyMyDeltagare$: Observable<boolean> = this._onlyMyDeltagare$.asObservable();
constructor(private httpClient: HttpClient, private errorService: ErrorService) {
super();
@@ -66,7 +68,10 @@ export class DeltagareService extends UnsubscribeDirective {
this._limit$,
this._page$,
this._sort$,
]).pipe(switchMap(([limit, page, sort]) => this._fetchAllDeltagare$(limit, page, sort)));
this._onlyMyDeltagare$,
]).pipe(
switchMap(([limit, page, sort, onlyMyDeltagare]) => this._fetchAllDeltagare$(limit, page, sort, onlyMyDeltagare))
);
public setSort(newSortKey: keyof DeltagareCompact): void {
const currentSort = this._sort$.getValue();
@@ -83,7 +88,8 @@ export class DeltagareService extends UnsubscribeDirective {
private _fetchAllDeltagare$(
limit: number,
page: number,
sort: Sort<keyof DeltagareCompact>
sort: Sort<keyof DeltagareCompact>,
onlyMyDeltagare?: boolean
): Observable<DeltagareCompactData> {
const params: Params = {
sort: sort.key as string,
@@ -92,6 +98,9 @@ export class DeltagareService extends UnsubscribeDirective {
page: page.toString(),
};
if (onlyMyDeltagare) {
params.onlyMyDeltagare = onlyMyDeltagare.toString();
}
return this.httpClient
.get<DeltagareCompactApiResponse>(this._apiBaseUrl, {
params,
@@ -108,6 +117,10 @@ export class DeltagareService extends UnsubscribeDirective {
this._currentDeltagareId$.next(currentDeltagareId);
}
public setOnlyMyDeltagare(value: boolean): void {
this._onlyMyDeltagare$.next(value);
}
private _fetchContactInformation$(id: string): Observable<ContactInformation | Partial<ContactInformation>> {
return this.httpClient.get<{ data: ContactInformationResponse }>(`${this._apiBaseUrl}/${id}/contact`).pipe(
map(({ data }) => mapResponseToContactInformation(data)),