feat: update n8n webhook handling
All checks were successful
Validate PR Title / validate (pull_request) Successful in 4s
CI / ci (pull_request) Successful in 1m9s

This commit is contained in:
Luke Tainton
2025-08-04 08:54:14 +01:00
parent c234cb043d
commit 1052b47625
13 changed files with 20 additions and 10 deletions

View File

@@ -5,5 +5,6 @@ APPROVED_DOMAINS="example.com,hello.com"
APPROVED_ROOMS="abc123,def456" APPROVED_ROOMS="abc123,def456"
APPROVED_USERS="bob@example.com,john@me.com" APPROVED_USERS="bob@example.com,john@me.com"
BOT_NAME="" BOT_NAME=""
N8N_WEBHOOK_URL="" N8N_GET_WEBHOOK_URL=""
N8N_POST_WEBHOOK_URL=""
WEBEX_API_KEY="" WEBEX_API_KEY=""

View File

@@ -42,9 +42,14 @@ class Config:
return os.environ["ADMIN_EMAIL"].split(",") return os.environ["ADMIN_EMAIL"].split(",")
@property @property
def n8n_webhook_url(self) -> str: def n8n_get_webhook_url(self) -> str:
"""Returns the n8n webhook URL.""" """Returns the n8n GET webhook URL."""
return os.environ["N8N_WEBHOOK_URL"] return os.environ["N8N_GET_WEBHOOK_URL"]
@property
def n8n_post_webhook_url(self) -> str:
"""Returns the n8n POST webhook URL."""
return os.environ["N8N_POST_WEBHOOK_URL"]
@property @property
def approved_users(self) -> list: def approved_users(self) -> list:

View File

@@ -16,7 +16,7 @@ def __n8n_post(data: dict) -> bool:
""" """
headers: dict = {"Content-Type": "application/json"} headers: dict = {"Content-Type": "application/json"}
resp: requests.Response = requests.post( resp: requests.Response = requests.post(
url=config.n8n_webhook_url, url=config.n8n_post_webhook_url,
headers=headers, headers=headers,
json=data, json=data,
timeout=10, timeout=10,
@@ -58,7 +58,7 @@ def get_tasks(requestor) -> bool:
""" """
headers: dict = {"Content-Type": "application/json"} headers: dict = {"Content-Type": "application/json"}
resp: requests.Response = requests.get( resp: requests.Response = requests.get(
url=config.n8n_webhook_url, url=config.n8n_get_webhook_url,
headers=headers, headers=headers,
timeout=10, timeout=10,
verify=True, verify=True,

View File

@@ -16,7 +16,8 @@ def test_config() -> None:
"WEBEX_API_KEY": "testing", "WEBEX_API_KEY": "testing",
"ADMIN_FIRST_NAME": "Test", "ADMIN_FIRST_NAME": "Test",
"ADMIN_EMAIL": "test@test.com", "ADMIN_EMAIL": "test@test.com",
"N8N_WEBHOOK_URL": "https://n8n.test.com/webhook/abcdefg", "N8N_GET_WEBHOOK_URL": "https://n8n.test.com/webhook/abc",
"N8N_POST_WEBHOOK_URL": "https://n8n.test.com/webhook/def",
"APPROVED_USERS": "test@test.com", "APPROVED_USERS": "test@test.com",
"APPROVED_DOMAINS": "test.com", "APPROVED_DOMAINS": "test.com",
"APPROVED_ROOMS": "test", "APPROVED_ROOMS": "test",
@@ -34,7 +35,8 @@ def test_config() -> None:
assert config.approved_rooms == config_vars["APPROVED_ROOMS"].split(",") assert config.approved_rooms == config_vars["APPROVED_ROOMS"].split(",")
assert config.approved_users == config_vars["APPROVED_USERS"].split(",") assert config.approved_users == config_vars["APPROVED_USERS"].split(",")
assert config.bot_name == config_vars["BOT_NAME"] assert config.bot_name == config_vars["BOT_NAME"]
assert config.n8n_webhook_url == config_vars["N8N_WEBHOOK_URL"] assert config.n8n_get_webhook_url == config_vars["N8N_GET_WEBHOOK_URL"]
assert config.n8n_post_webhook_url == config_vars["N8N_POST_WEBHOOK_URL"]
assert config.version == config_vars["APP_VERSION"] assert config.version == config_vars["APP_VERSION"]
assert config.webex_token == config_vars["WEBEX_API_KEY"] assert config.webex_token == config_vars["WEBEX_API_KEY"]

View File

@@ -16,7 +16,8 @@ def test_config_no_admin_vars() -> None:
"WEBEX_API_KEY": "testing", "WEBEX_API_KEY": "testing",
"ADMIN_FIRST_NAME": "Test", "ADMIN_FIRST_NAME": "Test",
"ADMIN_EMAIL": "test@test.com", "ADMIN_EMAIL": "test@test.com",
"N8N_WEBHOOK_URL": "https://n8n.test.com/webhook/abcdefg", "N8N_GET_WEBHOOK_URL": "https://n8n.test.com/webhook/abc",
"N8N_POST_WEBHOOK_URL": "https://n8n.test.com/webhook/def",
} }
for config_var, value in config_vars.items(): for config_var, value in config_vars.items():
@@ -31,7 +32,8 @@ def test_config_no_admin_vars() -> None:
assert config.admin_emails == config_vars["ADMIN_EMAIL"].split(",") assert config.admin_emails == config_vars["ADMIN_EMAIL"].split(",")
assert config.admin_first_name == config_vars["ADMIN_FIRST_NAME"] assert config.admin_first_name == config_vars["ADMIN_FIRST_NAME"]
assert config.bot_name == config_vars["BOT_NAME"] assert config.bot_name == config_vars["BOT_NAME"]
assert config.n8n_webhook_url == config_vars["N8N_WEBHOOK_URL"] assert config.n8n_get_webhook_url == config_vars["N8N_GET_WEBHOOK_URL"]
assert config.n8n_post_webhook_url == config_vars["N8N_POST_WEBHOOK_URL"]
assert config.version == config_vars["APP_VERSION"] assert config.version == config_vars["APP_VERSION"]
assert config.webex_token == config_vars["WEBEX_API_KEY"] assert config.webex_token == config_vars["WEBEX_API_KEY"]