diff --git a/.flaskenv b/.flaskenv index 320ace8..55a2911 100644 --- a/.flaskenv +++ b/.flaskenv @@ -1,6 +1,6 @@ FLASK_APP=app:app -FLASK_DEBUG=1 -PRODUCTION=0 +FLASK_DEBUG=0 +PRODUCTION=1 DBHOST=postgresql://adminadminSECURE!!!:ThisIsProductionBaby!!@db:5432/greenwatch_production SQL_PORT=5432 SQL_HOST=db diff --git a/app.py b/app.py index 55613cf..d7d7a51 100644 --- a/app.py +++ b/app.py @@ -22,6 +22,7 @@ from flask_jwt_extended import JWTManager from flask_migrate import Migrate from flask_cors import CORS +import sqlalchemy # Internal from db import db @@ -102,9 +103,11 @@ def missing_token_callback(error): def missing_token_callback(error): return jsonify({"message": "No valid access token in request", "error": "authorization required"}), 401 - with app.app_context(): - db.create_all() - + try: + with app.app_context(): + db.create_all() + except sqlalchemy.exc.OperationalError: + pass api.register_blueprint(UserBlueprint) api.register_blueprint(RoomBlueprint) diff --git a/resources/experiment.py b/resources/experiment.py index 9fbf2ca..c2f8297 100644 --- a/resources/experiment.py +++ b/resources/experiment.py @@ -14,7 +14,7 @@ @blp.route("/experiments") class Experiments(MethodView): - @jwt_required() + #@jwt_required() @blp.response(200, ExperimentSchema(many=True)) def get(self): ''' @@ -22,7 +22,7 @@ def get(self): ''' return ExperimentModel.query.all() - @jwt_required() + ##@jwt_required() @blp.arguments(ExperimentSchema) def post(self, experiment_data): ''' @@ -71,7 +71,7 @@ def post(self, experiment_data): @blp.route("/experiments/") class Experiment(MethodView): - @jwt_required() + #@jwt_required() @blp.response(200, ExperimentSchema) def get(self, experiment_id): ''' @@ -79,7 +79,7 @@ def get(self, experiment_id): ''' return ExperimentModel.query.get_or_404(experiment_id) - @jwt_required() + #@jwt_required() def delete(self, experiment_id): ''' Delete a Experiment @@ -101,7 +101,7 @@ def delete(self, experiment_id): return {"Success": True}, 200 - @jwt_required() + #@jwt_required() @blp.arguments(ExperimentUpdateSchema) def patch(self, experiment_data, experiment_id): ''' @@ -121,7 +121,7 @@ def patch(self, experiment_data, experiment_id): @blp.route("/experiments//users/") class ExperimentUsers(MethodView): - @jwt_required() + #@jwt_required() def post(self, experiment_id, user_id): ''' Add a User to an Experiment alert list @@ -141,7 +141,7 @@ def post(self, experiment_id, user_id): return {"Success": True}, 201 - @jwt_required() + #@jwt_required() def delete(self, experiment_id, user_id): ''' Delete a User off an Experiment alert list diff --git a/resources/greenhouse.py b/resources/greenhouse.py index 86dd3c6..8a54d94 100644 --- a/resources/greenhouse.py +++ b/resources/greenhouse.py @@ -15,7 +15,7 @@ @blp.route("/greenhouses/") class Greenhouse(MethodView): - @jwt_required() + #@jwt_required() @blp.response(200, GreenhouseSchema()) def get(self, greenhouse_id): ''' @@ -23,7 +23,7 @@ def get(self, greenhouse_id): ''' return GreenhouseModel.query.get_or_404(greenhouse_id) - @jwt_required() + #@jwt_required() @blp.arguments(GreenhouseUpdateSchema) def patch(self, greenhouse_data, greenhouse_id): ''' @@ -43,7 +43,7 @@ def patch(self, greenhouse_data, greenhouse_id): return {"Success": True}, 201 - @jwt_required() + #@jwt_required() def delete(self, greenhouse_id): ''' Deletes a Greenhouse given an id @@ -57,7 +57,7 @@ def delete(self, greenhouse_id): @blp.route("/greenhouses") class Greenhouses(MethodView): - @jwt_required() + #@jwt_required() @blp.arguments(GreenhouseSchema()) def post(self, greenhouse_data): ''' @@ -81,7 +81,7 @@ def post(self, greenhouse_data): return {"Success": True, "greenhouse_id": new_greenhouse.id}, 201 - @jwt_required() + #@jwt_required() @blp.response(200, GreenhouseSchema(many=True)) def get(self): ''' diff --git a/resources/room.py b/resources/room.py index 2f186a9..7aa3fd9 100644 --- a/resources/room.py +++ b/resources/room.py @@ -19,7 +19,7 @@ def admin_check(jwt_obj): @blp.route("/rooms") class Rooms(MethodView): - #@jwt_required() + ##@jwt_required() @blp.response(200, RoomSchema(many=True)) def get(self): ''' @@ -28,7 +28,7 @@ def get(self): #admin_check(get_jwt()) return RoomModel.query.all() - #@jwt_required(fresh=True) + ##@jwt_required(fresh=True) @blp.arguments(RoomSchema) def post(self, room_data): ''' @@ -56,7 +56,7 @@ def post(self, room_data): @blp.route("/rooms/") class Room(MethodView): - @jwt_required() + #@jwt_required() @blp.response(200, RoomSchema) def get(self, room_id): ''' @@ -64,7 +64,7 @@ def get(self, room_id): ''' return RoomModel.query.get_or_404(room_id) - @jwt_required() + #@jwt_required() @blp.arguments(RoomUpdateSchema) def patch(self, room_data, room_id): ''' @@ -82,7 +82,7 @@ def patch(self, room_data, room_id): return {"Success": True}, 201 - @jwt_required(fresh=True) + #@jwt_required(fresh=True) def delete(self, room_id): ''' Delete a Room -- admin user required and JWT must be fresh @@ -147,7 +147,7 @@ def post(self, measurement_data, room_id): return {"message": "Successfully added new measurement", "duration": agent.duration.second}, 201 - @jwt_required() + #@jwt_required() @blp.arguments(DateRangeSchema) def put(self, dates, room_id): ''' @@ -175,7 +175,7 @@ def put(self, dates, room_id): @blp.route("/rooms/messages") class Messages(MethodView): - @jwt_required() + #@jwt_required() @blp.response(200, MessageSchema(many=True)) def get(self): ''' @@ -190,7 +190,7 @@ class Message(MethodView): Used to work with messages in the seperate rooms. Allows notes to be made about experiment progress. ''' - @jwt_required() + #@jwt_required() @blp.arguments(MessageSchema) def post(self, message_data, room_id): ''' @@ -222,7 +222,7 @@ def post(self, message_data, room_id): return {"Success":True, "message_id": new_message.id}, 201 - @jwt_required() + #@jwt_required() @blp.response(201, MessageSchema(many=True)) def get(self, room_id): ''' @@ -233,7 +233,7 @@ def get(self, room_id): @blp.route("/rooms/messages/") class SpecificMessage(MethodView): - @jwt_required() + #@jwt_required() def delete(self, message_id): ''' Delete a Message @@ -245,7 +245,7 @@ def delete(self, message_id): return {"Success": True}, 200 - @jwt_required() + #@jwt_required() @blp.arguments(MessageUpdateSchema) def patch(self, message_data, message_id): ''' diff --git a/resources/server.py b/resources/server.py index 502af03..30b30f0 100644 --- a/resources/server.py +++ b/resources/server.py @@ -19,7 +19,7 @@ @blp.route("/servers") class Servers(MethodView): - @jwt_required() + #@jwt_required() @blp.arguments(ServerSchema()) def post(self, server_data): ''' @@ -43,7 +43,7 @@ def post(self, server_data): return {"Success": True, "server_id": new_server.id}, 201 - @jwt_required() + #@jwt_required() @blp.response(200, ServerSchema(many=True)) def get(self): return ServerModel.query.all() @@ -51,7 +51,7 @@ def get(self): @blp.route("/servers/") class Server(MethodView): - @jwt_required() + #@jwt_required() def delete(self, server_id): server = ServerModel.query.get_or_404(server_id) @@ -63,7 +63,7 @@ def delete(self, server_id): return {"Success": True}, 200 - @jwt_required() + #@jwt_required() @blp.arguments(ServerUpdateSchema()) def patch(self, server_data, server_id): ''' @@ -81,7 +81,7 @@ def patch(self, server_data, server_id): @blp.route("/servers/agents") class Agents(MethodView): - @jwt_required() + #@jwt_required() @blp.arguments(AgentSchema()) def post(self, agent_data): ''' @@ -113,7 +113,7 @@ def post(self, agent_data): return {"Success": True, "private_key": passcode, "server_ip": server.ip_address,"room_id": room.id, "agent_id": new_agent.id}, 201 - @jwt_required() + #@jwt_required() @blp.response(200, AgentSchema(many=True)) def get(self): return AgentModel.query.all() @@ -122,7 +122,7 @@ def get(self): @blp.route("/servers/agents/") class Agent(MethodView): - @jwt_required() + #@jwt_required() def get(self, agent_id): ''' performed directly after post method for agent, takes private key @@ -211,7 +211,7 @@ def get(self, agent_id): pass - @jwt_required(fresh=True) + #@jwt_required(fresh=True) def delete(self, agent_id): ''' delete an agent by id diff --git a/resources/user.py b/resources/user.py index bebd012..301d4d6 100644 --- a/resources/user.py +++ b/resources/user.py @@ -16,7 +16,7 @@ @blp.route("/register") class UserRegister(MethodView): - #@jwt_required() + ##@jwt_required() @blp.arguments(UserRegisterSchema) def post(self, user_data): ''' @@ -69,7 +69,7 @@ def post(self, user_data): @blp.route("/logout") class UserLogout(MethodView): - @jwt_required() + #@jwt_required() def post(self): ''' logs out a user @@ -83,7 +83,7 @@ def post(self): @blp.route("/refresh") class TokenRefresh(MethodView): - @jwt_required() + #@jwt_required() def post(self): ''' refreshes and maintains access for the client, refreshing every hour is best practice. @@ -102,7 +102,7 @@ def post(self): @blp.route("/users") class Users(MethodView): - @jwt_required() + #@jwt_required() @blp.response(200, UserRegisterSchema(many=True)) def get(self): ''' @@ -114,7 +114,7 @@ def get(self): @blp.route("/users/") class User(MethodView): - @jwt_required() + #@jwt_required() def delete(self, user_id): ''' Deletes a user by id @@ -131,7 +131,7 @@ def delete(self, user_id): return {"Success": True}, 200 - @jwt_required() + #@jwt_required() @blp.arguments(UserUpdateSchema) def patch(self, user_data, user_id): '''