Files
homepage/src/widgets/vikunja/widget.js
2024-10-07 19:47:51 -04:00

35 lines
1021 B
JavaScript

import credentialedProxyHandler from "utils/proxy/handlers/credentialed";
import { jsonArrayFilter } from "utils/proxy/api-helpers";
const widget = {
api: `{url}/api/v1/{endpoint}`,
proxyHandler: credentialedProxyHandler,
mappings: {
projects: {
endpoint: "projects",
},
tasks: {
endpoint: "tasks/all",
params: ["filter", "sort_by"],
map: (data) => ({
tasks7d: jsonArrayFilter(
data,
(item) =>
new Date(item.due_date).valueOf() > 978307168000 &&
new Date(item.due_date).valueOf() <= new Date(Date.now() + 640800000).valueOf(),
).length,
inProgress: jsonArrayFilter(data, (item) => item.percent_done > 0 && item.percent_done < 1).length,
overdue: jsonArrayFilter(
data,
(item) =>
new Date(item.due_date).valueOf() > 978307168000 &&
new Date(item.due_date).valueOf() <= new Date(Date.now()),
).length,
}),
},
},
};
export default widget;