mirror of
https://github.com/maelgangloff/domain-watchdog.git
synced 2025-12-29 16:15:04 +00:00
Merged master
This commit is contained in:
@@ -21,6 +21,7 @@ export type TriggerAction = 'email' | string
|
||||
export interface Event {
|
||||
action: EventAction
|
||||
date: string
|
||||
deleted: boolean
|
||||
}
|
||||
|
||||
export interface Entity {
|
||||
@@ -53,10 +54,12 @@ export interface Domain {
|
||||
entity: Entity
|
||||
events: Event[]
|
||||
roles: string[]
|
||||
deleted: boolean
|
||||
}[]
|
||||
nameservers: Nameserver[]
|
||||
tld: Tld
|
||||
deleted: boolean
|
||||
updatedAt: string
|
||||
}
|
||||
|
||||
export interface User {
|
||||
@@ -64,11 +67,22 @@ export interface User {
|
||||
roles: string[]
|
||||
}
|
||||
|
||||
export interface Watchlist {
|
||||
export interface WatchlistRequest {
|
||||
name?: string
|
||||
domains: string[],
|
||||
triggers: { event: EventAction, action: TriggerAction }[],
|
||||
connector?: string
|
||||
dsn?: string[]
|
||||
}
|
||||
|
||||
export interface Watchlist {
|
||||
token: string
|
||||
name?: string
|
||||
domains: Domain[],
|
||||
triggers: { event: EventAction, action: TriggerAction }[],
|
||||
connector?: string
|
||||
createdAt: string
|
||||
dsn?: string[]
|
||||
}
|
||||
|
||||
export interface InstanceConfig {
|
||||
@@ -77,6 +91,16 @@ export interface InstanceConfig {
|
||||
registerEnabled: boolean
|
||||
}
|
||||
|
||||
export interface Statistics {
|
||||
rdapQueries: number
|
||||
alertSent: number
|
||||
domainPurchased: number
|
||||
domainPurchaseFailed: number
|
||||
domainCount: {tld: string, domain: number}[]
|
||||
domainCountTotal: number
|
||||
domainTracked: number
|
||||
}
|
||||
|
||||
export async function request<T = any, R = AxiosResponse<T>, D = any>(config: AxiosRequestConfig): Promise<R> {
|
||||
const axiosConfig: AxiosRequestConfig = {
|
||||
...config,
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import {InstanceConfig, request, User} from "./index";
|
||||
import {InstanceConfig, request, Statistics, User} from "./index";
|
||||
|
||||
|
||||
export async function login(email: string, password: string): Promise<boolean> {
|
||||
@@ -32,4 +32,11 @@ export async function getConfiguration(): Promise<InstanceConfig> {
|
||||
url: 'config'
|
||||
})
|
||||
return response.data
|
||||
}
|
||||
|
||||
export async function getStatistics(): Promise<Statistics> {
|
||||
const response = await request<Statistics>({
|
||||
url: 'stats'
|
||||
})
|
||||
return response.data
|
||||
}
|
||||
@@ -1,4 +1,4 @@
|
||||
import {Event, request, Watchlist} from "./index";
|
||||
import {Domain, request, Watchlist, WatchlistRequest} from "./index";
|
||||
|
||||
export async function getWatchlists() {
|
||||
const response = await request({
|
||||
@@ -8,13 +8,13 @@ export async function getWatchlists() {
|
||||
}
|
||||
|
||||
export async function getWatchlist(token: string) {
|
||||
const response = await request<Watchlist & { token: string }>({
|
||||
const response = await request<Watchlist>({
|
||||
url: 'watchlists/' + token
|
||||
})
|
||||
return response.data
|
||||
}
|
||||
|
||||
export async function postWatchlist(watchlist: Watchlist) {
|
||||
export async function postWatchlist(watchlist: WatchlistRequest) {
|
||||
const response = await request<{ token: string }>({
|
||||
method: 'POST',
|
||||
url: 'watchlists',
|
||||
@@ -33,17 +33,21 @@ export async function deleteWatchlist(token: string): Promise<void> {
|
||||
})
|
||||
}
|
||||
|
||||
export async function patchWatchlist(domains: string[], triggers: Event[]) {
|
||||
const response = await request<Watchlist>({
|
||||
method: 'PATCH',
|
||||
url: 'watchlists',
|
||||
data: {
|
||||
domains,
|
||||
triggers
|
||||
},
|
||||
headers: {
|
||||
"Content-Type": 'application/merge-patch+json'
|
||||
}
|
||||
export async function putWatchlist(watchlist: Partial<WatchlistRequest> & { token: string }) {
|
||||
const response = await request<WatchlistRequest>({
|
||||
method: 'PUT',
|
||||
url: 'watchlists/' + watchlist.token,
|
||||
data: watchlist,
|
||||
})
|
||||
return response.data
|
||||
}
|
||||
}
|
||||
|
||||
export async function getTrackedDomainList(params: { page: number, itemsPerPage: number }): Promise<any> {
|
||||
const response = await request({
|
||||
method: 'GET',
|
||||
url: 'tracked',
|
||||
params
|
||||
})
|
||||
return response.data
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user