Переезд на метод портала с департаментами (#10)
Tests / frontend-test (push) Successful in 42s
Tests / backend-test (push) Successful in 2m19s

Co-authored-by: gorbenko.pavel <gorbenko.pavel@tansu.kz>
Reviewed-on: http://git.tnsu.kz/gorbenko.pavel/tnsu-approval-route/pulls/10
This commit was merged in pull request #10.
This commit is contained in:
2026-08-10 06:10:56 +00:00
parent a07338314a
commit dc56f9a661
2 changed files with 12 additions and 10 deletions
@@ -9,7 +9,6 @@
"Postgres": "Host=db-master.tnsu.kz;Database=tnsu_approval_route;Username=dbuser;Password=p}{6{Pa]{JQwP1H" "Postgres": "Host=db-master.tnsu.kz;Database=tnsu_approval_route;Username=dbuser;Password=p}{6{Pa]{JQwP1H"
}, },
"Entra": { "Entra": {
"TenantId": "b4c2af35-bfd6-4cff-9af9-556efb53e65a", "TenantId": "b4c2af35-bfd6-4cff-9af9-556efb53e65a",
"Audience": "9232d9e2-9807-4753-808f-07250e5474b0" "Audience": "9232d9e2-9807-4753-808f-07250e5474b0"
}, },
@@ -56,15 +56,18 @@ public sealed class HttpTnsuPortalClient(
return executors; return executors;
} }
// STUB(department-head): в api.tnsu.kz пока нет эндпоинта «руководитель отдела // Ответ — {"managerEmail": "..."} (та же форма, что у /Employee/Manager),
// по Id отдела» — до его появления просто возвращаем захардкоженный email, // а НЕ форма сотрудника (EmployeeResponse) — проверено живым вызовом
// чтобы можно было отладить всю остальную логику HeadType.DepartmentHead // (GET /Employee/DepartmentHead?departmentId=... на отделе "АУП"/"ТОО
// (resolve, warning-и, UI) не дожидаясь портала. Когда эндпоинт появится — // Монтажник-Т" вернул именно managerEmail). 404 с телом {"error": "..."}
// заменить тело этого метода на реальный вызов через GetAsync<T> (по // на отделах без руководителя уже отфильтровывается общим GetAsync<T>.
// образцу остальных методов этого класса); сигнатуру и вызывающий код public async Task<string?> GetDepartmentHeadEmailAsync(Guid departmentId, CancellationToken cancellationToken)
// (TemplateRouteService.ResolveStepAsync) менять не придётся. {
public Task<string?> GetDepartmentHeadEmailAsync(Guid departmentId, CancellationToken cancellationToken) => var manager = await GetAsync<ManagerResponse>(
Task.FromResult<string?>("gorbenko.pavel@tnsu.kz"); $"/Employee/DepartmentHead?departmentId={Uri.EscapeDataString(departmentId.ToString())}", cancellationToken);
return manager?.ManagerEmail;
}
private async Task<T?> GetAsync<T>(string requestUri, CancellationToken cancellationToken) where T : class private async Task<T?> GetAsync<T>(string requestUri, CancellationToken cancellationToken) where T : class
{ {