fix
This commit is contained in:
@@ -20,6 +20,12 @@ class RequestDeleteBody(pydantic.BaseModel):
|
||||
id: str
|
||||
|
||||
|
||||
class Config(pydantic.BaseModel):
|
||||
id: str
|
||||
name: str
|
||||
value: dict
|
||||
|
||||
|
||||
router = fastapi.APIRouter()
|
||||
|
||||
|
||||
@@ -40,3 +46,15 @@ async def delete(body: RequestDeleteBody):
|
||||
changed = await configs.delete(id=bson.ObjectId(body.id))
|
||||
if not changed:
|
||||
raise fastapi.HTTPException(404)
|
||||
|
||||
|
||||
@router.get('/api/v1/configs')
|
||||
async def get(stage: str, project: str) -> list[Config]:
|
||||
return [
|
||||
Config(
|
||||
id=str(config._id),
|
||||
name=config.name,
|
||||
value=config.value,
|
||||
)
|
||||
for config in await configs.get(project=project, stage=stage)
|
||||
]
|
||||
|
||||
@@ -11,9 +11,18 @@ class RequestPostBody(pydantic.BaseModel):
|
||||
|
||||
|
||||
class RequestPutBody(pydantic.BaseModel):
|
||||
id: str
|
||||
enabled: bool
|
||||
condition: str
|
||||
|
||||
|
||||
class RequestDeleteBody(pydantic.BaseModel):
|
||||
id: str
|
||||
|
||||
|
||||
class Experiment(pydantic.BaseModel):
|
||||
id: str
|
||||
name: str
|
||||
stage: str
|
||||
project: str
|
||||
enabled: bool
|
||||
condition: str
|
||||
|
||||
@@ -28,13 +37,26 @@ async def post(body: RequestPostBody):
|
||||
|
||||
@router.put('/api/v1/experiments', status_code=fastapi.status.HTTP_202_ACCEPTED, responses={404: {'description': 'Not found'}})
|
||||
async def put(body: RequestPutBody):
|
||||
changed = await experiments.update(project=body.project, stage=body.stage, name=body.name, enabled=body.enabled, condition=body.condition)
|
||||
changed = await experiments.update(id=body.id, enabled=body.enabled, condition=body.condition)
|
||||
if not changed:
|
||||
raise fastapi.HTTPException(404)
|
||||
|
||||
|
||||
@router.delete('/api/v1/experiments', status_code=fastapi.status.HTTP_202_ACCEPTED, responses={404: {'description': 'Not found'}})
|
||||
async def delete(body: RequestPostBody):
|
||||
changed = await experiments.delete(project=body.project, stage=body.stage, name=body.name)
|
||||
async def delete(body: RequestDeleteBody):
|
||||
changed = await experiments.delete(id=body.id)
|
||||
if not changed:
|
||||
raise fastapi.HTTPException(404)
|
||||
|
||||
|
||||
@router.get('/api/v1/experiments')
|
||||
async def get(stage: str, project: str) -> list[Experiment]:
|
||||
return [
|
||||
Experiment(
|
||||
id=str(experiment._id),
|
||||
name=experiment.name,
|
||||
enabled=experiment.enabled,
|
||||
condition=experiment.condition,
|
||||
)
|
||||
for experiment in await experiments.get(project=project, stage=stage)
|
||||
]
|
||||
|
||||
Reference in New Issue
Block a user