2025-10-15 19:52:44 +02:00
|
|
|
import type {TrackedDomains, Watchlist, WatchlistRequest} from './index'
|
2024-12-31 13:55:42 +01:00
|
|
|
import {request} from './index'
|
2024-07-25 02:09:49 +02:00
|
|
|
|
2024-12-30 23:50:15 +01:00
|
|
|
interface WatchlistList {
|
|
|
|
|
'hydra:totalItems': number
|
|
|
|
|
'hydra:member': Watchlist[]
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
export async function getWatchlists(): Promise<WatchlistList> {
|
|
|
|
|
const response = await request<WatchlistList>({
|
2024-07-25 02:09:49 +02:00
|
|
|
url: 'watchlists'
|
|
|
|
|
})
|
|
|
|
|
return response.data
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
export async function getWatchlist(token: string) {
|
2024-08-16 03:54:48 +02:00
|
|
|
const response = await request<Watchlist>({
|
2024-07-25 02:09:49 +02:00
|
|
|
url: 'watchlists/' + token
|
|
|
|
|
})
|
|
|
|
|
return response.data
|
|
|
|
|
}
|
|
|
|
|
|
2024-08-16 03:54:48 +02:00
|
|
|
export async function postWatchlist(watchlist: WatchlistRequest) {
|
2024-07-25 02:09:49 +02:00
|
|
|
const response = await request<{ token: string }>({
|
|
|
|
|
method: 'POST',
|
|
|
|
|
url: 'watchlists',
|
2024-07-30 22:03:04 +02:00
|
|
|
data: watchlist,
|
2024-07-25 02:09:49 +02:00
|
|
|
headers: {
|
2024-12-30 23:50:15 +01:00
|
|
|
'Content-Type': 'application/json'
|
2024-07-25 02:09:49 +02:00
|
|
|
}
|
|
|
|
|
})
|
|
|
|
|
return response.data
|
|
|
|
|
}
|
|
|
|
|
|
2025-10-25 19:23:15 +02:00
|
|
|
export async function patchWatchlist(token: string, watchlist: Partial<WatchlistRequest>) {
|
|
|
|
|
const response = await request<{ token: string }>({
|
|
|
|
|
method: 'PATCH',
|
|
|
|
|
url: 'watchlists/' + token,
|
|
|
|
|
data: watchlist,
|
|
|
|
|
headers: {
|
|
|
|
|
'Content-Type': 'application/merge-patch+json'
|
|
|
|
|
}
|
|
|
|
|
})
|
|
|
|
|
return response.data
|
|
|
|
|
}
|
|
|
|
|
|
2025-11-01 22:59:49 +01:00
|
|
|
export async function addDomainToWatchlist(watchlist: Watchlist, ldhName: string) {
|
|
|
|
|
const domains = watchlist.domains.map(d => '/api/domains/' + d.ldhName)
|
|
|
|
|
domains.push('/api/domains/' + ldhName)
|
|
|
|
|
|
|
|
|
|
return patchWatchlist(watchlist.token, {domains})
|
|
|
|
|
}
|
|
|
|
|
|
2024-07-25 02:09:49 +02:00
|
|
|
export async function deleteWatchlist(token: string): Promise<void> {
|
|
|
|
|
await request({
|
|
|
|
|
method: 'DELETE',
|
|
|
|
|
url: 'watchlists/' + token
|
|
|
|
|
})
|
|
|
|
|
}
|
2024-08-14 23:23:32 +02:00
|
|
|
|
2024-08-16 03:54:48 +02:00
|
|
|
export async function putWatchlist(watchlist: Partial<WatchlistRequest> & { token: string }) {
|
|
|
|
|
const response = await request<WatchlistRequest>({
|
2024-08-15 03:04:31 +02:00
|
|
|
method: 'PUT',
|
2024-08-14 23:23:32 +02:00
|
|
|
url: 'watchlists/' + watchlist.token,
|
2024-12-30 23:50:15 +01:00
|
|
|
data: watchlist
|
2024-08-14 23:23:32 +02:00
|
|
|
})
|
|
|
|
|
return response.data
|
2024-09-09 11:31:33 +02:00
|
|
|
}
|
|
|
|
|
|
2024-12-30 23:50:15 +01:00
|
|
|
export async function getTrackedDomainList(params: { page: number, itemsPerPage: number }): Promise<TrackedDomains> {
|
|
|
|
|
const response = await request<TrackedDomains>({
|
2024-09-09 11:31:33 +02:00
|
|
|
method: 'GET',
|
|
|
|
|
url: 'tracked',
|
|
|
|
|
params
|
|
|
|
|
})
|
|
|
|
|
return response.data
|
|
|
|
|
}
|