Coverage for api/database/entity.py: 50%

12 statements  

« prev     ^ index     » next       coverage.py v7.6.2, created at 2024-10-10 03:02 +0300

1from typing import Any, Callable, TypeVar 

2 

3from dbcc import MongoTableEngine 

4from utils.helper import get_hash 

5 

6 

7async def update_etag(data: dict[str, Any], col: MongoTableEngine): 

8 etag = get_hash(data) 

9 await col.collection.update_one( 

10 {"id": data["id"]}, {"$set": {"etag": etag}} 

11 ) 

12 data["etag"] = etag 

13 

14 

15B = TypeVar("B") 

16 

17 

18async def update_etag_and_text_search( 

19 data: dict[str, Any], 

20 col: MongoTableEngine, 

21 data_type: type[B], 

22 getter: Callable[[B], str], 

23): 

24 etag = get_hash(data) 

25 await col.collection.update_one( 

26 {"id": data["id"]}, 

27 {"$set": {"etag": etag, "text_search": getter(data_type(**data))}}, 

28 ) 

29 data["etag"] = etag