mirror of
https://github.com/gethomepage/homepage.git
synced 2025-12-07 09:35:54 -08:00
Enhancement: multiple widgets per service (#4338)
This commit is contained in:
@@ -12,6 +12,7 @@ export function getURLSearchParams(widget, endpoint) {
|
||||
const params = new URLSearchParams({
|
||||
group: widget.service_group,
|
||||
service: widget.service_name,
|
||||
index: widget.index,
|
||||
});
|
||||
if (endpoint) {
|
||||
params.append("endpoint", endpoint);
|
||||
|
||||
@@ -9,10 +9,10 @@ import widgets from "widgets/widgets";
|
||||
const logger = createLogger("credentialedProxyHandler");
|
||||
|
||||
export default async function credentialedProxyHandler(req, res, map) {
|
||||
const { group, service, endpoint } = req.query;
|
||||
const { group, service, endpoint, index } = req.query;
|
||||
|
||||
if (group && service) {
|
||||
const widget = await getServiceWidget(group, service);
|
||||
const widget = await getServiceWidget(group, service, index);
|
||||
|
||||
if (!widgets?.[widget.type]?.api) {
|
||||
return res.status(403).json({ error: "Service does not support API calls" });
|
||||
|
||||
@@ -8,10 +8,10 @@ import widgets from "widgets/widgets";
|
||||
const logger = createLogger("genericProxyHandler");
|
||||
|
||||
export default async function genericProxyHandler(req, res, map) {
|
||||
const { group, service, endpoint } = req.query;
|
||||
const { group, service, endpoint, index } = req.query;
|
||||
|
||||
if (group && service) {
|
||||
const widget = await getServiceWidget(group, service);
|
||||
const widget = await getServiceWidget(group, service, index);
|
||||
|
||||
if (!widgets?.[widget.type]?.api) {
|
||||
return res.status(403).json({ error: "Service does not support API calls" });
|
||||
|
||||
@@ -65,10 +65,10 @@ export async function sendJsonRpcRequest(url, method, params, widget) {
|
||||
}
|
||||
|
||||
export default async function jsonrpcProxyHandler(req, res) {
|
||||
const { group, service, endpoint: method } = req.query;
|
||||
const { group, service, endpoint: method, index } = req.query;
|
||||
|
||||
if (group && service) {
|
||||
const widget = await getServiceWidget(group, service);
|
||||
const widget = await getServiceWidget(group, service, index);
|
||||
const api = widgets?.[widget.type]?.api;
|
||||
|
||||
const [, mapping] = Object.entries(widgets?.[widget.type]?.mappings).find(([, value]) => value.endpoint === method);
|
||||
|
||||
@@ -131,13 +131,13 @@ function toError(url, synologyError) {
|
||||
}
|
||||
|
||||
export default async function synologyProxyHandler(req, res) {
|
||||
const { group, service, endpoint } = req.query;
|
||||
const { group, service, endpoint, index } = req.query;
|
||||
|
||||
if (!group || !service) {
|
||||
return res.status(400).json({ error: "Invalid proxy service type" });
|
||||
}
|
||||
|
||||
const serviceWidget = await getServiceWidget(group, service);
|
||||
const serviceWidget = await getServiceWidget(group, service, index);
|
||||
const widget = widgets?.[serviceWidget.type];
|
||||
const mapping = widget?.mappings?.[endpoint];
|
||||
if (!widget.api || !mapping) {
|
||||
|
||||
Reference in New Issue
Block a user