Skip to content

Instantly share code, notes, and snippets.

@ZhenDeng
Last active August 14, 2020 03:11
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save ZhenDeng/7e1537899e61d8d3e71eb5840dd8bad5 to your computer and use it in GitHub Desktop.
Save ZhenDeng/7e1537899e61d8d3e71eb5840dd8bad5 to your computer and use it in GitHub Desktop.
import { ApplicationSection } from '../../enums';
import { ApplicationSectionTexts } from '../../constants/applicationSectionTexts';
export class ValidationData {
[ApplicationSection.ApplicationStudent]: SectionValidationData;
[ApplicationSection.ApplicationContact]: SectionValidationData;
[ApplicationSection.ApplicationStudentVisa]: SectionValidationData;
[ApplicationSection.ApplicationStudentSchoolProgram]: SectionValidationData;
[ApplicationSection.ApplicationStudentAccommodationWelfare]: SectionValidationData;
[ApplicationSection.ApplicationStudentEnglishProficiency]: SectionValidationData;
[ApplicationSection.ApplicationStudentSpecialCircumstances]: SectionValidationData;
[ApplicationSection.ApplicationStudentAgentDetails]: SectionValidationData;
[ApplicationSection.ApplicationSupportingDocuments]: SectionValidationData;
[ApplicationSection.ApplicationSpecialProgram]: SectionValidationData;
static getObject(validationResult: any) {
const validationData = new ValidationData();
for (let index = 0; index < validationResult.length; index++) {
if (validationResult[index].relatedSections.length > 0) {
const relatedSections = validationResult[index].relatedSections;
for (let sectionIndex = 0; sectionIndex < relatedSections.length; sectionIndex++) {
const section = ApplicationSectionTexts.getApplicationSection(relatedSections[sectionIndex]);
if (validationData[section]) {
validationData[section].messages.push(validationResult[index].subject);
} else {
// tslint:disable-next-line: no-use-before-declare
validationData[section] = new SectionValidationData({ isError: true, messages: [validationResult[index].subject]});
}
}
}
}
return validationData;
}
}
export class SectionValidationData {
isError = true;
messages: Array<string> = [];
constructor(obj) {
Object.assign(this, obj);
}
}
export enum ApplicationSection {
ApplicationStudent = 1,
ApplicationContact = 2,
ApplicationStudentVisa = 3,
ApplicationStudentSchoolProgram = 4,
ApplicationStudentAccommodationWelfare = 5,
ApplicationStudentEnglishProficiency = 6,
ApplicationStudentSpecialCircumstances = 7,
ApplicationStudentAgentDetails = 8,
ApplicationStudentDefaultCorrespondent = 9,
ApplicationSupportingDocuments = 10,
ApplicationStudentSummary = 11,
ApplicationSpecialProgram = 12,
ApplicationParentDetails = 13,
ApplicationHomestay = 14
}
implementation:
this.validationData = ValidationData.getObject(validationResult);
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment