import type {TrackedDomains, Watchlist, WatchlistRequest, WatchlistTrigger} from './index' import {request} from './index' interface WatchlistList { 'hydra:totalItems': number 'hydra:member': Watchlist[] } export async function getWatchlists(): Promise { const response = await request({ url: 'watchlists' }) return response.data } export async function getWatchlist(token: string) { const response = await request({ url: 'watchlists/' + token }) return response.data } export async function postWatchlist(watchlist: WatchlistRequest) { const response = await request<{ token: string }>({ method: 'POST', url: 'watchlists', data: watchlist, headers: { 'Content-Type': 'application/json' } }) return response.data } export async function deleteWatchlist(token: string): Promise { await request({ method: 'DELETE', url: 'watchlists/' + token }) } export async function putWatchlist(watchlist: Partial & { token: string }) { const response = await request({ method: 'PUT', url: 'watchlists/' + watchlist.token, data: watchlist }) return response.data } export async function getTrackedDomainList(params: { page: number, itemsPerPage: number }): Promise { const response = await request({ method: 'GET', url: 'tracked', params }) return response.data } export async function createWatchlistTrigger(watchListToken: string, watchListTrigger: WatchlistTrigger): Promise { const response = await request({ method: 'POST', url: `watchlist-triggers`, data: watchListTrigger, }) return response.data } export async function deleteWatchlistTrigger(watchListToken: string, watchListTrigger: WatchlistTrigger): Promise { await request({ method: 'DELETE', url: `watchlists/${watchListToken}/triggers/${watchListTrigger.action}/${watchListTrigger.event}`, data: watchListTrigger }) }