Files
cpl/tests/custom/api/src/main.py
edraft b9ac11e15f
All checks were successful
Test before pr merge / test-lint (pull_request) Successful in 5s
Added structured and wrapped logger #187
2025-09-22 23:24:46 +02:00

39 lines
1.2 KiB
Python

from starlette.responses import JSONResponse
from cpl import api
from cpl.api.application.web_app import WebApp
from cpl.application import ApplicationBuilder
from cpl.auth.permission.permissions import Permissions
from cpl.core.configuration import Configuration
from cpl.core.environment import Environment
from service import PingService
def main():
builder = ApplicationBuilder[WebApp](WebApp)
Configuration.add_json_file(f"appsettings.json")
Configuration.add_json_file(f"appsettings.{Environment.get_environment()}.json")
Configuration.add_json_file(f"appsettings.{Environment.get_host_name()}.json", optional=True)
builder.services.add_structured_logging()
builder.services.add_wrapped_logging()
builder.services.add_transient(PingService)
builder.services.add_module(api)
app = builder.build()
app.with_logging()
app.with_database()
app.with_authentication()
app.with_authorization()
app.with_route(path="/route1", fn=lambda r: JSONResponse("route1"), method="GET", authentication=True, permissions=[Permissions.administrator])
app.with_routes_directory("routes")
app.run()
if __name__ == "__main__":
main()