UNPKG

@axiomhq/js

Version:

The official javascript bindings for the Axiom API

57 lines (46 loc) 1.44 kB
import HTTPClient from "./httpClient.js"; export namespace annotations { export interface Annotation { id: string; type: string; datasets: string[]; title?: string; description?: string; url?: string; time: string; endTime?: string; } export interface ListingQueryParams { datasets?: string[]; start?: string; end?: string; } export interface CreateRequest { type: string; datasets: string[]; title?: string; description?: string; url?: string; time?: string; endTime?: string; } export interface UpdateRequest { type?: string; datasets?: string[]; title?: string; description?: string; url?: string; time?: string; endTime?: string; } export class Service extends HTTPClient { private readonly localPath = "/v2/annotations"; list = (req?: ListingQueryParams): Promise<Annotation[]> => this.client.get(this.localPath, {}, req); get = (id: string): Promise<Annotation> => this.client.get(this.localPath + "/" + id); create = (req: CreateRequest): Promise<Annotation> => this.client.post(this.localPath, { body: JSON.stringify(req) }); update = (id: string, req: UpdateRequest): Promise<Annotation> => this.client.put(this.localPath + "/" + id, { body: JSON.stringify(req) }); delete = (id: string): Promise<Response> => this.client.delete(this.localPath + "/" + id); } }