// ╔═══════╗╔═══════╗╔═══════╗╔═══════╗╔═══════╗╔═══════╗╔═══════╗ // ╚══╗ ╔══╝║ ╔╗ ╔╗ ║║ ╔═══╗ ║║ ╔═══╗ ║║ ╔═══╗ ║╚══╗ ╔══╝║ ╔═════╝ // ║ ║ ║ ║║ ║║ ║║ ╚═══╝ ║║ ║ ║ ║║ ╚═══╝ ║ ║ ║ ║ ╚═════╗ // ║ ║ ║ ║║ ║║ ║║ ╔═════╝║ ║ ║ ║║ ╔═╗ ╔═╝ ║ ║ ╚═════╗ ║ // ╔══╝ ╚══╗║ ║║ ║║ ║║ ║ ║ ╚═══╝ ║║ ║ ║ ╚═╗ ║ ║ ╔═════╝ ║ // ╚═══════╝╚═╝╚═╝╚═╝╚═╝ ╚═══════╝╚═╝ ╚═══╝ ╚═╝ ╚═══════╝ import * as userValidators from '../../validators/user-validators.js'; import * as userTypings from '../../typings/user-typings.js'; import * as userErrors from '../../errors/user-errors.js'; import * as utilityEngine from '@xyz.warpmatter.com/utility-engine'; // ╔═══════╗╔═══════╗╔═══════╗╔═══════╗╔═╗ ╔═╗╔═══════╗╔═══════╗╔═══════╗ // ║ ╔═══╗ ║║ ╔═════╝║ ╔═════╝║ ╔═══╗ ║║ ║ ║ ║║ ╔═══╗ ║║ ╔═════╝║ ╔═════╝ // ║ ╚═══╝ ║║ ╚═════╗║ ╚═════╗║ ║ ║ ║║ ║ ║ ║║ ╚═══╝ ║║ ║ ║ ╚═════╗ // ║ ╔═╗ ╔═╝║ ╔═════╝╚═════╗ ║║ ║ ║ ║║ ║ ║ ║║ ╔═╗ ╔═╝║ ║ ║ ╔═════╝ // ║ ║ ║ ╚═╗║ ╚═════╗╔═════╝ ║║ ╚═══╝ ║║ ╚═══╝ ║║ ║ ║ ╚═╗║ ╚═════╗║ ╚═════╗ // ╚═╝ ╚═══╝╚═══════╝╚═══════╝╚═══════╝╚═══════╝╚═╝ ╚═══╝╚═══════╝╚═══════╝ export function validateUsers( values: any[], minimumCount?: number, maximumCount?: number, ) { if (!areValidUsers(values, minimumCount, maximumCount)) { userErrors.throwInvalidAbsorbLmsUserResourceError(); } } export function validateUser( value: any, ) { if (!isValidUser(value)) { userErrors.throwInvalidAbsorbLmsUserResourceError(); } } export function areValidUsers( values: any[], minimumCount?: number, maximumCount?: number, ): values is userTypings.User[] { return utilityEngine.isArray(values, minimumCount, maximumCount) && values.every(isValidUser); } export function isValidUser( value: any, ): value is userTypings.User { return utilityEngine.isObjectLiteral(value) && userValidators.isValidUserId(value.id); }