setup unifi wlans
This commit is contained in:
@@ -1,7 +1,19 @@
|
||||
import { Collection } from "@discordjs/collection";
|
||||
import { CredentialField, CredentialTypeField } from "./credentialTypeDefs";
|
||||
import {
|
||||
CredentialField,
|
||||
CredentialTypeField,
|
||||
ValueType,
|
||||
} from "./credentialTypeDefs";
|
||||
import GenericError from "../../Errors/GenericError";
|
||||
|
||||
export interface ValidatedField {
|
||||
fieldId: string;
|
||||
value: string;
|
||||
secure: boolean;
|
||||
isMultiCredential?: boolean;
|
||||
subCredentials?: string[];
|
||||
}
|
||||
|
||||
/**
|
||||
* Field Validator
|
||||
*
|
||||
@@ -11,19 +23,16 @@ import GenericError from "../../Errors/GenericError";
|
||||
* If all the credentials pass, it will return a processed version of the submitted fields including fields that need to be
|
||||
* stored securely (encrypted) and fields that do not.
|
||||
*
|
||||
* Multi-credential fields are handled specially — they don't carry a direct value but instead
|
||||
* reference sub-credential IDs.
|
||||
*
|
||||
* @param fields - The fields in object form that are being submitted.
|
||||
* @param acceptableFields - The acceptable field to be compared against.
|
||||
*/
|
||||
export const fieldValidator = async (
|
||||
fields: CredentialField[],
|
||||
acceptableFields: CredentialTypeField[],
|
||||
): Promise<
|
||||
{
|
||||
fieldId: string;
|
||||
value: string;
|
||||
secure: boolean;
|
||||
}[]
|
||||
> => {
|
||||
): Promise<ValidatedField[]> => {
|
||||
const afCollection = new Collection(acceptableFields.map((f) => [f.id, f]));
|
||||
|
||||
await Promise.all(
|
||||
@@ -45,6 +54,18 @@ export const fieldValidator = async (
|
||||
return fields.map((field) => {
|
||||
const matchingField = afCollection.get(field.fieldId)!;
|
||||
|
||||
// Multi-credential fields don't carry a direct value;
|
||||
// they reference sub-credential IDs instead.
|
||||
if (matchingField.valueType === ValueType.MULTI_CREDENTIAL) {
|
||||
return {
|
||||
fieldId: field.fieldId,
|
||||
value: "",
|
||||
secure: false,
|
||||
isMultiCredential: true,
|
||||
subCredentials: field.subCredentials ?? [],
|
||||
};
|
||||
}
|
||||
|
||||
return {
|
||||
fieldId: field.fieldId,
|
||||
value: field.value,
|
||||
|
||||
Reference in New Issue
Block a user