2021-03-21 11:51:58 +00:00
|
|
|
import { fetchURL, fetchJSON, removePrefix } from "./utils";
|
2019-01-05 16:12:09 +00:00
|
|
|
|
2020-12-24 18:02:28 +00:00
|
|
|
export async function list() {
|
2021-03-21 11:51:58 +00:00
|
|
|
return fetchJSON("/api/shares");
|
2020-12-24 18:02:28 +00:00
|
|
|
}
|
|
|
|
|
2019-01-05 16:12:09 +00:00
|
|
|
export async function get(url) {
|
2021-03-21 11:51:58 +00:00
|
|
|
url = removePrefix(url);
|
|
|
|
return fetchJSON(`/api/share${url}`);
|
2019-01-05 16:12:09 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
export async function remove(hash) {
|
|
|
|
const res = await fetchURL(`/api/share/${hash}`, {
|
2021-03-21 11:51:58 +00:00
|
|
|
method: "DELETE",
|
|
|
|
});
|
2019-01-05 16:12:09 +00:00
|
|
|
|
|
|
|
if (res.status !== 200) {
|
2021-03-21 11:51:58 +00:00
|
|
|
throw new Error(res.status);
|
2019-01-05 16:12:09 +00:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2021-03-21 11:51:58 +00:00
|
|
|
export async function create(url, password = "", expires = "", unit = "hours") {
|
|
|
|
url = removePrefix(url);
|
|
|
|
url = `/api/share${url}`;
|
|
|
|
if (expires !== "") {
|
|
|
|
url += `?expires=${expires}&unit=${unit}`;
|
2019-01-05 16:12:09 +00:00
|
|
|
}
|
2021-03-21 11:51:58 +00:00
|
|
|
let body = "{}";
|
|
|
|
if (password != "" || expires !== "" || unit !== "hours") {
|
|
|
|
body = JSON.stringify({ password: password, expires: expires, unit: unit });
|
2021-03-02 11:00:18 +00:00
|
|
|
}
|
2019-01-05 16:12:09 +00:00
|
|
|
return fetchJSON(url, {
|
2021-03-21 11:51:58 +00:00
|
|
|
method: "POST",
|
2021-03-02 11:00:18 +00:00
|
|
|
body: body,
|
2021-03-21 11:51:58 +00:00
|
|
|
});
|
2019-01-05 16:12:09 +00:00
|
|
|
}
|