Compare commits

...

2 commits

Author SHA1 Message Date
Nick Guy
88baa30d04 Add logging for missing "object" key in transform method
Introduce logging to handle cases where the "object" key is missing from the input data. This helps with debugging by printing the data in JSON format before returning it unchanged.
2025-06-17 17:56:15 +01:00
Nick Guy
4a82ab0b06 Modify create_rule to support multiple ports as a list.
Updated the `create_rule` function to handle a list of ports by joining them into a comma-separated string. This enhances flexibility, allowing both single port and multiple port configurations for port forwarding rules.
2025-06-17 17:56:03 +01:00
2 changed files with 12 additions and 2 deletions

View file

@ -1,3 +1,5 @@
import json
from api import Api, ApiAuthType
from typing import Tuple
@ -18,6 +20,10 @@ class PelicanApi(Api):
}
def transform(self, data):
if "object" not in data:
print("No object in data")
print(json.dumps(data))
return data
type = data["object"]
if type == "list":
return [self.transform(x) for x in data["data"]]

View file

@ -16,8 +16,12 @@ from flask import Flask, request
RULE_PREFIX = "[auto]::"
def create_rule(label, address, port):
return asusrouter.modules.port_forwarding.PortForwardingRule(RULE_PREFIX + label, address, None, "BOTH", None, port)
def create_rule(label, address, ports):
if isinstance(ports, list):
ports = ",".join(ports)
return asusrouter.modules.port_forwarding.PortForwardingRule(RULE_PREFIX + label, address, None, "BOTH", None, ports)
def rule_to_string(rule: asusrouter.modules.port_forwarding.PortForwardingRule):