Merge branch 'dev_environment' of gitlab.com:brandx/bxt-app into dev_environment
This commit is contained in:
commit
860f730d88
22 changed files with 199 additions and 102 deletions
|
|
@ -30,7 +30,7 @@ export {
|
|||
useTeamAPI,
|
||||
useImagekitAPI,
|
||||
useTaskAPI, //TODO: update api with resolve, reject
|
||||
// useUsageAPI,
|
||||
useUsageAPI,//TODO: update api with resolve, reject
|
||||
useUserAPI,
|
||||
// useStripeAPI,
|
||||
useDataDogProxyAPI,
|
||||
|
|
|
|||
|
|
@ -32,6 +32,7 @@ import PreferenceProvider, {usePreferenceAPI} from "./preferenceAPI";
|
|||
import TaskProvider, { useTaskAPI } from "./taskAPI";
|
||||
import DataDogProvider, { useDataDogProxyAPI } from "./datadogProxyAPI";
|
||||
import ContractProvider, { useContractAPI } from "./contractAPI";
|
||||
import UsageProvider, { useUsageAPI } from "./usageAPI";
|
||||
// import NoteProvider from "providers/noteAPI";
|
||||
|
||||
export const pondURL = (partial: string, demo: boolean = false): string => {
|
||||
|
|
@ -80,7 +81,9 @@ export default function PondProvider(props: PropsWithChildren<any>) {
|
|||
<TaskProvider>
|
||||
<DataDogProvider>
|
||||
<ContractProvider>
|
||||
{children}
|
||||
<UsageProvider>
|
||||
{children}
|
||||
</UsageProvider>
|
||||
</ContractProvider>
|
||||
</DataDogProvider>
|
||||
</TaskProvider>
|
||||
|
|
@ -147,5 +150,6 @@ export {
|
|||
usePreferenceAPI,
|
||||
useTaskAPI,
|
||||
useDataDogProxyAPI,
|
||||
useContractAPI
|
||||
useContractAPI,
|
||||
useUsageAPI
|
||||
};
|
||||
|
|
|
|||
99
src/providers/pond/usageAPI.tsx
Normal file
99
src/providers/pond/usageAPI.tsx
Normal file
|
|
@ -0,0 +1,99 @@
|
|||
import { useHTTP } from "hooks";
|
||||
import moment from "moment";
|
||||
import { useGlobalState } from "providers";
|
||||
import { createContext, PropsWithChildren, useContext } from "react";
|
||||
import { pondURL } from "./pond";
|
||||
|
||||
export interface IUsageAPIContext {
|
||||
getUsage: (
|
||||
deviceID: number | string,
|
||||
startDate?: any,
|
||||
demo?: boolean,
|
||||
keys?: string[],
|
||||
types?: string[]
|
||||
) => Promise<any>;
|
||||
getUsages: (deviceIDs: number[], startDate?: any) => Promise<any>;
|
||||
listUsages: (startDate?: any) => Promise<any>;
|
||||
}
|
||||
|
||||
export const UsageAPIContext = createContext<IUsageAPIContext>({} as IUsageAPIContext);
|
||||
|
||||
function usageQuery(deviceIDs?: number[], startDate?: any): string {
|
||||
let query = "";
|
||||
let symbol: "?" | "&" = "?";
|
||||
if (deviceIDs && deviceIDs.length > 0) {
|
||||
query = query.concat(symbol + "ids=" + deviceIDs.join(","));
|
||||
symbol = "&";
|
||||
}
|
||||
if (startDate) {
|
||||
let start = moment(startDate).toISOString();
|
||||
query = query.concat(symbol + "start=" + start);
|
||||
symbol = "&";
|
||||
}
|
||||
return query;
|
||||
}
|
||||
|
||||
interface Props {}
|
||||
|
||||
export default function UsageProvider(props: PropsWithChildren<Props>) {
|
||||
const { children } = props;
|
||||
const { get } = useHTTP();
|
||||
const [{ as }] = useGlobalState();
|
||||
|
||||
const getUsage = (
|
||||
deviceID: number | string,
|
||||
startDate?: any,
|
||||
demo: boolean = false,
|
||||
keys?: string[],
|
||||
types?: string[]
|
||||
) => {
|
||||
if (as && !(types && types.length > 0 && types[0] === "team"))
|
||||
return get(
|
||||
pondURL(
|
||||
"/devices/" +
|
||||
deviceID +
|
||||
"/usage" +
|
||||
usageQuery(undefined, startDate) +
|
||||
"&as=" +
|
||||
as +
|
||||
(keys ? "&keys=" + keys.toString() : "") +
|
||||
(types ? "&types=" + types.toString() : ""),
|
||||
demo
|
||||
)
|
||||
);
|
||||
return get(
|
||||
pondURL(
|
||||
"/devices/" +
|
||||
deviceID +
|
||||
"/usage" +
|
||||
usageQuery(undefined, startDate) +
|
||||
(keys ? "&keys=" + keys.toString() : "") +
|
||||
(types ? "&types=" + types.toString() : ""),
|
||||
demo
|
||||
)
|
||||
);
|
||||
};
|
||||
|
||||
const getUsages = (deviceIDs: number[], startDate?: any) => {
|
||||
if (as) return get(pondURL("/usage/devices" + usageQuery(deviceIDs, startDate) + "&as=" + as));
|
||||
return get(pondURL("/usage/devices" + usageQuery(deviceIDs, startDate)));
|
||||
};
|
||||
|
||||
const listUsages = (startDate?: any) => {
|
||||
if (as) return get(pondURL("/usage" + usageQuery(undefined, startDate) + "&as=" + as));
|
||||
return get(pondURL("/usage" + usageQuery(undefined, startDate)));
|
||||
};
|
||||
|
||||
return (
|
||||
<UsageAPIContext.Provider
|
||||
value={{
|
||||
getUsage,
|
||||
getUsages,
|
||||
listUsages
|
||||
}}>
|
||||
{children}
|
||||
</UsageAPIContext.Provider>
|
||||
);
|
||||
}
|
||||
|
||||
export const useUsageAPI = () => useContext(UsageAPIContext);
|
||||
Loading…
Add table
Add a link
Reference in a new issue