diff --git a/endpoints/client.py b/endpoints/client.py index 60fca56afc86212b9b258010992071dcd1d280ff..0f42fea2dc1eb095a34ba1b328fa6c7d06bfe0af 100644 --- a/endpoints/client.py +++ b/endpoints/client.py @@ -1,11 +1,14 @@ -from flask_restful import Resource, request, abort +import logging + +from flask_restful import Resource, abort, request from marshmallow import Schema, fields -import json -import os -import random -import string +from werkzeug.exceptions import BadRequest + from models.client_model import ClientModel +logging.basicConfig(level=logging.INFO) +logging.getLogger("pika").setLevel(logging.ERROR) + class ClientSchema(Schema): client_id = fields.Str(required=True) @@ -37,7 +40,11 @@ class Client(Resource): return client, 204 def put(self, client_id): - args = request.get_json() + try: + args = request.get_json() + except BadRequest: + abort(400, message="POSTed body is invalid JSON") + errors = self.schema.validate(args) if errors: abort(400, message=str(errors)) @@ -63,7 +70,10 @@ class ClientList(Resource): } def post(self): - args = request.get_json() + try: + args = request.get_json() + except BadRequest: + abort(400, message="POSTed body is invalid JSON") errors = self.schema.validate(args) if errors: @@ -71,7 +81,7 @@ class ClientList(Resource): client = self.clients_file.find(args["client_id"]) if client: - abort(403, message="Duplicate client id: {}".format(client_id)) + abort(409, message="Duplicate client id: {}".format(args["client_id"])) else: client = self.clients_file.add(args) return client, 201 diff --git a/endpoints/notify.py b/endpoints/notify.py index dff460e28d8a00fc1d36e56aca89e9378aed3de0..f3dd916a3f6d162a320cf9a335e7d9b8f265e9e3 100644 --- a/endpoints/notify.py +++ b/endpoints/notify.py @@ -2,6 +2,7 @@ import json from flask_restful import abort, request from marshmallow import Schema, fields +from werkzeug.exceptions import BadRequest from endpoints.auth_resource import AuthResource from rmq import write_to_queue @@ -20,7 +21,11 @@ class Notify(AuthResource): self.schema = NotifySchema() def post(self): - args = request.get_json() + try: + args = request.get_json() + except BadRequest: + abort(400, message="POSTed body is invalid JSON") + errors = self.schema.validate(args) if errors: abort(400, message=str(errors)) diff --git a/endpoints/send.py b/endpoints/send.py index cb64c4a52ba377cab9efd1cba0162f15b86f04ca..90d519a3ea262f2eeb4cf6c8e628714b5bfbc98a 100644 --- a/endpoints/send.py +++ b/endpoints/send.py @@ -2,6 +2,7 @@ import json from flask_restful import abort, request from marshmallow import Schema, fields +from werkzeug.exceptions import BadRequest from endpoints.auth_resource import AuthResource from rmq import write_to_queue @@ -21,7 +22,11 @@ class Send(AuthResource): self.schema = SendSchema() def post(self): - args = request.get_json() + try: + args = request.get_json() + except BadRequest: + abort(400, message="POSTed body is invalid JSON") + errors = self.schema.validate(args) if errors: abort(400, message=str(errors))