37 lines
1.2 KiB
TypeScript
37 lines
1.2 KiB
TypeScript
import type { CertificateConfigurationValues } from "../domain/value-objects/certificate-configuration-values.vo";
|
|
|
|
import type { CertificateContext } from "./certificate-configuration.repository";
|
|
|
|
export function certificateReferences(
|
|
values: CertificateConfigurationValues,
|
|
context: CertificateContext
|
|
) {
|
|
return (
|
|
context.profiles.some((item) => item.id.equals(values.profileId)) &&
|
|
context.resources.some(
|
|
(item) => item.id.equals(values.resourceId) && item.usage === "certificate"
|
|
)
|
|
);
|
|
}
|
|
|
|
export function certificateAvailable(
|
|
values: CertificateConfigurationValues,
|
|
context: CertificateContext
|
|
) {
|
|
const profile = context.profiles.find((item) => item.id.equals(values.profileId));
|
|
|
|
return (
|
|
!!profile &&
|
|
profile.values.active &&
|
|
context.people.some((person) => person.id.equals(profile.values.personId) && person.active) &&
|
|
context.assets.some((asset) => asset.id.equals(profile.values.assetId) && asset.available) &&
|
|
context.resources.some(
|
|
(item) =>
|
|
item.id.equals(values.resourceId) &&
|
|
item.active &&
|
|
item.usage === "certificate" &&
|
|
(!item.expiresOn || item.expiresOn >= context.today)
|
|
)
|
|
);
|
|
}
|