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
« prev ^ index » next coverage.py v7.8.0, created at 2025-04-02 03:03 +0000
1from dataclasses import dataclass
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)
17@dataclass(frozen=True, kw_only=True)
18class LedgerSelected:
19 """Selected ledger for operations."""
21 base_url: str
22 ledger: str
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 )
30 def transaction(self) -> TransactionBuilder:
31 """Execute ledger transactions."""
32 return TransactionBuilderImpl(
33 endpoint=f"{self.base_url}/fluree/transact", ledger=self.ledger
34 )
36 def query(self) -> QueryBuilder:
37 """Query the ledger."""
38 return QueryBuilderImpl(
39 endpoint=f"{self.base_url}/fluree/query", ledger=self.ledger
40 )
42 def history(self) -> HistoryBuilder:
43 """Query ledger history."""
44 return HistoryBuilderImpl(
45 endpoint=f"{self.base_url}/fluree/history", ledger=self.ledger
46 )