Feature/request type access (#23)
Tests / frontend-test (push) Successful in 49s
Tests / backend-test (push) Successful in 1m38s

Co-authored-by: gorbenko.pavel <gorbenko.pavel@tansu.kz>
Reviewed-on: http://git.tnsu.kz/gorbenko.pavel/tnsu-approval-route/pulls/23
This commit was merged in pull request #23.
This commit is contained in:
2026-09-25 11:48:02 +00:00
parent 1bf8d4ca11
commit a8bfd9f456
20 changed files with 1067 additions and 2 deletions
@@ -1,5 +1,6 @@
import { IHttpClient } from './httpClient';
import {
CreateRequestTypeAccessInput,
CreateRequestTypeInput,
CreateTemplateRouteInput,
CreateTemplateRouteStepInput,
@@ -13,6 +14,7 @@ import {
PatchTemplateRouteStepInput,
RequestListPartition,
RequestType,
RequestTypeAccess,
RequestTypeListSeries,
ResolveTemplateRouteQuery,
ResolveTemplateRouteResult,
@@ -80,6 +82,21 @@ export class ApprovalRouteApi {
this.http.get<RequestListPartition[]>(`/api/request-types/${requestTypeId}/lists`)
};
// Доступ «видеть все заявки типа» (Application/RequestTypeAccesses/*.cs) —
// тот же список email по типу, что и ручка для Power Automate
// (GET .../{requestTypeId}/emails), только здесь читается ВЕСЬ реестр разом
// (requestTypeId не передан) — админке нужна одна таблица по всем типам.
public readonly requestTypeAccess = {
list: (requestTypeId?: number): Promise<RequestTypeAccess[]> =>
this.http.get<RequestTypeAccess[]>('/api/request-type-access', { requestTypeId }),
create: (body: CreateRequestTypeAccessInput): Promise<RequestTypeAccess> =>
this.http.post<RequestTypeAccess>('/api/request-type-access', body),
remove: (id: number): Promise<void> =>
this.http.delete(`/api/request-type-access/${id}`)
};
public readonly templateRoutes = {
list: (requestTypeId?: number): Promise<TemplateRoute[]> =>
this.http.get<TemplateRoute[]>('/api/template-routes', { requestTypeId }),