Benjamin Renard commited on 2014-08-17 18:53:53
Showing 1 changed files, with 17 additions and 0 deletions.
| ... | ... |
@@ -25,8 +25,17 @@ class DB(object): |
| 25 | 25 |
except Exception, e: |
| 26 | 26 |
log.fatal('Error connecting to database : %s' % e)
|
| 27 | 27 |
return |
| 28 |
+ else: |
|
| 29 |
+ try: |
|
| 30 |
+ self.con.ping(True) |
|
| 31 |
+ except Exception, e: |
|
| 32 |
+ self.con = 0 |
|
| 33 |
+ return self.connect() |
|
| 34 |
+ return True |
|
| 35 |
+ |
|
| 28 | 36 |
|
| 29 | 37 |
def do_sql(self,sql): |
| 38 |
+ if self.connect(): |
|
| 30 | 39 |
try: |
| 31 | 40 |
c=self.con.cursor() |
| 32 | 41 |
c.execute(sql) |
| ... | ... |
@@ -37,12 +46,14 @@ class DB(object): |
| 37 | 46 |
return False |
| 38 | 47 |
|
| 39 | 48 |
def select(self,sql): |
| 49 |
+ if self.connect(): |
|
| 40 | 50 |
ret=self.do_sql(sql) |
| 41 | 51 |
if ret!=False: |
| 42 | 52 |
return ret.fetchall() |
| 43 | 53 |
return ret |
| 44 | 54 |
|
| 45 | 55 |
def login(self,email,password): |
| 56 |
+ if self.connect(): |
|
| 46 | 57 |
ret=self.select("SELECT email,name,password FROM users WHERE email='%s' AND password='%s'" % (email,password))
|
| 47 | 58 |
log.debug(ret) |
| 48 | 59 |
if ret: |
| ... | ... |
@@ -58,6 +69,7 @@ class DB(object): |
| 58 | 69 |
return { 'loginerror': 'Erreur inconnu' }
|
| 59 | 70 |
|
| 60 | 71 |
def subscribe(self,email,name,password): |
| 72 |
+ if self.connect(): |
|
| 61 | 73 |
ret=self.select("SELECT count(*) as count FROM users WHERE email='%s'" % (email))
|
| 62 | 74 |
log.debug(ret) |
| 63 | 75 |
if ret[0][0]!=0: |
| ... | ... |
@@ -72,6 +84,7 @@ class DB(object): |
| 72 | 84 |
return {'subscribeerror': u'Une erreur est survenue durant votre inscription :('}
|
| 73 | 85 |
|
| 74 | 86 |
def sync_group(self,email,groups): |
| 87 |
+ if self.connect(): |
|
| 75 | 88 |
db_groups=self.get_group(email) |
| 76 | 89 |
if db_groups!=False: |
| 77 | 90 |
db_grouplist=group.GroupList() |
| ... | ... |
@@ -85,8 +98,11 @@ class DB(object): |
| 85 | 98 |
else: |
| 86 | 99 |
return {'syncerror': 'Erreur en modifiant les informations de la base de donnees'}
|
| 87 | 100 |
return {'syncerror': 'Erreur inconnu'}
|
| 101 |
+ else: |
|
| 102 |
+ return {'syncerror': u"Erreur de connexion à la base de données"}
|
|
| 88 | 103 |
|
| 89 | 104 |
def get_group(self,email): |
| 105 |
+ if self.connect(): |
|
| 90 | 106 |
ret=self.select("SELECT groups FROM groups WHERE email='%s'" % email)
|
| 91 | 107 |
if ret!=False: |
| 92 | 108 |
if len(ret)==1: |
| ... | ... |
@@ -97,6 +113,7 @@ class DB(object): |
| 97 | 113 |
return False |
| 98 | 114 |
|
| 99 | 115 |
def set_group(self,email,groups): |
| 116 |
+ if self.connect(): |
|
| 100 | 117 |
ret=self.select("SELECT groups FROM groups WHERE email='%s'" % email)
|
| 101 | 118 |
if ret!=False: |
| 102 | 119 |
json_groups=json.dumps(groups) |
| 103 | 120 |