forked from CodecoolBase/ask-mate-python
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathdata_handler.py
More file actions
75 lines (53 loc) · 2.06 KB
/
data_handler.py
File metadata and controls
75 lines (53 loc) · 2.06 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
import os
import connection
ANSWER_DATA_FILE_PATH = os.getcwd() + "/data/answer.csv"
QUESTION_DATA_FILE_PATH = os.getcwd() + "/data/question.csv"
def get_answers():
database = connection.csv_to_dict(ANSWER_DATA_FILE_PATH)
return database
def get_questions():
database = connection.csv_to_dict(QUESTION_DATA_FILE_PATH)
return database
def save_questions(data):
database = connection.dict_to_csv(QUESTION_DATA_FILE_PATH, data)
return database
def save_answers(data):
database = connection.dict_to_csv(ANSWER_DATA_FILE_PATH, data, True)
return database
def add_entry(entry, is_answer=False):
if not is_answer:
connection.append_to_csv(QUESTION_DATA_FILE_PATH, entry)
else:
connection.append_to_csv(ANSWER_DATA_FILE_PATH, entry)
def get_question(question_id, question_database):
for question_data in question_database:
if question_data['id'] == question_id:
return question_data
def get_answer(answer_id, answer_database):
for answer_data in answer_database:
if answer_data['id'] == answer_id:
return answer_data
def get_question_related_answers(question_id, answer_database):
answers_of_question = []
for answer_data in answer_database:
if answer_data['question_id'] == question_id:
answers_of_question.append(answer_data)
return answers_of_question
def update_questions(question_id, updated_data):
all_questions = get_questions()
question = get_question(question_id, all_questions)
question_index = all_questions.index(question)
for key, value in updated_data.items():
question[key] = value
all_questions[question_index] = question
save_questions(all_questions)
return question
def delete_record(id, answer=False, delete=False):
if answer:
answers = get_answers()
for i, answer in enumerate(answers):
question_id = answer['question_id']
if answer['id'] == id and delete:
del answers[i]
save_answers(answers)
return question_id