Support lastChange field in JSON GroupList data
Benjamin Renard

Benjamin Renard commited on 2014-01-27 22:53:25
Showing 2 changed files, with 14 additions and 5 deletions.

... ...
@@ -73,9 +73,11 @@ def sync(req):
73 73
 
74 74
 	login_data=req.ctx.db.login(data['email'],data['password'])
75 75
 	if 'email' in login_data:
76
+		log.debug(u'Login successful : sync groups')
76 77
 		ret=req.ctx.db.sync_group(data['email'],data['groups'])
77 78
 		return wsgi_helpers.respond_json(req.ctx,ret,headers=[('Access-Control-Allow-Origin','*')])
78 79
 	else:
80
+		log.debug(u'Login error : return login error')
79 81
 		return wsgi_helpers.respond_json(
80 82
                   req.ctx,
81 83
                   login_data,
... ...
@@ -74,15 +74,22 @@ class DB(object):
74 74
 		db_groups=self.get_group(email)
75 75
 		json_group=json.dumps(groups)
76 76
 		if db_groups!=False:
77
-			if db_groups=={}:
78
-				if groups=={}:
79
-					return {'groups': {}}
77
+			log.debug('Database groups : %s' % db_groups)
78
+			log.debug('Provided groups : %s' % groups)
79
+			if 'groups' not in db_groups or db_groups['groups']=={}:
80
+				log.debug('Database group is empty')
81
+				if 'groups' not in groups or groups['groups']=={}:
82
+					log.debug('Database and provided group are empty. Return empty')
83
+					return {'groups': {'groups': {}}}
80 84
 				else:
85
+					log.debug('Insert provided groups in database and return it')
81 86
 					if self.do_sql("INSERT INTO groups (email,groups) VALUES ('%s','%s')" % (email,json_group)):
82 87
 						return {'groups': groups}
83
-			elif groups=={}:
88
+			elif 'groups' not in groups or groups['groups']=={}:
89
+				log.debug('Provide group is empty. Return database groups')
84 90
 				return {'groups': db_groups}
85 91
 			else:
92
+				log.debug('Update database with provided group and return it')
86 93
 				if self.do_sql("UPDATE groups SET groups='%s' WHERE email='%s'" % (json_group,email)):
87 94
 					return {'groups': groups}
88 95
 		return {'syncerror': 'Erreur inconnu'}
... ...
@@ -93,6 +100,6 @@ class DB(object):
93 100
 			if len(ret)==1:
94 101
 				return json.loads(ret[0][0])
95 102
 			else:
96
-				return {}
103
+				return {'groups': {}}
97 104
 		else:
98 105
 			return False
99 106