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)
|
@app.post("/onboarding", tags=["users"], response_model=data.OnboardingState)
|
||||||
async def set_onboarding_state(
|
async def set_onboarding_state(
|
||||||
request: Request,
|
request: Request,
|
||||||
data: data.OnboardingState = Body(...),
|
onboarding_data: data.OnboardingState = Body(...),
|
||||||
) -> data.OnboardingState:
|
) -> data.OnboardingState:
|
||||||
|
|
||||||
token = request.state.token
|
token = request.state.token
|
||||||
print(data)
|
|
||||||
response = bc.list_resources(
|
response = bc.list_resources(
|
||||||
token=token,
|
token=token,
|
||||||
params={"type": USER_ONBOARDING_STATE},
|
params={"type": USER_ONBOARDING_STATE},
|
||||||
timeout=BUGOUT_REQUEST_TIMEOUT_SECONDS,
|
timeout=BUGOUT_REQUEST_TIMEOUT_SECONDS,
|
||||||
)
|
)
|
||||||
resource_data = {"type": USER_ONBOARDING_STATE, **data.dict()}
|
resource_data = {"type": USER_ONBOARDING_STATE, **onboarding_data.dict()}
|
||||||
try:
|
try:
|
||||||
if response.resources:
|
if response.resources:
|
||||||
resource: BugoutResource = bc.update_resource(
|
resource = bc.update_resource(
|
||||||
token=token,
|
token=token,
|
||||||
resource_id=str(response.resources[0].id),
|
resource_id=str(response.resources[0].id),
|
||||||
resource_data={"update": resource_data, "drop_keys": []},
|
resource_data={"update": resource_data, "drop_keys": []},
|
||||||
)
|
)
|
||||||
else:
|
else:
|
||||||
resource: BugoutResource = create_onboarding_resource(
|
resource = create_onboarding_resource(
|
||||||
token=token, resource_data=resource_data
|
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)
|
raise HTTPException(status_code=e.status_code, detail=e.detail)
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
raise HTTPException(status_code=500)
|
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)
|
@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},
|
params={"type": USER_ONBOARDING_STATE},
|
||||||
timeout=BUGOUT_REQUEST_TIMEOUT_SECONDS,
|
timeout=BUGOUT_REQUEST_TIMEOUT_SECONDS,
|
||||||
)
|
)
|
||||||
|
|
||||||
try:
|
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:
|
except BugoutResponseException as e:
|
||||||
raise HTTPException(status_code=e.status_code, detail=e.detail)
|
raise HTTPException(status_code=e.status_code, detail=e.detail)
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
|
|
||||||
raise HTTPException(status_code=500)
|
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)
|
@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)
|
raise HTTPException(status_code=e.status_code, detail=e.detail)
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
raise HTTPException(status_code=500)
|
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