Browse Source

extra data

main
gsd 4 months ago
parent
commit
2e19c7b281
  1. 12
      webExtensions/extra/NodeDTO.py
  2. 16
      webExtensions/nodeList.py

12
webExtensions/extra/NodeDTO.py

@ -1,10 +1,18 @@
__slots__ = ["num", "snr", "hops_away", "ts", "long_name", "short_name"]
__slots__ = ["num", "snr", "hops_away", "ts", "long_name", "short_name", "is_unmessagable"]
class NodeDTO:
def __init__(self, data):
def __init__(self, data, grabPosition = False, grabMetrics = False):
for slot in __slots__:
setattr(self, slot, data.get(slot, None))
self.havePosition = True if data.get("position", {}) else False
if grabPosition and data.get("position", {}):
setattr(self, "position", data.get("position"))
self.haveMetrics = True if data.get("device_metrics", {}) else False
if grabMetrics and data.get("device_metrics", {}):
setattr(self, "device_metrics", data.get("device_metrics"))
class NodeShortDTO:
def __init__(self, data):
for slot in ["num", "long_name", "short_name"]:

16
webExtensions/nodeList.py

@ -17,15 +17,15 @@ class WebExtension:
@self.app.get(f"{self.core.context}/nodes/list")
@self.core.authManager.authRequest()
async def listOfNodes(request: Request):
async def listOfNodes(request: Request, p: bool = Query(False), m:bool = Query(False)):
l = await self.dbService.listOfNodes()
return [NodeDTO(node) for node in l]
return [NodeDTO(node, p, m) for node in l]
@self.app.get(f"{self.core.context}/nodes/direct")
@self.core.authManager.authRequest()
async def listOfDirectNodes(request: Request):
async def listOfDirectNodes(request: Request, p: bool = Query(False), m:bool = Query(False)):
l = await self.dbService.listOfDirectNodes()
return [NodeDTO(node) for node in l]
return [NodeDTO(node, p, m) for node in l]
@self.app.get(self.core.context + "/nodes/search")
async def listOfFindLikeName(name=str):
@ -34,18 +34,18 @@ class WebExtension:
@self.app.get(self.core.context + "/nodes/{num}")
@self.core.authManager.authRequest()
async def oneNode(request: Request, num: int):
async def oneNode(request: Request, num: int, p: bool = Query(False), m:bool = Query(False)):
c = await self.dbService.oneNode(num)
if c:
return NodeDTO(c)
return NodeDTO(c, p, m)
else:
raise HTMLResponse(status_code=404)
@self.app.get(self.core.context + "/nodes")
@self.core.authManager.authRequest()
async def listOfSelectedNodes(request: Request, nums: List[int] = Query(None)):
async def listOfSelectedNodes(request: Request, nums: List[int] = Query(None), p: bool = Query(False), m:bool = Query(False)):
if type(nums) != list:
nums = [nums]
l = await self.dbService.listOfSelectedNodes(nums)
return [NodeDTO(node) for node in l]
return [NodeDTO(node, p, m) for node in l]
Loading…
Cancel
Save