import ApiClient from './ApiClient'; import * as C from './types/Connector'; import * as P from './types/Paginated'; import urls from './urls'; export const mapConnectorResponse = (c: C.ConnectorResponse): C.Connector => ({ name: c.name, id: c.id, displayName: c.display_name, thumbnailUrl: c.thumbnail_url, }); export default class ConnectorClient { async getConnectors( this: ApiClient, params: C.GetConnectorsQuery = {}, ): Promise> { const sortByMap = { createdAt: 'created_at', updatedAt: 'updated_at', } as const; const data = await this.requestProtected< void, P.Paginated >({ method: 'GET', url: urls.connectors({ page: params.page, page_size: params.pageSize, sort_by: params.sortBy && sortByMap[params.sortBy], sort_direction: params.sortDirection, }), }); return { total: data.total, data: data.data.map(mapConnectorResponse), }; } }