diff --git a/app/internal/db_handler.py b/app/internal/db_handler.py index d86cb0b..f89878e 100644 --- a/app/internal/db_handler.py +++ b/app/internal/db_handler.py @@ -179,7 +179,7 @@ async def example_mongo_usage(): channel_data = { "_id": "channel_3", # You can specify _id or let MongoDB generate one "name": "Emergency Services", - "frequency_khz": 453000, + "frequencies": 453000, "location": "Countywide", "avail_on_nodes": ["client-xyz987"], "description": "Monitor for emergency broadcasts." diff --git a/app/internal/types.py b/app/internal/types.py index bcdfa3a..e187335 100644 --- a/app/internal/types.py +++ b/app/internal/types.py @@ -96,7 +96,7 @@ class System: _id: str, _type: DemodTypes, name: str, - frequency_khz: List[str], + frequencies: List[str], location: str, avail_on_nodes: List[str], description: Optional[str] = "", @@ -109,7 +109,7 @@ class System: _id: A unique identifier for the entry (e.g., MongoDB ObjectId string). _type: The demodulation type (P25, NBFM, etc.). name: The name of the channel/system. - frequency_khz: The frequency in kilohertz. + frequencies: The frequency in kilohertz. location: The geographical location or coverage area. avail_on_nodes: A list of node identifiers where this is available. description: A brief description. @@ -117,7 +117,7 @@ class System: self._id: str = str(_id) self.type: DemodTypes = _type self.name: str = name - self.frequency_khz: List[int] = frequency_khz + self.frequencies: List[int] = frequencies self.location: str = location self.avail_on_nodes: List[str] = avail_on_nodes self.description: str = description or "" @@ -130,7 +130,7 @@ class System: """ # Use self.type.value for string representation of the enum return (f"System(_id='{self._id}', type='{self.type.value}', name='{self.name}', " - f"frequency_khz={self.frequency_khz}, location='{self.location}', " + f"frequencies={self.frequencies}, location='{self.location}', " f"avail_on_nodes={self.avail_on_nodes}, description='{self.description}'," f" tags='{self.tags}', whitelist='{self.whitelist}')") @@ -143,7 +143,7 @@ class System: "_id": self._id, "type": self.type.value, # Store the enum value (string) "name": self.name, - "frequency_khz": self.frequency_khz, + "frequencies": self.frequencies, "location": self.location, "avail_on_nodes": self.avail_on_nodes, "description": self.description, @@ -171,7 +171,7 @@ class System: _id=data.get("_id"), _type=system_type, name=data.get("name", ""), # Provide default empty string if name is missing - frequency_khz=data.get("frequency_khz", 0), # Provide default 0 if missing + frequencies=data.get("frequencies", 0), # Provide default 0 if missing location=data.get("location", ""), avail_on_nodes=data.get("avail_on_nodes", []), # Provide default empty list description=data.get("description", ""), diff --git a/app/routers/systems.py b/app/routers/systems.py index 9a3c51b..28278f3 100644 --- a/app/routers/systems.py +++ b/app/routers/systems.py @@ -28,11 +28,11 @@ async def create_system_route(): if name_search_result: abort(409, f"System with name '{request_data['name']}' already exists") - # Check if frequency_khz exists (optional, depending on requirements) - if 'frequency_khz' in request_data: - freq_search_result = await current_app.sys_db_h.find_system({"frequency_khz": request_data["frequency_khz"]}) + # Check if frequencies exists (optional, depending on requirements) + if 'frequencies' in request_data: + freq_search_result = await current_app.sys_db_h.find_system({"frequencies": request_data["frequencies"]}) if freq_search_result: - abort(409, f"System with frequency '{request_data['frequency_khz']}' already exists") + abort(409, f"System with frequency '{request_data['frequencies']}' already exists") created_system = await current_app.sys_db_h.create_system(request_data) @@ -262,8 +262,8 @@ async def dismiss_client_from_system_route(system_id: str): async def search_systems_route(): """ API endpoint to search for systems based on query parameters. - Allows searching by 'name', 'frequency_khz', or any other field present in the System model. - Example: /systems/search?name=MySystem&frequency_khz=1000 + Allows searching by 'name', 'frequencies', or any other field present in the System model. + Example: /systems/search?name=MySystem&frequencies=1000 """ print("\n--- Handling GET /systems/search ---") try: