Skip to content

Commit

Permalink
Save removal of results where area or equipment does not exist #59
Browse files Browse the repository at this point in the history
  • Loading branch information
Daniel Haarhoff committed Sep 5, 2024
1 parent 92dd0c8 commit 3a48c71
Showing 1 changed file with 7 additions and 8 deletions.
15 changes: 7 additions & 8 deletions src/read-models/shared-state/get-member.ts
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,11 @@ import {SharedReadModel} from '.';
import * as RA from 'fp-ts/ReadonlyArray';
import {Member} from './return-types';

const fieldIsNotNull =
<K extends string>(key: K) =>
<T extends Record<K, string | null>>(obj: T): obj is T & {[P in K]: string} =>
obj[key] !== null;

export const getMember =
(db: BetterSQLite3Database): SharedReadModel['members']['get'] =>
(memberNumber): O.Option<Member> => {
Expand All @@ -30,10 +35,7 @@ export const getMember =
)
.where(eq(trainedMemberstable.memberNumber, memberNumber))
.all(),
RA.filter(
(trainedOnEntry): trainedOnEntry is Member['trainedOn'][number] =>
trainedOnEntry.name !== undefined
)
RA.filter(fieldIsNotNull('name'))
);

const getOwnerOf = pipe(
Expand All @@ -46,10 +48,7 @@ export const getMember =
.leftJoin(areasTable, eq(areasTable.id, ownersTable.areaId))
.where(eq(ownersTable.memberNumber, memberNumber))
.all(),
RA.filter(
(trainedOnEntry): trainedOnEntry is Member['ownerOf'][number] =>
trainedOnEntry.name !== undefined
)
RA.filter(fieldIsNotNull('name'))
);

return pipe(
Expand Down

0 comments on commit 3a48c71

Please sign in to comment.