// FIXME: Update this file to be type safe and remove this and next line // @ts-strict-ignore import { ListResponse } from "../../../models/response/list.response"; import Domain from "../../../platform/models/domain/domain-base"; import { PolicyId } from "../../../types/guid"; import { PolicyType } from "../../enums"; import { PolicyData } from "../data/policy.data"; import { PolicyResponse } from "../response/policy.response"; export class Policy extends Domain { id: PolicyId; organizationId: string; type: PolicyType; data: any; /** * Warning: a user can be exempt from a policy even if the policy is enabled. * @see {@link PolicyService} has methods to tell you whether a policy applies to a user. */ enabled: boolean; constructor(obj?: PolicyData) { super(); if (obj == null) { return; } this.id = obj.id; this.organizationId = obj.organizationId; this.type = obj.type; this.data = obj.data; this.enabled = obj.enabled; } static fromResponse(response: PolicyResponse): Policy { return new Policy(new PolicyData(response)); } static fromListResponse(response: ListResponse): Policy[] | undefined { return response.data?.map((d) => Policy.fromResponse(d)) ?? undefined; } }