Commit c6a34801 authored by James Kirk's avatar James Kirk
Browse files

Merge branch 'improved-errors' into 'dev'

fix: correct error code resp

Closes #32 and #34

See merge request !17
2 merge requests!23Resolve "Release v0.1.0",!17fix: correct error code resp
Pipeline #108974 passed with stages
in 59 seconds
from flask_restful import Resource, request, abort import logging
from flask_restful import Resource, abort, request
from marshmallow import Schema, fields from marshmallow import Schema, fields
import json from werkzeug.exceptions import BadRequest
import os
import random
import string
from models.client_model import ClientModel from models.client_model import ClientModel
logging.basicConfig(level=logging.INFO)
logging.getLogger("pika").setLevel(logging.ERROR)
class ClientSchema(Schema): class ClientSchema(Schema):
client_id = fields.Str(required=True) client_id = fields.Str(required=True)
...@@ -37,7 +40,11 @@ class Client(Resource): ...@@ -37,7 +40,11 @@ class Client(Resource):
return client, 204 return client, 204
def put(self, client_id): 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) errors = self.schema.validate(args)
if errors: if errors:
abort(400, message=str(errors)) abort(400, message=str(errors))
...@@ -63,7 +70,10 @@ class ClientList(Resource): ...@@ -63,7 +70,10 @@ class ClientList(Resource):
} }
def post(self): 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) errors = self.schema.validate(args)
if errors: if errors:
...@@ -71,7 +81,7 @@ class ClientList(Resource): ...@@ -71,7 +81,7 @@ class ClientList(Resource):
client = self.clients_file.find(args["client_id"]) client = self.clients_file.find(args["client_id"])
if client: if client:
abort(403, message="Duplicate client id: {}".format(client_id)) abort(409, message="Duplicate client id: {}".format(args["client_id"]))
else: else:
client = self.clients_file.add(args) client = self.clients_file.add(args)
return client, 201 return client, 201
...@@ -2,6 +2,7 @@ import json ...@@ -2,6 +2,7 @@ import json
from flask_restful import abort, request from flask_restful import abort, request
from marshmallow import Schema, fields from marshmallow import Schema, fields
from werkzeug.exceptions import BadRequest
from endpoints.auth_resource import AuthResource from endpoints.auth_resource import AuthResource
from rmq import write_to_queue from rmq import write_to_queue
...@@ -20,7 +21,11 @@ class Notify(AuthResource): ...@@ -20,7 +21,11 @@ class Notify(AuthResource):
self.schema = NotifySchema() self.schema = NotifySchema()
def post(self): 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) errors = self.schema.validate(args)
if errors: if errors:
abort(400, message=str(errors)) abort(400, message=str(errors))
......
...@@ -2,6 +2,7 @@ import json ...@@ -2,6 +2,7 @@ import json
from flask_restful import abort, request from flask_restful import abort, request
from marshmallow import Schema, fields from marshmallow import Schema, fields
from werkzeug.exceptions import BadRequest
from endpoints.auth_resource import AuthResource from endpoints.auth_resource import AuthResource
from rmq import write_to_queue from rmq import write_to_queue
...@@ -21,7 +22,11 @@ class Send(AuthResource): ...@@ -21,7 +22,11 @@ class Send(AuthResource):
self.schema = SendSchema() self.schema = SendSchema()
def post(self): 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) errors = self.schema.validate(args)
if errors: if errors:
abort(400, message=str(errors)) abort(400, message=str(errors))
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment