updated existing api calls

This commit is contained in:
csawatzky 2025-02-24 15:40:24 -06:00
parent ade15fdfdc
commit c74a7490d9
12 changed files with 1509 additions and 698 deletions

View file

@ -8,18 +8,19 @@ import { AxiosResponse } from "axios";
import { useGlobalState } from "providers";
import moment from "moment";
import { or } from "utils/types";
import { reject, result } from "lodash";
export interface IDeviceAPIContext {
add: (name: string, description: string, backpack: pond.BackpackSettings) => Promise<any>;
update: (id: number, settings: pond.DeviceSettings) => Promise<any>;
remove: (id: number) => Promise<any>;
get: (id: number | string, demo?: boolean, keys?: string[], types?: string[]) => Promise<any>;
add: (name: string, description: string, backpack: pond.BackpackSettings) => Promise<AxiosResponse<pond.AddDeviceResponse>>;
update: (id: number, settings: pond.DeviceSettings) => Promise<AxiosResponse<pond.UpdateDeviceResponse>>;
remove: (id: number) => Promise<AxiosResponse<pond.RemoveDeviceResponse>>;
get: (id: number | string, demo?: boolean, keys?: string[], types?: string[]) => Promise<AxiosResponse<pond.Device>>
getPageData: (
id: number | string,
keys?: string[],
types?: string[]
) => Promise<AxiosResponse<pond.GetDevicePageDataResponse>>;
getMulti: (ids: number[] | string[]) => Promise<any>;
getMulti: (ids: number[] | string[]) => Promise<AxiosResponse<pond.GetMultiDeviceResponse>>;
getGeoJson: (id: number | string, demo?: boolean) => Promise<any>;
getMultiGeoJson: (ids: number[] | string[]) => Promise<any>;
list: (
@ -66,7 +67,7 @@ export interface IDeviceAPIContext {
preferences: pond.DeviceComponentPreferences,
keys?: string[],
types?: string[]
) => Promise<any>;
) => Promise<AxiosResponse<pond.UpdateDeviceComponentPreferencesResponse>>;
listDeviceComponentPreferences: (
id: number | string,
keys?: string[],
@ -77,7 +78,7 @@ export interface IDeviceAPIContext {
status: pond.DeviceStatus,
keys?: string[],
types?: string[]
) => Promise<any>;
) => Promise<AxiosResponse<pond.UpdateDeviceStatusResponse>>;
sync: (id: number) => Promise<any>;
clearPending: (id: number) => Promise<any>;
pause: (id: number) => Promise<any>;
@ -149,8 +150,16 @@ export default function DeviceProvider(props: PropsWithChildren<Props>) {
const [{ as, team }] = useGlobalState();
const add = (name: string, description: string, backpack: pond.BackpackSettings) => {
if (as) return post(pondURL("/devices?as=" + as), { name, description, backpack });
return post(pondURL("/devices"), { name, description, backpack });
let url = pondURL("/devices")
if (as) url = pondURL("/devices?as=" + as)
return new Promise<AxiosResponse<pond.AddDeviceResponse>>((resolve, reject) => {
post<pond.AddDeviceResponse>(url, { name, description, backpack }).then(resp => {
resp.data = pond.AddDeviceResponse.fromObject(resp.data)
return resolve(resp)
}).catch(err => {
return reject(err)
})
})
};
const getDevice = (
@ -159,42 +168,43 @@ export default function DeviceProvider(props: PropsWithChildren<Props>) {
keys?: string[],
types?: string[]
) => {
if (as && !(types && types.length > 0 && types[0] === "team"))
return get(
pondURL(
"/devices/" +
id +
"?as=" +
as +
(keys ? "&keys=" + keys.toString() : "") +
(types ? "&types=" + types.toString() : ""),
demo
)
);
const url = pondURL(
let url = pondURL(
"/devices/" +
id +
(keys ? "?keys=" + keys.toString() : "") +
id +
(as ? "?as=" + as : "") +
(keys ? "&keys=" + keys.toString() : "") +
(types ? "&types=" + types.toString() : ""),
demo
);
return get(url);
return new Promise<AxiosResponse<pond.Device>>((resolve, response) => {
get<pond.Device>(url).then(resp => {
resp.data = pond.Device.fromObject(resp.data)
return resolve(resp)
}).catch(err => {
return reject(err)
})
})
};
const statistics = (
keys?: string[],
types?: string[]
) => {
let url = pondURL("/deviceStatistics");
if (types && types.length > 0 && types[0] === "team")
return get(
pondURL(
"/deviceStatistics/" +
(keys ? "?keys=" + keys.toString() : "") +
(types ? "&types=" + types.toString() : "")
)
);
const url = pondURL("/deviceStatistics");
return get<pond.GetDeviceStatisticsResponse>(url);
url = pondURL(
"/deviceStatistics/" +
(keys ? "?keys=" + keys.toString() : "") +
(types ? "&types=" + types.toString() : "")
)
return new Promise<AxiosResponse<pond.GetDeviceStatisticsResponse>>((resolve, reject) => {
get<pond.GetDeviceStatisticsResponse>(url).then(resp => {
resp.data = pond.GetDeviceStatisticsResponse.fromObject(resp.data)
return resolve(resp)
}).catch(err => {
return reject(err)
})
})
};
const getDevicePageData = (
@ -202,30 +212,42 @@ export default function DeviceProvider(props: PropsWithChildren<Props>) {
keys?: string[],
types?: string[]
): Promise<AxiosResponse<pond.GetDevicePageDataResponse>> => {
if (as && !(types && types.length > 0 && types[0] === "team"))
return get(
pondURL(
"/devicePageData/" +
id +
"?as=" +
as +
(keys ? "&keys=" + keys.toString() : "") +
(types ? "&types=" + types.toString() : "")
)
);
const url = pondURL(
let url = pondURL(
"/devicePageData/" +
id +
(keys ? "?keys=" + keys.toString() : "") +
(types ? "&types=" + types.toString() : "")
);
return get<pond.GetDevicePageDataResponse>(url);
if (as && !(types && types.length > 0 && types[0] === "team")) {
pondURL(
"/devicePageData/" +
id +
"?as=" +
as +
(keys ? "&keys=" + keys.toString() : "") +
(types ? "&types=" + types.toString() : "")
)
}
return new Promise<AxiosResponse<pond.GetDevicePageDataResponse>>((resolve, reject) => {
get<pond.GetDevicePageDataResponse>(url).then(resp => {
resp.data = pond.GetDevicePageDataResponse.fromObject(resp.data)
return resolve(resp)
}).catch(err => {
return reject(err)
})
})
};
const getDeviceGeoJSON = (id: number | string, demo: boolean = false) => {
if (as) return get(pondURL("/devices/" + id + "/geojson?as=" + as, demo));
const url = pondURL("/devices/" + id + "/geojson", demo);
return get(url);
let url = pondURL("/devices/" + id + "/geojson", demo);
if (as) url = pondURL("/devices/" + id + "/geojson?as=" + as, demo)
return new Promise<AxiosResponse>((resolve, reject) => {
get(url).catch(resp => {
return resolve(resp)
}).catch(err => {
return reject(err)
})
})
};
const getMulti = (ids: number[] | string[]) => {
@ -237,8 +259,15 @@ export default function DeviceProvider(props: PropsWithChildren<Props>) {
idString = idString + "," + id;
}
});
if (as) return get(pondURL("/multidevices?devices=" + idString + "&as=" + as));
return get(pondURL("/multidevices?devices=" + idString));
let url = pondURL("/multidevices?devices=" + idString + (as ? "&as=" + as : ""))
return new Promise<AxiosResponse<pond.GetMultiDeviceResponse>>((resolve, reject) => {
get<pond.GetMultiDeviceResponse>(url).then(resp => {
resp.data = pond.GetMultiDeviceResponse.fromObject(resp.data)
return resolve(resp)
}).catch(err => {
return reject(err)
})
})
};
const getMultiDevicesGeoJSON = (ids: number[] | string[]) => {
@ -250,8 +279,14 @@ export default function DeviceProvider(props: PropsWithChildren<Props>) {
idString = idString + "," + id;
}
});
if (as) return get(pondURL("/geojson/devices?devices=" + idString + "&as=" + as));
return get(pondURL("/geojson/devices?devices=" + idString));
let url = pondURL("/geojson/devices?devices=" + idString + (as ? "&as=" + as : ""))
return new Promise<AxiosResponse>((resolve, reject) => {
get(url).then(resp => {
return resolve(resp)
}).catch(err => {
return reject(err)
})
})
};
const list = (
@ -288,7 +323,14 @@ export default function DeviceProvider(props: PropsWithChildren<Props>) {
(keys ? "&keys=" + keys.toString() : "") +
(types ? "&types=" + types.toString() : "")
);
return get<pond.ListDevicesResponse>(url);
return new Promise<AxiosResponse<pond.ListDevicesResponse>>((resolve, reject)=>{
get<pond.ListDevicesResponse>(url).then(resp => {
resp.data = pond.ListDevicesResponse.fromObject(resp.data)
return resolve(resp)
}).catch(err => {
return reject(err)
});
})
};
const listForUser = (
@ -307,45 +349,83 @@ export default function DeviceProvider(props: PropsWithChildren<Props>) {
(keys ? "&keys=" + keys.toString() : "") +
(types ? "&types=" + types.toString() : "")
);
return get<pond.ListDevicesResponse>(url);
return new Promise<AxiosResponse<pond.ListDevicesResponse>>((resolve, reject) => {
get<pond.ListDevicesResponse>(url).then(resp => {
resp.data = pond.ListDevicesResponse.fromObject(resp.data)
return resolve(resp)
}).catch(err => {
return reject(err)
})
})
};
const remove = (id: number) => {
if (as) return del(pondURL("/devices/" + id + "?as=" + as));
const url = pondURL("/devices/" + id);
return del(url);
const url = pondURL("/devices/" + id + (as ? "?as=" + as : ""))
return new Promise<AxiosResponse<pond.RemoveDeviceResponse>>((resolve, reject) => {
del<pond.RemoveDeviceResponse>(url).then(resp => {
resp.data = pond.RemoveDeviceResponse.fromObject(resp.data)
return resolve(resp)
}).catch(err => {
return reject(err)
})
})
};
const update = (id: number, settings: pond.DeviceSettings) => {
if (as) return put(pondURL(`/devices/${id}/update?as=${as}`), settings);
const url = pondURL("/devices/" + id + "/update");
return put(url, settings);
const url = pondURL("/devices/" + id + "/update" + (as ? "?as=" + as : ""));
return new Promise<AxiosResponse<pond.UpdateDeviceResponse>>((resolve, reject) => {
put<pond.UpdateDeviceResponse>(url, settings).then(resp => {
resp.data = pond.UpdateDeviceResponse.fromObject(resp)
return resolve(resp)
}).catch(err => {
return reject(err)
})
})
};
const claim = (id: number | Long, body: any) => {
return put(pondURL("/devices/" + id), body);
return new Promise<AxiosResponse>((resolve, reject) => {
put(pondURL("/devices/" + id), body).then(resp => {
return resolve(resp)
}).catch(err => {
return reject(err)
})
})
};
const listHistory = (id: number, limit: number, offset: number) => {
return get(pondURL("/devices/" + id + "/history?limit=" + limit + "&offset=" + offset));
return new Promise<AxiosResponse>((resolve, reject) => {
get(pondURL("/devices/" + id + "/history?limit=" + limit + "&offset=" + offset)).then(resp => {
return resolve(resp)
}).catch(err => {
return reject(err)
})
})
};
const listCompleteHistory = (
id: number,
limit: number,
offset: number,
filters?: pond.ObjectType[]
) => {
return get<pond.ListCompleteHistoryResponse>(
pondURL(
"/devices/" +
id +
"/completehistory?limit=" +
limit +
"&offset=" +
offset +
(filters ? "&sources=" + filters.toString() : "")
)
);
let url = pondURL(
"/devices/" +
id +
"/completehistory?limit=" +
limit +
"&offset=" +
offset +
(filters ? "&sources=" + filters.toString() : "")
)
return new Promise<AxiosResponse<pond.ListCompleteHistoryResponse>>((resolve, reject) => {
get<pond.ListCompleteHistoryResponse>(url).then(resp => {
resp.data = pond.ListCompleteHistoryResponse.fromObject(resp.data)
return resolve(resp)
}).catch(err => {
return reject(err)
})
})
};
const updateDevicePermissions = (id: number | string, users: User[]) => {
@ -358,18 +438,22 @@ export default function DeviceProvider(props: PropsWithChildren<Props>) {
keys?: string[],
types?: string[]
) => {
return put(
pondURL(
"/devices/" +
id +
"/preferences" +
"?as=" +
or(as, "") +
(keys ? "&keys=" + keys.toString() : "") +
(types ? "&types=" + types.toString() : "")
),
preferences
);
let url = pondURL(
"/devices/" +
id +
"/preferences" +
"?as=" +
or(as, "") +
(keys ? "&keys=" + keys.toString() : "") +
(types ? "&types=" + types.toString() : "")
)
return new Promise<AxiosResponse>((resolve, reject) => {
put(url,preferences).then(resp => {
return resolve(resp)
}).catch(err => {
return reject(err)
})
})
};
const updateComponentPreferences = (
@ -379,20 +463,25 @@ export default function DeviceProvider(props: PropsWithChildren<Props>) {
keys?: string[],
types?: string[]
) => {
return put(
pondURL(
"/devices/" +
id +
"/components/" +
component +
"/componentPreferences" +
"?as=" +
as +
(keys ? "&keys=" + keys.toString() : "") +
(types ? "&types=" + types.toString() : "")
),
preferences
);
let url = pondURL(
"/devices/" +
id +
"/components/" +
component +
"/componentPreferences" +
"?as=" +
as +
(keys ? "&keys=" + keys.toString() : "") +
(types ? "&types=" + types.toString() : "")
)
return new Promise<AxiosResponse<pond.UpdateDeviceComponentPreferencesResponse>>((resolve, reject) => {
put<pond.UpdateDeviceComponentPreferencesResponse>(url, preferences).then(resp => {
resp.data = pond.UpdateDeviceComponentPreferencesResponse.fromObject(resp.data)
return resolve(resp)
}).catch(err => {
return reject(err)
})
})
};
const listDeviceComponentPreferences = (
@ -400,16 +489,22 @@ export default function DeviceProvider(props: PropsWithChildren<Props>) {
keys?: string[],
types?: string[]
) => {
return get<pond.ListDeviceComponentPreferencesResponse>(
pondURL(
"/devices/" +
id +
"/componentPreferences?as=" +
as +
(keys ? "&keys=" + keys.toString() : "") +
(types ? "&types=" + types.toString() : "")
)
);
let url = pondURL(
"/devices/" +
id +
"/componentPreferences?as=" +
as +
(keys ? "&keys=" + keys.toString() : "") +
(types ? "&types=" + types.toString() : "")
)
return new Promise<AxiosResponse<pond.ListDeviceComponentPreferencesResponse>>((resolve, reject) => {
get<pond.ListDeviceComponentPreferencesResponse>(url).then(resp => {
resp.data = pond.ListDeviceComponentPreferencesResponse.fromObject(resp.data)
return resolve(resp)
}).catch(err => {
return reject(err)
})
})
};
const updateStatus = (
@ -418,52 +513,93 @@ export default function DeviceProvider(props: PropsWithChildren<Props>) {
keys?: string[],
types?: string[]
) => {
return put(
pondURL(
"/devices/" +
id +
"/updateStatus" +
"?as=" +
as +
(keys ? "&keys=" + keys.toString() : "") +
(types ? "&types=" + types.toString() : "")
),
status
);
let url = pondURL(
"/devices/" +
id +
"/updateStatus" +
"?as=" +
as +
(keys ? "&keys=" + keys.toString() : "") +
(types ? "&types=" + types.toString() : "")
)
return new Promise<AxiosResponse<pond.UpdateDeviceStatusResponse>>((resolve, reject) => {
put<pond.UpdateDeviceStatusResponse>(url, status).then(resp => {
resp.data = pond.UpdateDeviceStatusResponse.fromObject(resp.data)
return resolve(resp)
}).catch(err => {
return reject(err)
})
})
};
const sync = (id: number) => {
return post(pondURL("/devices/" + id + "/sync"), {});
return new Promise<AxiosResponse>((resolve, reject) => {
post(pondURL("/devices/" + id + "/sync"), {}).then(resp => {
return resolve(resp)
}).catch(err => {
return reject(err)
})
})
};
const clearPending = (id: number) => {
return post(pondURL("/devices/" + id + "/clearPending"), {});
return new Promise<AxiosResponse>((resolve, reject) => {
post(pondURL("/devices/" + id + "/clearPending"), {}).then(resp => {
return resolve(resp)
}).catch(err => {
return reject(err)
})
})
};
const pause = (id: number) => {
return post(pondURL("/devices/" + id + "/pause"), {});
return new Promise<AxiosResponse>((resolve, reject) => {
post(pondURL("/devices/" + id + "/pause"), {}).then(resp => {
return resolve(resp)
}).catch(err => {
return reject(err)
})
})
};
const bulkPause = (ids: number[], setPaused: boolean) => {
return post<pond.BulkPauseDeviceResponse>(
pondURL(
"/bulkPauseDevices?ids=" +
ids.toString() +
(setPaused ? "&pause=" + setPaused.toString() : "")
),
{}
);
let url = pondURL(
"/bulkPauseDevices?ids=" +
ids.toString() +
(setPaused ? "&pause=" + setPaused.toString() : "")
)
return new Promise<AxiosResponse<pond.BulkPauseDeviceResponse>>((resolve, reject) => {
post<pond.BulkPauseDeviceResponse>(url,{}).then(resp => {
resp.data = pond.BulkPauseDeviceResponse.fromObject(resp.data)
return resolve(resp)
}).catch(err => {
return reject(err)
})
})
};
const bulkChangeDataCaps = (ids: number[], newCap: number) => {
return post<pond.BulkChangeDataCapsResponse>(
pondURL("/bulkChangeDataCap?ids=" + ids.toString() + "&dataCap=" + newCap),
{}
);
return new Promise<AxiosResponse<pond.BulkChangeDataCapsResponse>>((resolve, reject) => {
post<pond.BulkChangeDataCapsResponse>(
pondURL("/bulkChangeDataCap?ids=" + ids.toString() + "&dataCap=" + newCap),
{}
).then(resp => {
resp.data = pond.BulkChangeDataCapsResponse.fromObject(resp.data)
return resolve(resp)
}).catch(err => {
return reject(err)
})
})
};
const resume = (id: number) => {
return post(pondURL("/devices/" + id + "/resume"), {});
return new Promise<AxiosResponse>((resolve, reject) => {
post(pondURL("/devices/" + id + "/resume"), {}).then(resp => {
return resolve(resp)
}).catch(err => {
return reject(err)
})
})
};
const getUpgradeStatus = (id: number, keys?: string[], types?: string[]) => {
@ -472,15 +608,33 @@ export default function DeviceProvider(props: PropsWithChildren<Props>) {
a = as ? a + "&keys=" + keys + "&types=" + types : "?keys=" + keys + "&types=" + types;
}
let url = pondURL("/devices/" + id + "/firmware" + a);
return get(url);
return new Promise<AxiosResponse>((resolve, reject) => {
get(url).then(resp => {
return resolve(resp)
}).catch(err => {
return reject(err)
})
})
};
const loadBackpack = (id: number, backpack: number) => {
return put(pondURL("/devices/" + id + "/load/" + backpack), {});
return new Promise<AxiosResponse>((resolve, reject) => {
put(pondURL("/devices/" + id + "/load/" + backpack), {}).then(resp => {
return resolve(resp)
}).catch(err => {
return reject(err)
})
})
};
const setTags = (id: number, tags: string[]) => {
return put(pondURL("/devices/" + id + "/tags"), { tags });
return new Promise<AxiosResponse>((resolve, reject) => {
put(pondURL("/devices/" + id + "/tags"), { tags }).then(resp => {
return resolve(resp)
}).catch(err => {
return reject(err)
})
})
};
const setWifi = (
@ -494,31 +648,73 @@ export default function DeviceProvider(props: PropsWithChildren<Props>) {
if (keys && keys.length > 0 && types && types.length > 0) {
a = as ? a + "&keys=" + keys + "&types=" + types : "?keys=" + keys + "&types=" + types;
}
return put(pondURL("/devices/" + id + "/wifi" + a), { gateway, password });
return new Promise<AxiosResponse>((resolve, reject) => {
put(pondURL("/devices/" + id + "/wifi" + a), { gateway, password }).then(resp => {
return resolve(resp)
}).catch(err => {
return reject(err)
})
})
};
const tag = (id: number, tag: string) => {
return put(pondURL("/devices/" + id + "/tags/" + tag), {});
return new Promise<AxiosResponse>((resolve, reject) => {
put(pondURL("/devices/" + id + "/tags/" + tag), {}).then(resp => {
return resolve(resp)
}).catch(err => {
return reject(err)
})
})
};
const untag = (id: number, tag: string) => {
return del(pondURL("/devices/" + id + "/tags/" + tag));
return new Promise<AxiosResponse>((resolve, reject) => {
del(pondURL("/devices/" + id + "/tags/" + tag)).then(resp => {
return resolve(resp)
}).catch(err => {
return reject(err)
})
})
};
const getDatacap = (id: number) => {
return get(pondURL("/devices/" + id + "/datacap/"));
return new Promise<AxiosResponse>((resolve, reject) => {
get(pondURL("/devices/" + id + "/datacap/")).then(resp => {
return resolve(resp)
}).catch(err => {
return reject(err)
})
})
};
const isOverLimit = (id: number) => {
return get(pondURL("/devices/" + id + "/overlimit/"));
return new Promise<AxiosResponse>((resolve, reject) => {
get(pondURL("/devices/" + id + "/overlimit/")).then(resp => {
return resolve(resp)
}).catch(err => {
return reject(err)
})
})
};
const isPaused = (id: number) => {
return get(pondURL("/devices/" + id + "/paused/"));
return new Promise<AxiosResponse>((resolve, reject) => {
get(pondURL("/devices/" + id + "/paused/")).then(resp => {
return resolve(resp)
}).catch(err => {
return reject(err)
})
})
};
const setDatacap = (id: number, newCap: number) => {
return post(pondURL("/devices/" + id + "/datacap?limit=" + newCap));
return new Promise<AxiosResponse>((resolve, reject) => {
post(pondURL("/devices/" + id + "/datacap?limit=" + newCap)).then(resp => {
return resolve(resp)
}).catch(err => {
return reject(err)
})
})
};
const getDataUsage = (id: number, start?: any) => {
@ -527,7 +723,13 @@ export default function DeviceProvider(props: PropsWithChildren<Props>) {
} else {
start = "";
}
return get(pondURL("/devices/" + id + "/usage/" + start));
return new Promise<AxiosResponse>((resolve, reject) => {
get(pondURL("/devices/" + id + "/usage/" + start)).then(resp => {
return resolve(resp)
}).catch(err => {
return reject(err)
})
})
};
// const listJSONMeasurements = (
@ -591,26 +793,57 @@ export default function DeviceProvider(props: PropsWithChildren<Props>) {
// };
const listSimpleJSON = (device: number) => {
return get(pondURL("/devices/" + device + "/measurements/exportSimple"));
return new Promise<AxiosResponse>((resolve, reject) => {
get(pondURL("/devices/" + device + "/measurements/exportSimple")).then(resp => {
return resolve(resp)
}).catch(err => {
return reject(err)
})
})
};
const resetQuackCount = (id: number) => {
return post(pondURL("/devices/" + id + "/resetCounts"));
return new Promise<AxiosResponse>((resolve, reject) => {
post(pondURL("/devices/" + id + "/resetCounts")).then(resp => {
return resolve(resp)
}).catch(err => {
return reject(err)
})
})
};
const resetQuackCountTx = (id: number) => {
return post(pondURL("/devices/" + id + "/resetCountTx"));
return new Promise<AxiosResponse>((resolve, reject) => {
post(pondURL("/devices/" + id + "/resetCountTx")).then(resp => {
return resolve(resp)
}).catch(err => {
return reject(err)
})
})
};
const resetQuackCountTx1000 = (id: number) => {
return post(pondURL("/devices/" + id + "/partialResetCountTx"));
return new Promise<AxiosResponse>((resolve, reject) => {
post(pondURL("/devices/" + id + "/partialResetCountTx")).then(resp => {
return resolve(resp)
}).catch(err => {
return reject(err)
})
})
};
const linearMutation = (id: number, mutation: pond.LinearMutation) => {
return post<pond.DeviceLinearMutationResponse>(
pondURL("/devices/" + id + "/linearMutation"),
mutation
);
return new Promise<AxiosResponse<pond.DeviceLinearMutationResponse>>((resolve, reject) => {
post<pond.DeviceLinearMutationResponse>(
pondURL("/devices/" + id + "/linearMutation"),
mutation
).then(resp => {
resp.data = pond.DeviceLinearMutationResponse.fromObject(resp.data)
return resolve(resp)
}).catch(err => {
return reject(err)
})
})
};
const buyData = (
@ -625,7 +858,13 @@ export default function DeviceProvider(props: PropsWithChildren<Props>) {
if (source) url = url + "&source=" + source;
if (keys) url = url + "&keys=" + keys;
if (types) url = url + "&types=" + types;
return put(pondURL(url));
return new Promise<AxiosResponse>((resolve, reject) => {
put(pondURL(url)).then(resp => {
return resolve(resp)
}).catch(err => {
return reject(err)
})
})
};
return (