From a0f2284efae17ea4134c5a4d9f02c4c8ed9db180 Mon Sep 17 00:00:00 2001 From: ewandor Date: Wed, 2 Apr 2025 23:53:31 +0200 Subject: [PATCH] Initializing hub database --- .gitignore | 1 + api/rpk-api/hub/__init__.py | 24 +++++++++++++++--------- api/rpk-api/main.py | 2 ++ 3 files changed, 18 insertions(+), 9 deletions(-) create mode 100644 .gitignore diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..4c49bd7 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +.env diff --git a/api/rpk-api/hub/__init__.py b/api/rpk-api/hub/__init__.py index 1ffa188..571b642 100644 --- a/api/rpk-api/hub/__init__.py +++ b/api/rpk-api/hub/__init__.py @@ -1,13 +1,19 @@ import os -import motor.motor_asyncio -from beanie import Document -from fastapi_users.db import BaseOAuthAccount, BeanieBaseUser, BeanieUserDatabase -from pydantic import Field +from beanie import init_beanie +from motor.motor_asyncio import AsyncIOMotorClient -DATABASE_URL = "mongodb://localhost:27017" -client = motor.motor_asyncio.AsyncIOMotorClient( - DATABASE_URL, uuidRepresentation="standard" -) -db = client["database_name"] +from hub.user import User +from hub.auth import AccessToken +MONGO_USERNAME = os.getenv("MONGO_INITDB_ROOT_USERNAME") +MONGO_PASSWORD = os.getenv("MONGO_INITDB_ROOT_PASSWORD") + +DATABASE_URL = f"mongodb://{MONGO_USERNAME}:{MONGO_PASSWORD}@mongo:27017" + +async def init_db(): + client = AsyncIOMotorClient(DATABASE_URL, uuidRepresentation="standard") + + await init_beanie(database=client.hub, + document_models=[User, AccessToken], + allow_index_dropping=True) diff --git a/api/rpk-api/main.py b/api/rpk-api/main.py index c51a636..5443e3c 100644 --- a/api/rpk-api/main.py +++ b/api/rpk-api/main.py @@ -2,6 +2,7 @@ from contextlib import asynccontextmanager from fastapi import FastAPI +from hub import init_db as hub_init_db from hub.auth import oauth_router if __name__ == '__main__': @@ -11,6 +12,7 @@ if __name__ == '__main__': @asynccontextmanager async def lifespan(app: FastAPI): + await hub_init_db() # create_db_and_tables() # create_admin_user() yield