kopia lustrzana https://github.com/bugout-dev/moonstream
fix errors
rodzic
dc19407059
commit
0cf4f317d2
|
@ -204,26 +204,25 @@ def create_onboarding_resource(
|
|||
@app.post("/onboarding", tags=["users"], response_model=data.OnboardingState)
|
||||
async def set_onboarding_state(
|
||||
request: Request,
|
||||
data: data.OnboardingState = Body(...),
|
||||
onboarding_data: data.OnboardingState = Body(...),
|
||||
) -> data.OnboardingState:
|
||||
|
||||
token = request.state.token
|
||||
print(data)
|
||||
response = bc.list_resources(
|
||||
token=token,
|
||||
params={"type": USER_ONBOARDING_STATE},
|
||||
timeout=BUGOUT_REQUEST_TIMEOUT_SECONDS,
|
||||
)
|
||||
resource_data = {"type": USER_ONBOARDING_STATE, **data.dict()}
|
||||
resource_data = {"type": USER_ONBOARDING_STATE, **onboarding_data.dict()}
|
||||
try:
|
||||
if response.resources:
|
||||
resource: BugoutResource = bc.update_resource(
|
||||
resource = bc.update_resource(
|
||||
token=token,
|
||||
resource_id=str(response.resources[0].id),
|
||||
resource_data={"update": resource_data, "drop_keys": []},
|
||||
)
|
||||
else:
|
||||
resource: BugoutResource = create_onboarding_resource(
|
||||
resource = create_onboarding_resource(
|
||||
token=token, resource_data=resource_data
|
||||
)
|
||||
|
||||
|
@ -231,7 +230,21 @@ async def set_onboarding_state(
|
|||
raise HTTPException(status_code=e.status_code, detail=e.detail)
|
||||
except Exception as e:
|
||||
raise HTTPException(status_code=500)
|
||||
return resource.resource_data
|
||||
|
||||
if (
|
||||
resource.resource_data.get("is_complete") is None
|
||||
or resource.resource_data.get("steps") is None
|
||||
):
|
||||
logger.error(
|
||||
f"Resources did not return correct onboarding object. Resource id:{resource.id}"
|
||||
)
|
||||
raise HTTPException(status_code=500)
|
||||
|
||||
result = data.OnboardingState(
|
||||
is_complete=resource.resource_data.get("is_complete", False),
|
||||
steps=resource.resource_data.get("steps", {}),
|
||||
)
|
||||
return result
|
||||
|
||||
|
||||
@app.get("/onboarding", tags=["users"], response_model=data.OnboardingState)
|
||||
|
@ -242,18 +255,31 @@ async def get_onboarding_state(request: Request) -> data.OnboardingState:
|
|||
params={"type": USER_ONBOARDING_STATE},
|
||||
timeout=BUGOUT_REQUEST_TIMEOUT_SECONDS,
|
||||
)
|
||||
|
||||
try:
|
||||
if response.resources:
|
||||
resource: BugoutResource = response.resources[0]
|
||||
else:
|
||||
resource: BugoutResource = create_onboarding_resource(token=token)
|
||||
|
||||
if response.resources:
|
||||
resource = response.resources[0]
|
||||
else:
|
||||
resource = create_onboarding_resource(token=token)
|
||||
except BugoutResponseException as e:
|
||||
raise HTTPException(status_code=e.status_code, detail=e.detail)
|
||||
except Exception as e:
|
||||
|
||||
raise HTTPException(status_code=500)
|
||||
return resource.resource_data
|
||||
|
||||
if (
|
||||
resource.resource_data.get("is_complete") is None
|
||||
or resource.resource_data.get("steps") is None
|
||||
):
|
||||
logger.error(
|
||||
f"Resources did not return correct onboarding object. Resource id:{resource.id}"
|
||||
)
|
||||
raise HTTPException(status_code=500)
|
||||
result = data.OnboardingState(
|
||||
is_complete=resource.resource_data.get("is_complete", False),
|
||||
steps=resource.resource_data.get("steps", {}),
|
||||
)
|
||||
return result
|
||||
|
||||
|
||||
@app.delete("/onboarding", tags=["users"], response_model=data.OnboardingState)
|
||||
|
@ -278,4 +304,17 @@ async def delete_onboarding_state(request: Request) -> data.OnboardingState:
|
|||
raise HTTPException(status_code=e.status_code, detail=e.detail)
|
||||
except Exception as e:
|
||||
raise HTTPException(status_code=500)
|
||||
return resource.resource_data
|
||||
|
||||
if (
|
||||
resource.resource_data.get("is_complete") is None
|
||||
or resource.resource_data.get("steps") is None
|
||||
):
|
||||
logger.error(
|
||||
f"Resources did not return correct onboarding object. Resource id:{resource.id}"
|
||||
)
|
||||
raise HTTPException(status_code=500)
|
||||
result = data.OnboardingState(
|
||||
is_complete=resource.resource_data.get("is_complete", False),
|
||||
steps=resource.resource_data.get("steps", {}),
|
||||
)
|
||||
return result
|
||||
|
|
Ładowanie…
Reference in New Issue