109 lines
3 KiB
JavaScript
109 lines
3 KiB
JavaScript
|
import {
|
||
|
JSONParse as json_parse,
|
||
|
JSONStringify as json_stringify,
|
||
|
} from "https://unpkg.com/json-with-bigint@3.4.4/json-with-bigint.js";
|
||
|
|
||
|
export default function tetratto(tetratto_host, api_key) {
|
||
|
function api_promise(res) {
|
||
|
return new Promise((resolve, reject) => {
|
||
|
if (res.ok) {
|
||
|
resolve(res.payload);
|
||
|
} else {
|
||
|
reject(res.message);
|
||
|
}
|
||
|
});
|
||
|
}
|
||
|
|
||
|
async function app() {
|
||
|
return api_promise(
|
||
|
json_parse(
|
||
|
await (
|
||
|
await fetch(`${tetratto_host}/api/v1/app_data/app`, {
|
||
|
method: "GET",
|
||
|
headers: {
|
||
|
"Atto-Secret-Key": api_key,
|
||
|
},
|
||
|
})
|
||
|
).text(),
|
||
|
),
|
||
|
);
|
||
|
}
|
||
|
|
||
|
async function query(body) {
|
||
|
return api_promise(
|
||
|
json_parse(
|
||
|
await (
|
||
|
await fetch(`${tetratto_host}/api/v1/app_data/query`, {
|
||
|
method: "POST",
|
||
|
headers: {
|
||
|
"Content-Type": "application/json",
|
||
|
"Atto-Secret-Key": api_key,
|
||
|
},
|
||
|
body: json_stringify(body),
|
||
|
})
|
||
|
).text(),
|
||
|
),
|
||
|
);
|
||
|
}
|
||
|
|
||
|
async function insert(key, value) {
|
||
|
return api_promise(
|
||
|
json_parse(
|
||
|
await (
|
||
|
await fetch(`${tetratto_host}/api/v1/app_data`, {
|
||
|
method: "POST",
|
||
|
headers: {
|
||
|
"Content-Type": "application/json",
|
||
|
"Atto-Secret-Key": api_key,
|
||
|
},
|
||
|
body: json_stringify({
|
||
|
key,
|
||
|
value,
|
||
|
}),
|
||
|
})
|
||
|
).text(),
|
||
|
),
|
||
|
);
|
||
|
}
|
||
|
|
||
|
async function remove(id) {
|
||
|
return api_promise(
|
||
|
json_parse(
|
||
|
await (
|
||
|
await fetch(`${tetratto_host}/api/v1/app_data/${id}`, {
|
||
|
method: "DELETE",
|
||
|
headers: {
|
||
|
"Atto-Secret-Key": api_key,
|
||
|
},
|
||
|
})
|
||
|
).text(),
|
||
|
),
|
||
|
);
|
||
|
}
|
||
|
|
||
|
async function remove_query(body) {
|
||
|
return api_promise(
|
||
|
json_parse(
|
||
|
await (
|
||
|
await fetch(`${tetratto_host}/api/v1/app_data/query`, {
|
||
|
method: "DELETE",
|
||
|
headers: {
|
||
|
"Content-Type": "application/json",
|
||
|
"Atto-Secret-Key": api_key,
|
||
|
},
|
||
|
body: json_stringify(body),
|
||
|
})
|
||
|
).text(),
|
||
|
),
|
||
|
);
|
||
|
}
|
||
|
|
||
|
return {
|
||
|
app,
|
||
|
query,
|
||
|
insert,
|
||
|
remove,
|
||
|
remove_query,
|
||
|
};
|
||
|
}
|