src/angular-forms.ts
Methods |
|
Public fromJson | ||||||||
fromJson(jsonGroups: Group[])
|
||||||||
Defined in src/angular-forms.ts:8
|
||||||||
Parameters :
Returns :
Promise<[]>
|
import { GroupBuilder, FieldsetBuilder, DataTableBuilder } from './builder';
import { Group, GroupType, Fieldset, DataTable } from './group';
import { Question } from './question';
import { QuestionFactory } from './factory';
export class AngularForms {
public static async fromJson(jsonGroups: Group<any>[]): Promise<Group<any>[]> {
return new Promise<Group<any>[]>(async (resolve: (groups: Group<any>[]) => void, reject: (error: string) => void) => {
try {
const groups: Group<any>[] = [];
for await (const group of jsonGroups) {
const groupBuilder: GroupBuilder<any> = GroupType.FIELDSET === group.type
? new FieldsetBuilder(group.code, group.description)
: new DataTableBuilder(group.code, group.description, (<DataTable>group).validations);
for await (const question of group.questions) {
groupBuilder.addQuestion(
GroupType.FIELDSET === group.type
? QuestionFactory.createQuestion(<Question<any>>question)
: QuestionFactory.createQuestionList(<Question<any>[]>question)
);
}
groups.push(groupBuilder.build());
}
resolve(groups);
} catch (error) {
reject(error);
}
});
}
}