validate org_023

This commit is contained in:
AdisakKanthawilang 2024-01-29 17:08:22 +07:00
parent 8aed1633b2
commit af7608ec34

View file

@ -109,7 +109,7 @@ export class OrganizationController extends Controller {
/**
* API 4
*
* @summary ORG_022 - #23 ()
* @summary ORG_022 - #23
*
*/
@Post("draft")
@ -288,177 +288,194 @@ export class OrganizationController extends Controller {
*/
@Get("{id}")
async detail(@Path() id: string) {
const orgRootData = await AppDataSource.getRepository(OrgRoot)
.createQueryBuilder("orgRoot")
.where("orgRoot.orgRevisionId = :id", { id })
.select([
"orgRoot.id",
"orgRoot.orgRootName",
"orgRoot.orgRootShortName",
"orgRoot.orgRootCode",
"orgRoot.orgRootOrder",
"orgRoot.orgRootPhoneEx",
"orgRoot.orgRootPhoneIn",
"orgRoot.orgRootFax",
"orgRoot.orgRevisionId",
])
.getMany();
try {
const orgRevision = await this.orgRevisionRepository.findOne({ where: { id } });
if (!orgRevision) {
throw new HttpError(HttpStatusCode.NOT_FOUND, "ไม่พบข้อมูล");
}
const orgRootIds = orgRootData.map((orgRoot) => orgRoot.id);
const orgChild1Data = await AppDataSource.getRepository(OrgChild1)
.createQueryBuilder("orgChild1")
.where("orgChild1.orgRootId IN (:...ids)", { ids: orgRootIds })
.select([
"orgChild1.id",
"orgChild1.orgChild1Name",
"orgChild1.orgChild1ShortName",
"orgChild1.orgChild1Code",
"orgChild1.orgChild1Order",
"orgChild1.orgChild1PhoneEx",
"orgChild1.orgChild1PhoneIn",
"orgChild1.orgChild1Fax",
"orgChild1.orgRootId",
])
.getMany();
const orgRootData = await AppDataSource.getRepository(OrgRoot)
.createQueryBuilder("orgRoot")
.where("orgRoot.orgRevisionId = :id", { id })
.select([
"orgRoot.id",
"orgRoot.orgRootName",
"orgRoot.orgRootShortName",
"orgRoot.orgRootCode",
"orgRoot.orgRootOrder",
"orgRoot.orgRootPhoneEx",
"orgRoot.orgRootPhoneIn",
"orgRoot.orgRootFax",
"orgRoot.orgRevisionId",
])
.getMany();
const orgChild1Ids = orgChild1Data.map((orgChild1) => orgChild1.id);
const orgChild2Data = await AppDataSource.getRepository(OrgChild2)
.createQueryBuilder("orgChild2")
.where("orgChild2.orgChild1Id IN (:...ids)", { ids: orgChild1Ids })
.select([
"orgChild2.id",
"orgChild2.orgChild2Name",
"orgChild2.orgChild2ShortName",
"orgChild2.orgChild2Code",
"orgChild2.orgChild2Order",
"orgChild2.orgChild2PhoneEx",
"orgChild2.orgChild2PhoneIn",
"orgChild2.orgChild2Fax",
"orgChild2.orgRootId",
const orgRootIds = orgRootData.map((orgRoot) => orgRoot.id) || null;
const orgChild1Data = orgRootIds && orgRootIds.length > 0
? await AppDataSource.getRepository(OrgChild1)
.createQueryBuilder("orgChild1")
.where("orgChild1.orgRootId IN (:...ids)", { ids: orgRootIds })
.select([
"orgChild1.id",
"orgChild1.orgChild1Name",
"orgChild1.orgChild1ShortName",
"orgChild1.orgChild1Code",
"orgChild1.orgChild1Order",
"orgChild1.orgChild1PhoneEx",
"orgChild1.orgChild1PhoneIn",
"orgChild1.orgChild1Fax",
"orgChild1.orgRootId",
])
.getMany()
:[];
"orgChild2.orgChild1Id",
])
.getMany();
const orgChild1Ids = orgChild1Data.map((orgChild1) => orgChild1.id) || null;
const orgChild2Data = orgChild1Ids && orgChild1Ids.length > 0
? await AppDataSource.getRepository(OrgChild2)
.createQueryBuilder("orgChild2")
.where("orgChild2.orgChild1Id IN (:...ids)", { ids: orgChild1Ids })
.select([
"orgChild2.id",
"orgChild2.orgChild2Name",
"orgChild2.orgChild2ShortName",
"orgChild2.orgChild2Code",
"orgChild2.orgChild2Order",
"orgChild2.orgChild2PhoneEx",
"orgChild2.orgChild2PhoneIn",
"orgChild2.orgChild2Fax",
"orgChild2.orgRootId",
const orgChild2Ids = orgChild2Data.map((orgChild2) => orgChild2.id);
const orgChild3Data = await AppDataSource.getRepository(OrgChild3)
.createQueryBuilder("orgChild3")
.where("orgChild3.orgChild2Id IN (:...ids)", { ids: orgChild2Ids })
.select([
"orgChild3.id",
"orgChild3.orgChild3Name",
"orgChild3.orgChild3ShortName",
"orgChild3.orgChild3Code",
"orgChild3.orgChild3Order",
"orgChild3.orgChild3PhoneEx",
"orgChild3.orgChild3PhoneIn",
"orgChild3.orgChild3Fax",
"orgChild3.orgRootId",
"orgChild2.orgChild1Id",
])
.getMany()
:[];
"orgChild3.orgChild2Id",
])
.getMany();
const orgChild2Ids = orgChild2Data.map((orgChild2) => orgChild2.id) || null;
const orgChild3Data = orgChild2Ids && orgChild2Ids.length > 0
? await AppDataSource.getRepository(OrgChild3)
.createQueryBuilder("orgChild3")
.where("orgChild3.orgChild2Id IN (:...ids)", { ids: orgChild2Ids })
.select([
"orgChild3.id",
"orgChild3.orgChild3Name",
"orgChild3.orgChild3ShortName",
"orgChild3.orgChild3Code",
"orgChild3.orgChild3Order",
"orgChild3.orgChild3PhoneEx",
"orgChild3.orgChild3PhoneIn",
"orgChild3.orgChild3Fax",
"orgChild3.orgRootId",
const orgChild3Ids = orgChild3Data.map((orgChild3) => orgChild3.id);
const orgChild4Data = await AppDataSource.getRepository(OrgChild4)
.createQueryBuilder("orgChild4")
.where("orgChild4.orgChild3Id IN (:...ids)", { ids: orgChild3Ids })
.select([
"orgChild4.id",
"orgChild4.orgChild4Name",
"orgChild4.orgChild4ShortName",
"orgChild4.orgChild4Code",
"orgChild4.orgChild4Order",
"orgChild4.orgChild4PhoneEx",
"orgChild4.orgChild4PhoneIn",
"orgChild4.orgChild4Fax",
"orgChild4.orgRootId",
"orgChild3.orgChild2Id",
])
.getMany()
:[];
"orgChild4.orgChild3Id",
])
.getMany();
const orgChild3Ids = orgChild3Data.map((orgChild3) => orgChild3.id) || null;
const orgChild4Data = orgChild3Ids && orgChild3Ids.length > 0
? await AppDataSource.getRepository(OrgChild4)
.createQueryBuilder("orgChild4")
.where("orgChild4.orgChild3Id IN (:...ids)", { ids: orgChild3Ids })
.select([
"orgChild4.id",
"orgChild4.orgChild4Name",
"orgChild4.orgChild4ShortName",
"orgChild4.orgChild4Code",
"orgChild4.orgChild4Order",
"orgChild4.orgChild4PhoneEx",
"orgChild4.orgChild4PhoneIn",
"orgChild4.orgChild4Fax",
"orgChild4.orgRootId",
const formattedData = orgRootData.map((orgRoot) => {
return {
orgRootId: orgRoot.id,
orgLevel: 0,
orgRootName: orgRoot.orgRootName,
orgRootShortName: orgRoot.orgRootShortName,
orgRootCode: orgRoot.orgRootCode,
orgCode: orgRoot.orgRootCode + "00",
orgRootOrder: orgRoot.orgRootOrder,
orgRootPhoneEx: orgRoot.orgRootPhoneEx,
orgRootPhoneIn: orgRoot.orgRootPhoneIn,
orgRootFax: orgRoot.orgRootFax,
orgRevisionId: orgRoot.orgRevisionId,
orgChild1: orgChild1Data
.filter((orgChild1) => orgChild1.orgRootId === orgRoot.id)
.map((orgChild1) => ({
orgChild1Id: orgChild1.id,
orgLevel: 1,
orgChild1Name: orgChild1.orgChild1Name,
orgChild1ShortName: orgChild1.orgChild1ShortName,
orgChild1Code: orgChild1.orgChild1Code,
orgCode: orgRoot.orgRootCode + orgChild1.orgChild1Code,
orgChild1Order: orgChild1.orgChild1Order,
orgRootCode: orgRoot.orgRootCode,
orgChild1PhoneEx: orgChild1.orgChild1PhoneEx,
orgChild1PhoneIn: orgChild1.orgChild1PhoneIn,
orgChild1Fax: orgChild1.orgChild1Fax,
orgRevisionId: orgRoot.orgRevisionId,
orgChild2: orgChild2Data
.filter((orgChild2) => orgChild2.orgChild1Id === orgChild1.id)
.map((orgChild2) => ({
orgChild2Id: orgChild2.id,
orgLevel: 2,
orgChild2Name: orgChild2.orgChild2Name,
orgChild2ShortName: orgChild2.orgChild2ShortName,
orgChild2Code: orgChild2.orgChild2Code,
orgCode: orgRoot.orgRootCode + orgChild2.orgChild2Code,
orgChild2Order: orgChild2.orgChild2Order,
orgRootCode: orgRoot.orgRootCode,
orgChild2PhoneEx: orgChild2.orgChild2PhoneEx,
orgChild2PhoneIn: orgChild2.orgChild2PhoneIn,
orgChild2Fax: orgChild2.orgChild2Fax,
orgRevisionId: orgRoot.orgRevisionId,
orgChild3: orgChild3Data
.filter((orgChild3) => orgChild3.orgChild2Id === orgChild2.id)
.map((orgChild3) => ({
orgChild3Id: orgChild3.id,
orgLevel: 3,
orgChild3Name: orgChild3.orgChild3Name,
orgChild3ShortName: orgChild3.orgChild3ShortName,
orgChild3Code: orgChild3.orgChild3Code,
orgCode: orgRoot.orgRootCode + orgChild3.orgChild3Code,
orgChild3Order: orgChild3.orgChild3Order,
orgRootCode: orgRoot.orgRootCode,
orgChild3PhoneEx: orgChild3.orgChild3PhoneEx,
orgChild3PhoneIn: orgChild3.orgChild3PhoneIn,
orgChild3Fax: orgChild3.orgChild3Fax,
orgRevisionId: orgRoot.orgRevisionId,
orgChild4: orgChild4Data
.filter((orgChild4) => orgChild4.orgChild3Id === orgChild3.id)
.map((orgChild4) => ({
orgChild4Id: orgChild4.id,
orgLevel: 4,
orgChild4Name: orgChild4.orgChild4Name,
orgChild4ShortName: orgChild4.orgChild4ShortName,
orgChild4Code: orgChild4.orgChild4Code,
orgCode: orgRoot.orgRootCode + orgChild4.orgChild4Code,
orgChild4Order: orgChild4.orgChild4Order,
orgRootCode: orgRoot.orgRootCode,
orgChild4PhoneEx: orgChild4.orgChild4PhoneEx,
orgChild4PhoneIn: orgChild4.orgChild4PhoneIn,
orgChild4Fax: orgChild4.orgChild4Fax,
orgRevisionId: orgRoot.orgRevisionId,
})),
})),
})),
})),
};
});
"orgChild4.orgChild3Id",
])
.getMany()
:[];
return new HttpSuccess(formattedData);
const formattedData = orgRootData.map((orgRoot) => {
return {
orgRootId: orgRoot.id,
orgLevel: 0,
orgRootName: orgRoot.orgRootName,
orgRootShortName: orgRoot.orgRootShortName,
orgRootCode: orgRoot.orgRootCode,
orgCode: orgRoot.orgRootCode + "00",
orgRootOrder: orgRoot.orgRootOrder,
orgRootPhoneEx: orgRoot.orgRootPhoneEx,
orgRootPhoneIn: orgRoot.orgRootPhoneIn,
orgRootFax: orgRoot.orgRootFax,
orgRevisionId: orgRoot.orgRevisionId,
orgChild1: orgChild1Data
.filter((orgChild1) => orgChild1.orgRootId === orgRoot.id)
.map((orgChild1) => ({
orgChild1Id: orgChild1.id,
orgLevel: 1,
orgChild1Name: orgChild1.orgChild1Name,
orgChild1ShortName: orgChild1.orgChild1ShortName,
orgChild1Code: orgChild1.orgChild1Code,
orgCode: orgRoot.orgRootCode + orgChild1.orgChild1Code,
orgChild1Order: orgChild1.orgChild1Order,
orgRootCode: orgRoot.orgRootCode,
orgChild1PhoneEx: orgChild1.orgChild1PhoneEx,
orgChild1PhoneIn: orgChild1.orgChild1PhoneIn,
orgChild1Fax: orgChild1.orgChild1Fax,
orgRevisionId: orgRoot.orgRevisionId,
orgChild2: orgChild2Data
.filter((orgChild2) => orgChild2.orgChild1Id === orgChild1.id)
.map((orgChild2) => ({
orgChild2Id: orgChild2.id,
orgLevel: 2,
orgChild2Name: orgChild2.orgChild2Name,
orgChild2ShortName: orgChild2.orgChild2ShortName,
orgChild2Code: orgChild2.orgChild2Code,
orgCode: orgRoot.orgRootCode + orgChild2.orgChild2Code,
orgChild2Order: orgChild2.orgChild2Order,
orgRootCode: orgRoot.orgRootCode,
orgChild2PhoneEx: orgChild2.orgChild2PhoneEx,
orgChild2PhoneIn: orgChild2.orgChild2PhoneIn,
orgChild2Fax: orgChild2.orgChild2Fax,
orgRevisionId: orgRoot.orgRevisionId,
orgChild3: orgChild3Data
.filter((orgChild3) => orgChild3.orgChild2Id === orgChild2.id)
.map((orgChild3) => ({
orgChild3Id: orgChild3.id,
orgLevel: 3,
orgChild3Name: orgChild3.orgChild3Name,
orgChild3ShortName: orgChild3.orgChild3ShortName,
orgChild3Code: orgChild3.orgChild3Code,
orgCode: orgRoot.orgRootCode + orgChild3.orgChild3Code,
orgChild3Order: orgChild3.orgChild3Order,
orgRootCode: orgRoot.orgRootCode,
orgChild3PhoneEx: orgChild3.orgChild3PhoneEx,
orgChild3PhoneIn: orgChild3.orgChild3PhoneIn,
orgChild3Fax: orgChild3.orgChild3Fax,
orgRevisionId: orgRoot.orgRevisionId,
orgChild4: orgChild4Data
.filter((orgChild4) => orgChild4.orgChild3Id === orgChild3.id)
.map((orgChild4) => ({
orgChild4Id: orgChild4.id,
orgLevel: 4,
orgChild4Name: orgChild4.orgChild4Name,
orgChild4ShortName: orgChild4.orgChild4ShortName,
orgChild4Code: orgChild4.orgChild4Code,
orgCode: orgRoot.orgRootCode + orgChild4.orgChild4Code,
orgChild4Order: orgChild4.orgChild4Order,
orgRootCode: orgRoot.orgRootCode,
orgChild4PhoneEx: orgChild4.orgChild4PhoneEx,
orgChild4PhoneIn: orgChild4.orgChild4PhoneIn,
orgChild4Fax: orgChild4.orgChild4Fax,
orgRevisionId: orgRoot.orgRevisionId,
})),
})),
})),
})),
};
});
return new HttpSuccess(formattedData);
} catch (error) {
return error;
}
}
/**