-
Notifications
You must be signed in to change notification settings - Fork 0
/
app.py
57 lines (43 loc) · 1.45 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
import json
import logging
import falcon
from marshmallow import Schema
from marshmallow.exceptions import ValidationError
import log
from serializers import PersonSchema
from models import Person
from main import APP
person_data = {}
munhu = Person('Humphrey', 34, 'african')
class PersonResource(object):
"""Docstring for PersonResource. """
def on_get(self, req, resp, mumhu=None):
"""TODO: Docstring for on_get.
:param: Client's HTTP request
:person: TODO
:returns: TODO
"""
# here we need to serialize person
schema = PersonSchema()
result = schema.dump(munhu)
logging.info(result)
resp.media = result
resp.status = falcon.HTTP_200
def on_post(self, req, res):
# here we need to deserialize to a python object since we are recieving json from req.media
# user_req = req.context["data"]
# logger.info(req.stream.read())
schema = PersonSchema()
try:
result = schema.load(req.media)
except ValidationError as err:
err.messages['name'] = "You need to supply a {}".format(err.messages.keys())
res.media = err.messages
res.status = falcon.HTTP_403
# req.context.data = req.media
# person = Person(**req.media)
# person_data.update(user_req)
res.status = falcon.HTTP_201
person = PersonResource()
app = APP()
app.add_route('/people', person)