/
rest.py
92 lines (73 loc) · 2.25 KB
/
rest.py
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
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
import web
import model
import demjson
urls = (
'/', 'UserCollection',
'/users', 'UserCollection',
'/users/', 'UserCollection',
'/users/(\d+)', 'User',
'/users/(\d+)/', 'User',
'/users/(\d+)/events', 'EventCollection',
'/users/(\d+)/events/', 'EventCollection',
'/users/(\d+)/events/(\d+)', 'Event',
'/users/(\d+)/events/(\d+)/', 'Event'
)
class UserCollection:
def GET(self):
"""Get users list"""
users = model.get_users()
return demjson.encode(users)
def POST(self):
"""New a user"""
data = web.data()
data = demjson.decode(data)
id = model.new_user(data['email'], data['password'])
return demjson.encode({"userid":id})
class User:
def GET(self, id):
"""Get user"""
user = model.get_user(id)
return demjson.encode(user)
def PUT(self, id):
"""Update a user"""
data = web.data()
data = demjson.decode(data)
model.update_user(id, data['email'], data['password'])
return demjson.encode(model.get_user(id))
def DELETE(self, id):
"""Delete a user"""
if model.del_user(id) == 1 :
return demjson.encode({"status":"success"})
else:
return demjson.encode({"status":"fail"})
class EventCollection:
def GET(self, userid):
"""Get events list"""
events = model.get_events(userid)
return demjson.encode(events)
def POST(self, userid):
"""New a event"""
data = web.data()
data = demjson.decode(data)
id = model.new_event(userid, data['title'], data.get('starttime'), data.get('endtime'), data.get('place'), data.get('description'))#data['title'], data['description'])
return demjson.encode({"eventid":id})
class Event:
def GET(self, userid, eventid):
"""Get event"""
event = model.get_event(userid, eventid)
return demjson.encode(event)
def PUT(self, userid, eventid):
"""Update a event"""
data = web.data()
data = demjson.decode(data)
model.update_event(userid, eventid, data['starttime'], data['endtime'], data['place'], data['title'], data['description'])
return demjson.encode(model.get_event(userid, eventid))
def DELETE(self, userid, eventid):
"""Delete a event"""
if model.del_event(userid, eventid) == 1 :
return demjson.encode({"status":"success"})
else:
return demjson.encode({"status":"fail"})
app = web.application(urls, globals())
if __name__ == '__main__':
app.run()