Coverage for src/fluree_py/http/ledger.py: 100%

15 statements  

« prev     ^ index     » next       coverage.py v7.8.0, created at 2025-04-02 03:03 +0000

1from dataclasses import dataclass 

2 

3from fluree_py.http.endpoint import ( 

4 CreateBuilderImpl, 

5 HistoryBuilderImpl, 

6 QueryBuilderImpl, 

7 TransactionBuilderImpl, 

8) 

9from fluree_py.http.protocol import ( 

10 CreateBuilder, 

11 HistoryBuilder, 

12 QueryBuilder, 

13 TransactionBuilder, 

14) 

15 

16 

17@dataclass(frozen=True, kw_only=True) 

18class LedgerSelected: 

19 """Selected ledger for operations.""" 

20 

21 base_url: str 

22 ledger: str 

23 

24 def create(self) -> CreateBuilder: 

25 """Create a new ledger.""" 

26 return CreateBuilderImpl( 

27 endpoint=f"{self.base_url}/fluree/create", ledger=self.ledger 

28 ) 

29 

30 def transaction(self) -> TransactionBuilder: 

31 """Execute ledger transactions.""" 

32 return TransactionBuilderImpl( 

33 endpoint=f"{self.base_url}/fluree/transact", ledger=self.ledger 

34 ) 

35 

36 def query(self) -> QueryBuilder: 

37 """Query the ledger.""" 

38 return QueryBuilderImpl( 

39 endpoint=f"{self.base_url}/fluree/query", ledger=self.ledger 

40 ) 

41 

42 def history(self) -> HistoryBuilder: 

43 """Query ledger history.""" 

44 return HistoryBuilderImpl( 

45 endpoint=f"{self.base_url}/fluree/history", ledger=self.ledger 

46 )