- add example of select filters

This commit is contained in:
marys
2025-05-27 12:40:07 +02:00
parent 61cbc536b6
commit 9f995f090b
2 changed files with 22 additions and 21 deletions

10
main.py
View File

@@ -23,7 +23,17 @@ async def main():
# #
mtr_additional_query = MtrAdditionalNodeQuery() mtr_additional_query = MtrAdditionalNodeQuery()
all_nodes = await mtr_additional_query.get_all_nodes() all_nodes = await mtr_additional_query.get_all_nodes()
print("==== get_all_nodes ====")
[print(i.as_dict()) for i in all_nodes] [print(i.as_dict()) for i in all_nodes]
get_all_nodes_for_testing = await mtr_additional_query.get_all_nodes_for_testing()
print("==== get_all_nodes_for_testing ====")
[print(i.as_dict()) for i in get_all_nodes_for_testing]
get_node_by_id = await mtr_additional_query.get_node_by_id(21)
print("==== get_all_nodes_for_testing ====")
print(get_node_by_id.as_dict())
if __name__ == "__main__": if __name__ == "__main__":
loop = asyncio.run(main()) loop = asyncio.run(main())

View File

@@ -14,31 +14,22 @@ class MtrAdditionalNodeQuery:
Retrieve all entries from the mtr_network_nodes database table. Retrieve all entries from the mtr_network_nodes database table.
""" """
async with self.db() as session: async with self.db() as session:
result = await session.execute(select(MtrAdditionalNodesModel)) return (await session.execute(select(MtrAdditionalNodesModel))).scalars().all()
all_nodes = result.scalars().all()
#await session.close()
return all_nodes
def get_all_nodes_for_testing(self) -> list:
async def get_all_nodes_for_testing(self) -> list:
""" """
Retrieve all entries from the mtr_network_nodes database table, exclude rows used for storing parameters for Retrieve all entries from the mtr_network_nodes database table, exclude rows used for storing parameters for
testing TAS servers. testing TAS servers.
""" """
all_nodes = (self.db.query(MtrAdditionalNodesModel) async with (self.db() as session):
.filter(MtrAdditionalNodesModel.test_servers == False) stmt = select(MtrAdditionalNodesModel) \
.filter(MtrAdditionalNodesModel.enabled == True) .where(MtrAdditionalNodesModel.test_servers == False) \
.all()) .where(MtrAdditionalNodesModel.enabled == True)
return (await session.execute(stmt)).scalars().all()
return all_nodes async def get_node_by_id(self, node_id: int) -> MtrAdditionalNodesModel:
async with self.db() as session:
def get_mtr_config_for_servers(self) -> list: stmt = select(MtrAdditionalNodesModel).where(MtrAdditionalNodesModel.id == node_id)
all_nodes = (self.db.query(MtrAdditionalNodesModel) return (await session.execute(stmt)).scalars().first()
.filter(MtrAdditionalNodesModel.test_servers == True)
.filter(MtrAdditionalNodesModel.enabled == True)
.all())
return all_nodes
def get_node_by_id(self, node_id: int) -> MtrAdditionalNodesModel:
return self.db.query(MtrAdditionalNodesModel).filter_by(id=node_id).one()