@hisptz/react-ui
Version:
A collection of reusable complex DHIS2 react ui components.
86 lines (84 loc) • 2.06 kB
JavaScript
const query = {
dataSets: {
resource: "dataSets",
params: _ref => {
let {
id
} = _ref;
return {
fields: ["id", "displayName", "periodType", "timelyDays"],
filter: ["dataSetElements.dataElement.id:eq:".concat(id)]
};
}
}
};
const query2 = {
numeratorMatch: {
resource: "indicators",
params: _ref2 => {
let {
id
} = _ref2;
return {
fields: ["id"],
filter: ["numerator:like:".concat(id)]
};
}
},
denominatorMatch: {
resource: "indicators",
params: _ref3 => {
let {
id
} = _ref3;
return {
fields: ["id"],
filter: ["denominator:like:".concat(id)]
};
}
}
};
export async function getNumDenMatch(engine, arr) {
const allPromises = arr === null || arr === void 0 ? void 0 : arr.map(id => {
return new Promise((resolve, reject) => {
resolve(getMatch(engine, id));
});
});
return await Promise.all(allPromises).then(value => {
return value.map((val, index) => {
//We always return array just for uniformity
return val;
});
});
}
export async function getDataSetsArray(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(getDataSetsFromApi(engine, id));
});
});
return await Promise.all(allPromises).then(value => {
return value.map((val, index) => {
//We always return array just for uniformity
return val === null || val === void 0 ? void 0 : val.dataSets;
});
});
}
}
async function getDataSetsFromApi(engine, id) {
const data = await engine.query(query, {
variables: {
id
}
});
return data === null || data === void 0 ? void 0 : data.dataSets;
}
async function getMatch(engine, id) {
const data = await engine.query(query2, {
variables: {
id
}
});
return data;
}