diff --git a/src/services/api/directories/company_groups.ts b/src/services/api/directories/company_groups.ts index 17e80b2..54feb28 100644 --- a/src/services/api/directories/company_groups.ts +++ b/src/services/api/directories/company_groups.ts @@ -2,9 +2,21 @@ import { api } from '../../../api/client'; import type { LegalEntityBrief, Page, RelatedGroupDetail, RelatedGroupOut } from '../../../types/api'; import type { ICompanyGroup } from '../../../types/companyGroups/companyGroups'; +const CG_PAGE = 200; const LE_PAGE = 200; -export const fetchCompanyGroups = () => api.get('/directories/company-groups'); +/** Все видимые ГК — дочитываем страницы, пока не получим total. */ +export async function fetchCompanyGroups(): Promise { + const all: ICompanyGroup[] = []; + for (let offset = 0; ; offset += CG_PAGE) { + const page = await api.get>(`/directories/company-groups?limit=${CG_PAGE}&offset=${offset}`); + all.push(...page.items); + if (all.length >= page.total || page.items.length === 0) { + return all; + } + } +} + export const fetchOneCompanyGroup = (id: string) => api.get(`/directories/company-groups/${id}`); export const fetchRelatedGroups = (groupId: string) => api.get(`/directories/company-groups/${groupId}/related-groups`); export const fetchRelatedGroup = (id: string) => api.get(`/directories/related-groups/${id}`);