e8a355c06e4965ff9d4945b014f58ee010a924f3
Benjamin Renard Initial commit

Benjamin Renard authored 10 years ago

1) # -*- coding: utf-8 -*-
2) 
3) 
4) import logging
5) 
6) from webob.dec import wsgify
7) 
8) from . import conv, router, templates, wsgi_helpers
9) 
10) import json
11) 
12) log = logging.getLogger(__name__)
13) 
14) @wsgify
15) def home(req):
16) 	return templates.render(req.ctx, '/home.mako', data={})
17) 
18) @wsgify
19) def login(req):
20) 	params = req.params
21) 	log.debug(u'params = {}'.format(params))
22) 	inputs = {
23) 		'email': params.get('email'),
24) 		'password': params.get('password'),
25) 		}
26) 	log.debug(u'inputs = {}'.format(inputs))
27) 	data, errors = conv.inputs_to_login_data(inputs)
28) 	if errors is not None:
29) 		return wsgi_helpers.bad_request(req.ctx, comment=errors)
30) 		
31) 	log.debug(u'data = {}'.format(data))
32) 
33) 	login_data=req.ctx.db.login(data['email'],data['password'])
34) 	return wsgi_helpers.respond_json(req.ctx,login_data,headers=[('Access-Control-Allow-Origin','*')])
35) 
Benjamin Renard Add subscribe method

Benjamin Renard authored 10 years ago

36) @wsgify
37) def subscribe(req):
38) 	params = req.params
39) 	log.debug(u'params = {}'.format(params))
40) 	inputs = {
41) 		'email': params.get('email'),
42) 		'name': params.get('name'),
43) 		'password': params.get('password'),
44) 		}
45) 	log.debug(u'inputs = {}'.format(inputs))
46) 	data, errors = conv.inputs_to_subscribe_data(inputs)
47) 	if errors is not None:
48) 		return wsgi_helpers.bad_request(req.ctx, comment=errors)
49) 
50) 	log.debug(u'data = {}'.format(data))
51) 
52) 	login_data=req.ctx.db.subscribe(data['email'],data['name'],data['password'])
53) 	return wsgi_helpers.respond_json(req.ctx,login_data,headers=[('Access-Control-Allow-Origin','*')])
54) 
55) 
Benjamin Renard Initial commit

Benjamin Renard authored 10 years ago

56) @wsgify
57) def sync(req):
58) 	params = req.params
59) 	log.debug(u'params = {}'.format(params))
60) 	inputs = {
61) 		'email': params.get('email'),
62) 		'password': params.get('password'),
63) 		'groups': params.get('groups')
64) 		}
65) 	log.debug(u'inputs = {}'.format(inputs))
66) 	data, errors = conv.inputs_to_sync_data(inputs)
67) 	if errors is not None or data['groups'] is None:
68) 		return wsgi_helpers.bad_request(req.ctx, comment=errors)
69) 
70) 	data['groups']=json.loads(data['groups'])
71) 		
72) 	log.debug(u'data = {}'.format(data))
73) 
74) 	login_data=req.ctx.db.login(data['email'],data['password'])
75) 	if 'email' in login_data:
Benjamin Renard Support lastChange field in...

Benjamin Renard authored 10 years ago

76) 		log.debug(u'Login successful : sync groups')
Benjamin Renard Initial commit

Benjamin Renard authored 10 years ago

77) 		ret=req.ctx.db.sync_group(data['email'],data['groups'])
78) 		return wsgi_helpers.respond_json(req.ctx,ret,headers=[('Access-Control-Allow-Origin','*')])
79) 	else:
Benjamin Renard Support lastChange field in...

Benjamin Renard authored 10 years ago

80) 		log.debug(u'Login error : return login error')
Benjamin Renard Initial commit

Benjamin Renard authored 10 years ago

81) 		return wsgi_helpers.respond_json(
82)                   req.ctx,
83)                   login_data,
84)                   headers=[('Access-Control-Allow-Origin','*')]
85)                 )
86) 
87) def make_router():
88) 	return router.make_router(
89) 		('GET', '^/$', home),
90) 		('GET', '^/login$', login),
Benjamin Renard Add subscribe method

Benjamin Renard authored 10 years ago

91) 		('GET', '^/subscribe$', subscribe),
Benjamin Renard Use POST instead GET to syn...

Benjamin Renard authored 10 years ago

92) 		('POST', '^/sync$', sync),