Skip to content

Сервисы

Паттерн

Каждый сервис — это класс-синглтон, экспортируемый как единственный экземпляр:

js
import { clientService } from '@diealltagsfeen/frontend-api-client'

Сигнатуры методов

Публичные методы сервисов — async функции, которые:

  • Принимают параметры (примитивы или объект с деструктуризацией)
  • Принимают опциональный параметр mapper для трансформации ответа
  • Возвращают данные при успехе или null при ошибке
js
// Простой параметр
const client = await clientService.GetById(id, clientByIdMapper)

// Объект с параметрами
await clientService.UpdateStatus({ clientId: '...', status: 400 })

// Пагинация с фильтрами
const data = await clientService.GetTable(
  { pagination, clientStatusFilters: [101, 200] },
  clientTableMapper
)

Параметр mapper

Большинство Get-методов принимают опциональную функцию mapper. Если передана, ответ API проходит через неё перед возвратом:

js
// Без маппера — сырые данные из API
const raw = await clientService.GetTable({ pagination })

// С маппером — трансформированные данные
const mapped = await clientService.GetTable({ pagination }, clientTableMapper)

Мапперы доступны в пакете и импортируются отдельно:

js
import { clientTableMapper, clientByIdMapper } from '@diealltagsfeen/frontend-api-client'

Обработка ошибок

Сервисы никогда не бросают исключения. При ошибке HTTP-запроса или неуспешном ответе (response.data.successfully !== true) метод возвращает null:

js
const data = await clientService.GetById('invalid-id')
if (data === null) {
  // Ошибка — данные не получены
}

При ошибках валидации сервис может вызвать notify() для отображения UI-уведомления (если onNotify был передан в init()).

Приватные методы

Методы с префиксом _ (например, _buildTableParams, _buildCreateParams) — внутренние хелперы для построения параметров запросов. Они не предназначены для вызова извне.