diff --git a/python_algorithms/RESTful/server.py b/python_algorithms/RESTful/server.py old mode 100644 new mode 100755 index 984654f..822c438 --- a/python_algorithms/RESTful/server.py +++ b/python_algorithms/RESTful/server.py @@ -3,3 +3,75 @@ from flask_restful import Api, Resource, reqparse app = Flask(__name__) api = Api(app) + +users = [ + { + "name": "Nicholas", + "age": 42, + "occupation": "Network Engineer" + }, + { + "name": "Elvin", + "age": 32, + "occupation": "Doctor" + }, + { + "name": "Jass", + "age": 22, + "occupation": "Web Developer" + } +] + +class User(Resource): + def get(self, name): + for user in users: + if(name == user["name"]): + return user, 200 + return "User not found", 404 + + def post(self, name): + parser = reqparse.RequestParser() + parser.add_argument("age") + parser.add_argument("occupation") + args = parser.parse_args() + + for user in users: + if(name == user["name"]): + return "User with name {} already exists".format(name), 400 + + user = { + "name": name, + "age": args["age"], + "occupation": args["occupation"] + } + users.append(user) + return user, 201 + + def put(self, name): + parser = reqparse.RequestParser() + parser.add_argument("age") + parser.add_argument("occupation") + args = parser.parse_args() + + for user in users: + if(name == user["name"]): + user["age"] = args["age"] + user["occupation"] = args["occupation"] + return user, 200 + + user = { + "name": name, + "age": args["age"], + "occupation": args["occupation"] + } + users.append(user) + return user, 201 + + def delete(self, name): + global users + users = [user for user in users if user["name"] != name] + return "{} is deleted.".format(name), 200 + +api.add_resource(User, "/user/") + +app.run(debug=True)