77from aiohttp .web_request import Request
88from aiohttp .web_response import Response
99
10- import commands as commands
10+ import commands
11+ from components .http_server .format_monitor_name import format_monitor_name
1112from components .monitors_loader import MonitorValidationError
1213from models import CodeModule , Monitor
1314
@@ -153,6 +154,16 @@ async def monitor_validate(request: Request) -> Response:
153154 return web .json_response (success_response )
154155
155156
157+ @monitor_routes .post (base_route + "/format_name/{monitor_name}" )
158+ @monitor_routes .post (base_route + "/format_name/{monitor_name}/" )
159+ async def format_name (request : Request ) -> Response :
160+ """Route to format a monitor name"""
161+ monitor_name = request .match_info ["monitor_name" ]
162+ return web .json_response (
163+ {"name" : monitor_name , "formatted_name" : format_monitor_name (monitor_name )}
164+ )
165+
166+
156167@monitor_routes .post (base_route + "/register/{monitor_name}" )
157168@monitor_routes .post (base_route + "/register/{monitor_name}/" )
158169async def monitor_register (request : Request ) -> Response :
@@ -169,8 +180,7 @@ async def monitor_register(request: Request) -> Response:
169180 error_response = {"status" : "error" , "message" : "'monitor_code' parameter is required" }
170181 return web .json_response (error_response , status = 400 )
171182
172- # Remove any dots from the monitor name
173- monitor_name = monitor_name .replace ("." , "_" )
183+ monitor_name = format_monitor_name (monitor_name )
174184
175185 try :
176186 monitor = await commands .monitor_register (monitor_name , monitor_code , additional_files )
0 commit comments