import { AxiosResponse } from "axios"; import { useHTTP } from "../http"; import { pond } from "protobuf-ts/pond"; import { createContext, PropsWithChildren, useContext } from "react"; import { pondURL } from "./pond"; export interface IDataDogProxyAPIContext { listLogs: ( from: string, to: string, sort: string, limit: number, level?: string ) => Promise>; listDeviceLogs: ( device: string | number, from: string, to: string, sort: string, limit: number, level?: string ) => Promise>; } export const DataDogProxyAPIContext = createContext( {} as IDataDogProxyAPIContext ); interface Props {} export default function DataDogProvider(props: PropsWithChildren) { const { children } = props; const { get } = useHTTP(); const listLogs = (from: string, to: string, sort: string, limit: number, query?: string) => { query = query ? query : ""; // if (level && level !== "all") { // query = query + " @level:" + level; // } return get( pondURL( "/datadog/logs?query=" + query + "&from=" + from + "&to=" + to + "&sort=" + sort + "&limit=" + limit ) ); }; const listDeviceLogs = ( device: string | number, from: string, to: string, sort: string, limit: number, level?: string ) => { let query = "@device:" + device; if (level && level !== "all") { query = query + " @level:" + level; } // console.log( // "/datadog/logs?query=" + // query + // "&from=" + // from + // "&to=" + // to + // "&sort=" + // sort + // "&limit=" + // limit // ); return get( pondURL( "/datadog/logs?query=" + query + "&from=" + from + "&to=" + to + "&sort=" + sort + "&limit=" + limit ) ); }; return ( {children} ); } export const useDataDogProxyAPI = () => useContext(DataDogProxyAPIContext);