Обходной лист (#12)
Co-authored-by: gorbenko.pavel <gorbenko.pavel@tansu.kz> Reviewed-on: http://git.tnsu.kz/gorbenko.pavel/tnsu-approval-route/pulls/12
This commit was merged in pull request #12.
This commit is contained in:
@@ -53,6 +53,7 @@ interface IPortalEmployee {
|
||||
fio: string;
|
||||
email: string | null;
|
||||
position: string | null;
|
||||
company: string | null;
|
||||
}
|
||||
|
||||
async function getJson<T>(client: AadHttpClient, baseUrl: string, path: string): Promise<T> {
|
||||
@@ -112,11 +113,21 @@ export class PortalDictionaryClient {
|
||||
if (!x.email) return;
|
||||
const existing = byEmail.get(x.email);
|
||||
if (!existing) {
|
||||
byEmail.set(x.email, { fio: x.fio, email: x.email, position: x.position || '' });
|
||||
} else if (!existing.position && x.position) {
|
||||
// Один сотрудник — строка на каждый его отдел; должность могла найтись
|
||||
// не в первой из них.
|
||||
existing.position = x.position;
|
||||
byEmail.set(x.email, {
|
||||
fio: x.fio,
|
||||
email: x.email,
|
||||
position: x.position || '',
|
||||
company: x.company || '',
|
||||
// Одна строка на каждую компанию, где числится сотрудник (совместители/
|
||||
// бухгалтерия на несколько юрлиц — не редкость), companies собирает их
|
||||
// все, а company остаётся первой встреченной (для пикера/отображения,
|
||||
// где нужна ровно одна строка на человека).
|
||||
companies: x.company ? [x.company] : []
|
||||
});
|
||||
} else {
|
||||
if (!existing.position && x.position) existing.position = x.position;
|
||||
if (!existing.company && x.company) existing.company = x.company;
|
||||
if (x.company && existing.companies.indexOf(x.company) === -1) existing.companies.push(x.company);
|
||||
}
|
||||
});
|
||||
return Array.from(byEmail.values());
|
||||
|
||||
Reference in New Issue
Block a user