This commit is contained in:
dongli 2025-05-18 23:09:39 -07:00
parent bcf13b48f2
commit 43ec8ec01e
7 changed files with 11 additions and 58 deletions

View File

@ -1,6 +0,0 @@
from app.common.daos.hello_world.hello_world_dao import HelloWorldDao
hello_world_dao = HelloWorldDao()
def get_hello_world_dao() -> HelloWorldDao:
return hello_world_dao

View File

@ -1,30 +0,0 @@
from app.common.models.hello_world.hello_world import HelloWorld
class HelloWorldDao:
def __init__(self):
pass
async def create_hello_world(self, message: str, count: int):
hello_world = HelloWorld(message=message, count=count)
await hello_world.insert()
return hello_world
async def get_hello_world(self, id: str):
hello_world = await HelloWorld.get(id)
return hello_world
async def update_hello_world(self, id: str, message: str, count: int):
hello_world = await HelloWorld.get(id)
if hello_world:
hello_world.message = message
hello_world.count = count
await hello_world.save()
return hello_world
return None
async def delete_hello_world(self, id: str):
hello_world = await HelloWorld.get(id)
if hello_world:
await hello_world.delete()
return True
return False

View File

@ -1,5 +1,4 @@
from app.common.models.hello_world.hello_world import HelloWorld
from app.common.models.deployment.deployment import Deployment from app.common.models.deployment.deployment import Deployment
# list of beanie document models # list of beanie document models
db_models = [HelloWorld, Deployment] db_models = [Deployment]

View File

@ -2,12 +2,18 @@ from datetime import datetime
from typing import Literal from typing import Literal
from beanie import Document from beanie import Document
from pydantic import Field from bson import ObjectId
from pydantic import Field, field_validator
from pydantic import BaseModel from pydantic import BaseModel
class Deployment(Document): class Deployment(Document):
deployment_id: str = Field(alias="_id") deployment_id: str = Field(alias="_id")
@field_validator("deployment_id", mode="before")
@classmethod
def convert_object_id(cls, v):
return str(v)
deployment_stage: str deployment_stage: str
deployment_status: Literal["started", "failed", "succeeded", "aborted"] deployment_status: Literal["started", "failed", "succeeded", "aborted"]
@ -31,7 +37,9 @@ class Deployment(Document):
indexes = [ indexes = [
[("deployment_product_id", 1), ("created_at", 1)], # Compound index [("deployment_product_id", 1), ("created_at", 1)], # Compound index
[("deployment_id", 1), ("deployment_status", 1)], # Compound index [("deployment_id", 1), ("deployment_status", 1)], # Compound index
{"keys": [("deployment_id", 1), ("deployment_stage", 1)], "unique": True} # Unique compound index
# somehow combo + unique errors out
# {"keys": [("deployment_id", 1), ("deployment_stage", 1)], "unique": True} # Unique compound index
] ]
class InitDeploymentRequest(BaseModel): class InitDeploymentRequest(BaseModel):

View File

@ -1,17 +0,0 @@
from datetime import datetime
from beanie import Document
class HelloWorld(Document):
message: str
count: int = 0
created_time: datetime = datetime.now()
class Settings:
name = "hello_world"
indexes = [
[("message", 1), ("count", 1)]
]

View File

@ -4,7 +4,6 @@ from typing import List
from fastapi import APIRouter, Depends from fastapi import APIRouter, Depends
from loguru import logger from loguru import logger
from app.common.daos.hello_world import get_hello_world_dao, HelloWorldDao
from app.common.models.deployment.deployment import Deployment, InitDeploymentRequest from app.common.models.deployment.deployment import Deployment, InitDeploymentRequest
from app.routes.deployment.service import DeploymentService, get_deployment_service from app.routes.deployment.service import DeploymentService, get_deployment_service