import { createEmptyStateResource, createStateResource, getEmbeddedResources, isNotNil, StateResource, } from '@alfa-client/tech-shared'; import { SettingListLinkRel } from './admin-settings.linkrel'; import { SettingItemResource, SettingListResource, SettingName } from './admin-settings.model'; import { PostfachResource } from './postfach/postfach.model'; export function getPostfachResource( settingsListResource: StateResource<SettingListResource>, ): StateResource<PostfachResource> { const entries: SettingItemResource[] = getEmbeddedResources( settingsListResource, SettingListLinkRel.LIST, ); const postfachSettingItemResource: SettingItemResource = entries.find(isPostfachSettingItem); return isNotNil(postfachSettingItemResource) ? createStateResource(postfachSettingItemResource as PostfachResource) : createEmptyStateResource(); } function isPostfachSettingItem(item: SettingItemResource): boolean { return item.name === SettingName.POSTFACH; }