From 454e961cc32b0465829f8b1a04eddd3de15c29bf Mon Sep 17 00:00:00 2001 From: xzxjesse Date: Tue, 3 Sep 2024 22:12:51 -0300 Subject: [PATCH 1/2] Adiciona a funcao de deletar video do historico --- src/controller/recordController.py | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/src/controller/recordController.py b/src/controller/recordController.py index 758c9ff..3dc0f51 100644 --- a/src/controller/recordController.py +++ b/src/controller/recordController.py @@ -88,3 +88,29 @@ def get_record_sorted(user_id: str = Query(...), ascending: bool = Query(True), sorted_videos = dict(sorted(aggregated_videos.items(), key=lambda item: item[1], reverse=not ascending)) return {"videos": sorted_videos} return {"videos": []} + +@Record.delete("/delete_video") +def delete_video_from_record(video_id: str = Query(...), user_id: str = Query(...), db: Session = Depends(get_db)): + record_entry = db.query(recordModel.Record).filter(recordModel.Record.user_id == user_id).first() + + if record_entry: + video_id = str(video_id) # video_id como uma string + + print(f"Histórico antes da exclusão: {record_entry.videos}") + + if video_id in record_entry.videos: + print(f"Removendo vídeo {video_id} do histórico.") + + # cria um novo dicionario sem o video a ser removido + updated_videos = {k: v for k, v in record_entry.videos.items() if k != video_id} + record_entry.videos = updated_videos # atualiza o dicionário de videos + + db.commit() + print(f"Histórico após a exclusão: {record_entry.videos}") + return JSONResponse(status_code=200, content={"message": "Vídeo removido do histórico com sucesso."}) + else: + print(f"Vídeo {video_id} não encontrado no histórico.") + return JSONResponse(status_code=404, content={"message": "Vídeo não encontrado no histórico."}) + else: + print(f"Registro de histórico para o usuário {user_id} não encontrado.") + return JSONResponse(status_code=404, content={"message": "Registro de histórico não encontrado."}) From 996f585384ed0e0ccd2f7a46c1e72a63e76470eb Mon Sep 17 00:00:00 2001 From: xzxjesse Date: Tue, 3 Sep 2024 22:31:48 -0300 Subject: [PATCH 2/2] Adiciona teste pra funcao de deletar video do historico --- tests/test_record.py | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/tests/test_record.py b/tests/test_record.py index bba9d16..0de6acd 100644 --- a/tests/test_record.py +++ b/tests/test_record.py @@ -109,3 +109,27 @@ def test_get_record_sorted(setup_database): expected_order = sorted(videos.items(), key=lambda x: x[1], reverse=True) sorted_keys = list(sorted_videos.keys()) assert sorted_keys == [k for k, v in expected_order] # Checa se está em ordem descendente + +def test_delete_video_from_record(setup_database): + user_id = str(uuid.uuid4()) + video_id = str(uuid.uuid4()) + timestamp = "2024-08-14 12:00:00" + + # Adiciona o vídeo ao histórico + response = client.post("/api/record/", json={"user_id": user_id, "videos": {video_id: timestamp}}) + assert response.status_code == 200 + + # Verifica se o vídeo foi adicionado ao histórico + response = client.get("/api/record/get_record/", params={"user_id": user_id}) + assert response.status_code == 200 + assert video_id in response.json()["videos"] + + # Exclui o vídeo do histórico + response = client.delete("/api/record/delete_video", params={"user_id": user_id, "video_id": video_id}) + assert response.status_code == 200 + assert response.json()["message"] == "Vídeo removido do histórico com sucesso." + + # Verifica se o vídeo foi removido do histórico + response = client.get("/api/record/get_record/", params={"user_id": user_id}) + assert response.status_code == 200 + assert video_id not in response.json()["videos"]