c5dae5ef4575255bf6619fbebdfcc9c7865f501a
Benjamin Renard Initial commit

Benjamin Renard authored 10 years ago

1) #!/usr/bin/python
2) # -*- coding: utf-8 -*-
3) 
4) import json
5) import logging
6) log = logging.getLogger(__name__)
7) import MySQLdb
8) 
9) class DB(object):
10) 
11) 	def __init__(self,host,user,pwd,db):
12) 		self.host = host
13) 		self.user = user
14) 		self.pwd  = pwd
15) 		self.db   = db
16) 		self.con  = 0
17) 
18) 	def connect(self):
19) 		if self.con == 0:
20) 			try:
21) 				con = MySQLdb.connect(self.host,self.user,self.pwd,self.db)
22) 				self.con = con
23) 				return True
24) 			except Exception, e:
25) 				log.fatal('Error connecting to database : %s' % e)
26) 				return
27) 
28) 	def do_sql(self,sql):
29) 		try:
30) 			c=self.con.cursor()
31) 			c.execute(sql)
32) 			self.con.commit()
33) 			return c
34) 		except Exception,e:
35) 			log.error('Error executing request %s : %s' % (sql,e))
36) 			return False
37) 
38) 	def select(self,sql):
39) 		ret=self.do_sql(sql)
40) 		if ret!=False:
41) 			return ret.fetchall()
42) 		return ret
43) 
44) 	def login(self,email,password):
45) 		ret=self.select("SELECT email,name,password FROM users WHERE email='%s' AND password='%s'" % (email,password))
46) 		log.debug(ret)
47) 		if ret:
48) 			if len(ret)==1:
49) 				return {
50) 					'email': ret[0][0],
51) 					'name': ret[0][1]
52) 				}
53) 			elif len(ret)>=1:
54) 				log.warning('Duplicate user %s in database' % email)
55) 		elif ret==():
56) 			return { 'loginerror': 'Utilisateur inconnu' }
57) 		return { 'loginerror': 'Erreur inconnu' }
58) 
Benjamin Renard Add subscribe method

Benjamin Renard authored 10 years ago

59) 	def subscribe(self,email,name,password):
60) 		ret=self.select("SELECT count(*) as count FROM users WHERE email='%s'" % (email))
61) 		log.debug(ret)
62) 		if ret[0][0]!=0:
63) 			return {'subscribeerror': u'Cette adresse mail est déjà associés a un compte !'}
64) 		else:
65) 			if self.do_sql("INSERT INTO users (email,name,password) VALUES ('%s','%s','%s')" % (email,name,password)):
66) 				return {
67) 					'email': email,
68) 					'name': name,
69) 					'password': password
70) 				}
71) 		return {'subscribeerror': u'Une erreur est survenue durant votre inscription :('}
72)