-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathdb_controller.py
More file actions
36 lines (28 loc) · 1.62 KB
/
db_controller.py
File metadata and controls
36 lines (28 loc) · 1.62 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
from db import DBManagerBasic, DB_MYSQL
from txdb import CreateSurveyTxDB, AddParticipantsTxDB, VoteTxDB, UserDB, MemberDB
class DBManager(DBManagerBasic):
def __init__(self, db_name):
super().__init__(DB_MYSQL, mysql_user_name="ivoting", mysql_password="##MY_PASSWORD##", mysql_db_host="127.0.0.1", mysql_db_port="3306", mysql_db_name=db_name)
def config_show_tables(self):
self.show_tables_params = [
{'db_class': CreateSurveyTxDB,
'add_columns': []
}]
class TransactionDBController():
def __init__(self):
self.dbm = DBManager("blockchain")
def insertCreateSurvey(self, start_time, end_time, multiple_answer, uri, v, r, s, nonce, block, timestamp):
with self.dbm.session_scope() as session:
session.add(CreateSurveyTxDB(start_time=start_time, end_time=end_time, multiple_answer=multiple_answer, uri=uri, v=v, r=r, s=s, nonce=nonce, block=block, timestamp=timestamp))
def insertAddParticipants(self, sc_id, participants, v, r, s, nonce, block, timestamp):
with self.dbm.session_scope() as session:
session.add(AddParticipantsTxDB(sc_id=sc_id, participants=participants, v=v, r=r, s=s, nonce=nonce, block=block, timestamp=timestamp))
def insertVote(self, sc_id, votes, v, r, s, nonce, block, timestamp):
with self.dbm.session_scope() as session:
session.add(VoteTxDB(sc_id=sc_id, votes=votes, v=v, r=r, s=s, nonce=nonce, block=block, timestamp=timestamp))
class UserDBController():
def __init__(self):
self.dbm = DBManager("dev")
def getSignersAddress(self):
with self.dbm.session_scope() as session:
return session.query(UserDB.blockchainAddress).join(MemberDB).filter(MemberDB.type == "CA").all()