import { ILogsRepo } from '../logs/logs.repo'; import { IInputsRepo } from './inputs.repo'; import { IParsedInput, IParsedSample, IParsedPayload } from '../types/inputs.types'; import { IAppVariables } from '../types/appBuilder.types'; import { KeyValuePair } from '../imports/imports.types'; import { DatabaseTypes, IStepInput } from '../types/productsBuilder.types'; export interface IInputsService { parseData(payload: IParsedPayload): Array; parseXML(payload: IParsedPayload): Promise>; parseJson(payload: IParsedPayload): Promise>; validateInput(input: Array, schema: Array): Promise; castInput(input: Array, schema: Array, template: string, type: DatabaseTypes): Promise; compareIndexes(original: Array, update: Array): Array; validateUUID(find: KeyValuePair): void; validateNumberString(data: IAppVariables, find: KeyValuePair): void; validateBoolean(find: KeyValuePair): void; validateEmailString(find: KeyValuePair): void; validateNoSpacesString(find: KeyValuePair): void; validateDateString(find: KeyValuePair): void; validateLength(data: IAppVariables, find: KeyValuePair): void; validateFeatureInputData(input: KeyValuePair, feature_value: IStepInput): void; } export default class InputsService implements IInputsService { inputsRepo: IInputsRepo; logsRepo: ILogsRepo; constructor(); parseData(payload: IParsedPayload): Array; parseXML(payload: IParsedPayload): Promise>; parseJson(payload: IParsedPayload): Promise>; validateInput(input: Array, schema: Array, label?: string): Promise; castInput(data: Record, schema: Array, template: string, dbType: DatabaseTypes): Promise>; private updateNestedValueArr; private updateNestedValue; compareIndexes(original: Array, update: Array): Array; private generateKey; private areSamplesEqual; validateUUID(find: KeyValuePair): void; validateString(find: KeyValuePair): void; validateDouble(find: KeyValuePair): void; validateFloat(find: KeyValuePair): void; validateNumberString(data: IAppVariables, find: KeyValuePair): void; validateNoSpacesString(find: KeyValuePair): void; validateEmailString(find: KeyValuePair): void; validateDateString(find: KeyValuePair): void; validateDate(find: KeyValuePair): void; validateLength(data: IAppVariables, find: KeyValuePair): void; validateBoolean(find: KeyValuePair): void; validateInteger(find: KeyValuePair): void; validateArray(find: KeyValuePair): void; validateObject(find: KeyValuePair): void; validateFeatureInputData(input: KeyValuePair, feature_value: IStepInput): void; private castDate; private castDateString; castFeatureInputData(input: KeyValuePair, feature_value: IStepInput): any; private castObject; private castBoolean; private castInteger; private castDoubleFloat; private castString; private castArray; }