habulaj commited on
Commit
6efa54c
·
verified ·
1 Parent(s): 8a0033d

Update routes/onboarding.py

Browse files
Files changed (1) hide show
  1. routes/onboarding.py +33 -0
routes/onboarding.py CHANGED
@@ -77,6 +77,39 @@ async def update_onboarding_question(payload: UpdateOnboardingQuestion = Body(..
77
  logger.error(f"❌ Erro interno ao atualizar pergunta: {str(e)}")
78
  raise HTTPException(status_code=500, detail="Erro interno do servidor")
79
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
80
  @router.delete("/onboarding/delete-question")
81
  async def delete_onboarding_question(id: int = Query(..., description="ID da pergunta a ser deletada")):
82
  """
 
77
  logger.error(f"❌ Erro interno ao atualizar pergunta: {str(e)}")
78
  raise HTTPException(status_code=500, detail="Erro interno do servidor")
79
 
80
+ @router.post("/onboarding/add-question")
81
+ async def add_onboarding_question(payload: UpdateOnboardingQuestion = Body(...)):
82
+ """
83
+ Adiciona uma nova pergunta de onboarding com base nos dados fornecidos.
84
+ Todos os campos do payload são enviados para criação.
85
+ """
86
+ try:
87
+ new_question = {
88
+ "id": payload.id,
89
+ "title": payload.title,
90
+ "question_type": payload.question_type,
91
+ "optional": payload.optional,
92
+ "options": payload.options
93
+ }
94
+
95
+ query_url = f"{SUPABASE_URL}/rest/v1/Onboarding"
96
+ headers = SUPABASE_ROLE_HEADERS.copy()
97
+ headers["Prefer"] = "return=representation"
98
+
99
+ async with aiohttp.ClientSession() as session:
100
+ async with session.post(query_url, json=new_question, headers=headers) as response:
101
+ if response.status not in (200, 201):
102
+ detail = await response.text()
103
+ logger.error(f"❌ Erro ao adicionar pergunta: {detail}")
104
+ raise HTTPException(status_code=response.status, detail="Erro ao adicionar pergunta")
105
+
106
+ created = await response.json()
107
+ return {"message": "✅ Pergunta adicionada com sucesso!", "created": created}
108
+
109
+ except Exception as e:
110
+ logger.error(f"❌ Erro interno ao adicionar pergunta: {str(e)}")
111
+ raise HTTPException(status_code=500, detail="Erro interno do servidor")
112
+
113
  @router.delete("/onboarding/delete-question")
114
  async def delete_onboarding_question(id: int = Query(..., description="ID da pergunta a ser deletada")):
115
  """