@hisptz/react-ui
Version:
A collection of reusable complex DHIS2 react ui components.
78 lines (74 loc) • 2.04 kB
JavaScript
const query = {
identifiableObjects: {
resource: "identifiableObjects",
id: _ref => {
let {
id
} = _ref;
return id;
},
params: {
fields: ["id", "displayName"]
}
}
};
const query2 = {
program: {
resource: "programIndicators",
id: _ref2 => {
let {
id
} = _ref2;
return id;
},
params: {
fields: ["program[id,displayName]"]
}
}
};
export async function getProgramFromAttributesOrDtElPrg(engine, arr) {
if ((arr === null || arr === void 0 ? void 0 : arr.length) > 0) {
const allPromises = arr === null || arr === void 0 ? void 0 : arr.map(id => {
return new Promise((resolve, reject) => {
resolve(getProgramFromAttributesOrDtElPrgFromApi(engine, id));
});
});
return await Promise.all(allPromises).then(value => {
return value.map((val, index) => {
return val;
});
});
}
}
async function getProgramFromAttributesOrDtElPrgFromApi(engine, id) {
const data = await engine.query(query, {
variables: {
id
}
});
return data === null || data === void 0 ? void 0 : data.identifiableObjects;
}
export async function getProgramFromProgramIndicator(engine, arr) {
if ((arr === null || arr === void 0 ? void 0 : arr.length) > 0) {
const allPromises = arr === null || arr === void 0 ? void 0 : arr.map(id => {
return new Promise((resolve, reject) => {
resolve(getProgramFromProgramIndicatorApi(engine, id));
});
});
return await Promise.all(allPromises).then(value => {
return value.map((val, index) => {
//We always return array just for uniformity
return val;
});
});
}
}
async function getProgramFromProgramIndicatorApi(engine, id) {
var _data$program;
const data = await engine.query(query2, {
variables: {
id
}
});
return data === null || data === void 0 ? void 0 : (_data$program = data.program) === null || _data$program === void 0 ? void 0 : _data$program.program;
}