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

View file

@ -16,8 +16,12 @@ from flask import Flask, request
RULE_PREFIX = "[auto]::" RULE_PREFIX = "[auto]::"
def create_rule(label, address, port): def create_rule(label, address, ports):
return asusrouter.modules.port_forwarding.PortForwardingRule(RULE_PREFIX + label, address, None, "BOTH", None, port)
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): def rule_to_string(rule: asusrouter.modules.port_forwarding.PortForwardingRule):