Spaces:
Runtime error
Runtime error
Create db_operations.py
Browse files- database/db_operations.py +40 -0
database/db_operations.py
ADDED
@@ -0,0 +1,40 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
# database/db_operations.py
|
2 |
+
|
3 |
+
import json
|
4 |
+
import logging
|
5 |
+
from typing import List, Tuple
|
6 |
+
from .db_manager import DatabaseManager
|
7 |
+
|
8 |
+
logging.basicConfig(level=logging.INFO)
|
9 |
+
logger = logging.getLogger(__name__)
|
10 |
+
|
11 |
+
def adicionar_lote_questoes(db: DatabaseManager, questoes: list) -> Tuple[bool, str]:
|
12 |
+
"""Adiciona várias questões de uma vez"""
|
13 |
+
try:
|
14 |
+
conn = db.get_connection()
|
15 |
+
cursor = conn.cursor()
|
16 |
+
|
17 |
+
for questao in questoes:
|
18 |
+
cursor.execute('''
|
19 |
+
INSERT INTO previous_questions
|
20 |
+
(year, area, question_text, options, correct_answer,
|
21 |
+
explanation, difficulty, references, tags)
|
22 |
+
VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)
|
23 |
+
''', (
|
24 |
+
questao.get('year'),
|
25 |
+
questao.get('area'),
|
26 |
+
questao.get('question_text'),
|
27 |
+
json.dumps(questao.get('options', {})),
|
28 |
+
questao.get('correct_answer'),
|
29 |
+
questao.get('explanation'),
|
30 |
+
questao.get('difficulty', 'medium'),
|
31 |
+
json.dumps(questao.get('references', [])),
|
32 |
+
json.dumps(questao.get('tags', []))
|
33 |
+
))
|
34 |
+
|
35 |
+
conn.commit()
|
36 |
+
logger.info(f"Adicionadas {len(questoes)} questões com sucesso")
|
37 |
+
return True, "Questões adicionadas com sucesso"
|
38 |
+
except Exception as e:
|
39 |
+
logger.error(f"Erro ao adicionar questões: {e}")
|
40 |
+
return False, f"Erro ao adicionar questões: {str(e)}"
|