-
Notifications
You must be signed in to change notification settings - Fork 0
/
don_dao.py
95 lines (77 loc) · 3.38 KB
/
don_dao.py
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
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
import sqlite3
db = 'db/db1.db'
def sendDonation(donation):
#RacID è l'id della raccolta a cui si vuole donare
#donation è la donazione, è struttura come un dizionario con: NomeVisualizzato (può anche essere Anonimo), Importo, Commento (opzionale)
#la donation è generata dal form di donazione e gestita dalla funzione che si occupa del POST
#la funzione del POST richiama questa funzione passandogli i parametri
#la funzione si occupa di aggiungere la donazione al database
#la funzione ritorna True se la donazione è stata aggiunta correttamente, False altrimenti
result = None
sql = 'INSERT INTO Donazioni(RacID, NomeVisualizzato, Importo, Commento, UserID, Data) VALUES (?,?,?,?,?,?)'
connection = sqlite3.connect(db)
connection.row_factory = sqlite3.Row
cursor = connection.cursor()
try:
cursor.execute(sql, (donation['RacID'], donation['NomeVisualizzato'], donation['Importo'], donation['Commento'], donation['UserID'], donation['Data']))
connection.commit()
result = cursor.lastrowid # Ottieni l'ID dell'ultima riga inserita
except Exception as e:
print('Error', str(e))
connection.rollback()
result = None
cursor.close()
connection.close()
return result
def deleteDonation(donation_id):
# donation_id è l'id della donazione che si desidera eliminare
# La funzione si occupa di eliminare la donazione dal database
# Ritorna True se la donazione è stata eliminata correttamente, False altrimenti
result = False
sql = 'DELETE FROM Donazioni WHERE numTransazione = ?'
connection = sqlite3.connect(db)
cursor = connection.cursor()
try:
cursor.execute(sql, (donation_id,))
connection.commit()
result = True
except Exception as e:
print('Error:', str(e))
connection.rollback()
result = False
cursor.close()
connection.close()
return result
def getDonationsByRacID(id):
#id è l'id della raccolta di cui si vogliono le donazioni
#la funzione ritorna tutte le donazioni relative a quella raccolta
connection = sqlite3.connect(db)
connection.row_factory = sqlite3.Row
cursor = connection.cursor()
donations = cursor.execute('SELECT * FROM Donazioni WHERE RacID = ?', (id,)).fetchall()
cursor.close()
connection.close()
return donations
def getDonationsByUserID(id):
#id è l'id dell'utente di cui si vogliono le donazioni
#la funzione ritorna tutte le donazioni relative a quell'utente
#non è necessario essre iscritti per fare le donazioni, quindi la funzione può non ritornare nulla
#una donazione dove non c'è un utente associato ha UserID = -1
connection = sqlite3.connect(db)
connection.row_factory = sqlite3.Row
cursor = connection.cursor()
donations = cursor.execute('SELECT * FROM Donazioni WHERE UserID = ?', (id,)).fetchall()
cursor.close()
connection.close()
#fai il check, se donations è vuoto ritorna None
if len(donations) == 0:
return None
return donations
def getDonationsbynumTransazione(numTransazione):
connection = sqlite3.connect(db)
connection.row_factory = sqlite3.Row
cursor = connection.cursor()
donation = cursor.execute('SELECT * FROM Donazioni WHERE numTransazione = ?', (numTransazione,)).fetchone()
cursor.close()
connection.close()
return donation