src.main

Main application entry point for the EC Issuer.

 1#!/usr/bin/env python3
 2"""Main application entry point for the EC Issuer."""
 3
 4from src.access_control.hardcoded_adapter import HardcodedAccessControlAdapter
 5from src.api.api_port import ApiPort
 6from src.api.http_adapter import HttpApiAdapter
 7from src.config.config import EnvConfigRepo
 8from src.config.config_port import ConfigRepoPort
 9from src.credentials.credential_service import CredentialService
10from src.issuer_agent.ssi_agent_adapter import SsiAgentAdapter
11from src.metadata.metadata_service import MetadataService
12from src.metadata.postgresql_adapter import PostgreSQLMetadataRepository
13from src.offers.offer_service import OfferService
14from src.offers.postgresql_offers_repository_adapter import (
15    PostgreSQLOffersRepositoryAdapter,
16)
17from src.offers.ssi_agent_offers_client_adapter import SsiAgentOffersClientAdapter
18
19
20class App:
21    """Main application entry point."""
22
23    config: ConfigRepoPort
24    _api_port: ApiPort
25
26    def __init__(self):
27        """Initialise and wire all application dependencies."""
28        self.config = EnvConfigRepo()
29
30        metadata_repository = PostgreSQLMetadataRepository(
31            self.config.postgresql_connection_string
32        )
33        metadata_service = MetadataService(
34            metadata_repository=metadata_repository, public_url=self.config.public_url
35        )
36
37        access_control = HardcodedAccessControlAdapter()
38
39        offers_client = SsiAgentOffersClientAdapter(
40            ssi_agent_url=self.config.ssi_agent_url
41        )
42        offers_repository = PostgreSQLOffersRepositoryAdapter(
43            self.config.postgresql_connection_string
44        )
45        offer_service = OfferService(
46            access_control=access_control,
47            offers_client=offers_client,
48            offers_repository=offers_repository,
49        )
50
51        credential_service = CredentialService(
52            issuer_agent=SsiAgentAdapter(config=self.config)
53        )
54
55        self._api_port = HttpApiAdapter(
56            config=self.config,
57            metadata_service=metadata_service,
58            offer_service=offer_service,
59            credential_service=credential_service,
60        )
61
62    def run(self):
63        self._api_port.run()
64
65
66if __name__ == "__main__":
67    app = App()
68    app.run()
class App:
21class App:
22    """Main application entry point."""
23
24    config: ConfigRepoPort
25    _api_port: ApiPort
26
27    def __init__(self):
28        """Initialise and wire all application dependencies."""
29        self.config = EnvConfigRepo()
30
31        metadata_repository = PostgreSQLMetadataRepository(
32            self.config.postgresql_connection_string
33        )
34        metadata_service = MetadataService(
35            metadata_repository=metadata_repository, public_url=self.config.public_url
36        )
37
38        access_control = HardcodedAccessControlAdapter()
39
40        offers_client = SsiAgentOffersClientAdapter(
41            ssi_agent_url=self.config.ssi_agent_url
42        )
43        offers_repository = PostgreSQLOffersRepositoryAdapter(
44            self.config.postgresql_connection_string
45        )
46        offer_service = OfferService(
47            access_control=access_control,
48            offers_client=offers_client,
49            offers_repository=offers_repository,
50        )
51
52        credential_service = CredentialService(
53            issuer_agent=SsiAgentAdapter(config=self.config)
54        )
55
56        self._api_port = HttpApiAdapter(
57            config=self.config,
58            metadata_service=metadata_service,
59            offer_service=offer_service,
60            credential_service=credential_service,
61        )
62
63    def run(self):
64        self._api_port.run()

Main application entry point.

App()
27    def __init__(self):
28        """Initialise and wire all application dependencies."""
29        self.config = EnvConfigRepo()
30
31        metadata_repository = PostgreSQLMetadataRepository(
32            self.config.postgresql_connection_string
33        )
34        metadata_service = MetadataService(
35            metadata_repository=metadata_repository, public_url=self.config.public_url
36        )
37
38        access_control = HardcodedAccessControlAdapter()
39
40        offers_client = SsiAgentOffersClientAdapter(
41            ssi_agent_url=self.config.ssi_agent_url
42        )
43        offers_repository = PostgreSQLOffersRepositoryAdapter(
44            self.config.postgresql_connection_string
45        )
46        offer_service = OfferService(
47            access_control=access_control,
48            offers_client=offers_client,
49            offers_repository=offers_repository,
50        )
51
52        credential_service = CredentialService(
53            issuer_agent=SsiAgentAdapter(config=self.config)
54        )
55
56        self._api_port = HttpApiAdapter(
57            config=self.config,
58            metadata_service=metadata_service,
59            offer_service=offer_service,
60            credential_service=credential_service,
61        )

Initialise and wire all application dependencies.

def run(self):
63    def run(self):
64        self._api_port.run()