-
Notifications
You must be signed in to change notification settings - Fork 0
/
app.py
84 lines (74 loc) · 2.23 KB
/
app.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
from flask import Flask, request
from flask_restful import Resource, Api
from models import People, Todo
app = Flask(__name__)
api = Api(app)
class User(Resource):
def get(self, name):
users = People.query.filter_by(name=name).first()
try:
response = {
'name':users.name,
'age':users.age,
'id':users.id
}
except AttributeError:
response = {
'status':'error',
'message':'dont find an user'
}
return response
def put(self, name):
user = People.query.filter_by(name=name).first()
data = request.json
if 'nome' in data:
user.name = data['name']
if 'age' in data:
user.age = data['age']
user.save()
response = {
'id':user.id,
'name':user.name,
'age':user.age
}
return response
def delete(self, name):
user = People.query.filter_by(name=name).first()
user.delete()
return {'status':'success', 'message':'user deleted'}
class userList(Resource):
def get(self):
users = People.query.all()
response = [{'id':i.id, 'name':i.name, 'age':i.age}for i in users]
return response
def post(self):
data = request.json
user = People(name=data['name'], age=data['age'])
user.save()
response = {
'id':user.id,
'name':user.name,
'age':user.age
}
return response
class todoList(Resource):
def get(self):
tasks = Todo.query.all()
response = [{'id':i.id, 'name':i.name, 'people':i.people.name} for i in tasks]
return response
def post(self):
data = request.json
users = People.query.filter_by(name=data['name']).first()
todo = Todo(name=data['name'], user=users)
todo.save()
response = {
'user':todo.user.name,
'name':todo.name,
'id':todo.id,
}
return response
api.add_resource(User, '/user/<string:name>/')
api.add_resource(userList, '/userlist/')
api.add_resource(todoList, '/todo/')
if __name__ == '__main__':
app.run(debug=True)