Path: blob/1.0-develop/resources/scripts/api/account/activity.ts
7461 views
import useSWR, { ConfigInterface, responseInterface } from 'swr';1import { ActivityLog, Transformers } from '@definitions/user';2import { AxiosError } from 'axios';3import http, { PaginatedResult, QueryBuilderParams, withQueryBuilderParams } from '@/api/http';4import { toPaginatedSet } from '@definitions/helpers';5import useFilteredObject from '@/plugins/useFilteredObject';6import { useUserSWRKey } from '@/plugins/useSWRKey';78export type ActivityLogFilters = QueryBuilderParams<'ip' | 'event', 'timestamp'>;910const useActivityLogs = (11filters?: ActivityLogFilters,12config?: ConfigInterface<PaginatedResult<ActivityLog>, AxiosError>13): responseInterface<PaginatedResult<ActivityLog>, AxiosError> => {14const key = useUserSWRKey(['account', 'activity', JSON.stringify(useFilteredObject(filters || {}))]);1516return useSWR<PaginatedResult<ActivityLog>>(17key,18async () => {19const { data } = await http.get('/api/client/account/activity', {20params: {21...withQueryBuilderParams(filters),22include: ['actor'],23},24});2526return toPaginatedSet(data, Transformers.toActivityLog);27},28{ revalidateOnMount: false, ...(config || {}) }29);30};3132export { useActivityLogs };333435