diff --git a/api_server/models.py b/api_server/models.py new file mode 100644 index 0000000..90cd500 --- /dev/null +++ b/api_server/models.py @@ -0,0 +1,20 @@ +from flask_sqlalchemy import SQLAlchemy +import sqlalchemy as sa + +db = SQLAlchemy() + + +class User(db.Model): + id = sa.Column(sa.Integer, primary_key=True) + name = sa.Column(sa.String) + email = sa.Column(sa.String) + personal_number = sa.Column(sa.String, unique=True) + rfid_number = sa.Column(sa.String, unique=True) + active = sa.Column(sa.Boolean) + + +class TimeStamp(db.Model): + id = sa.Column(sa.Integer, primary_key=True) + id_user = sa.Column(sa.ForeignKey(User.id)) + create_time = sa.Column(sa.TIMESTAMP) + timestamp = sa.Column(sa.TIMESTAMP) diff --git a/api_server/routes.py b/api_server/routes.py index 349b8c5..e2226ea 100644 --- a/api_server/routes.py +++ b/api_server/routes.py @@ -1,36 +1,68 @@ import os -from flask import Flask -from flask_restx import Api, Resource - +from flask import Flask, request, jsonify +from flask_restful import Resource, Api +from models import db, User, TimeStamp app = Flask(__name__) api = Api(app) app.config['SECRET_KEY'] = 'dksldkkwkdkllk' # todo: os.environ['TIMESTAMP_SECRET_KEY'] +app.config["SQLALCHEMY_DATABASE_URI"] = "sqlite:///project.db" -ns = api.namespace("api/v1.0", description="my time to rent") +db.init_app(app) -@ns.route('/user/') -class Hello(Resource): +class ResUser(Resource): def get(self, id): - return {'hello': "Hello"} + print(id) + if int(id) == 1: + return {'hello': "Hello"}, 200 + else: + return {'value': "Not Found"}, 203 def post(self, id): pass - def update(self, id): - pass - def delete(self, id): - pass + user = User.get(id) + user.active = False - def create(self, id): + +class ResManageUsers(Resource): + + def get(self): + users = db.session.execute(db.select(User).order_by(User.name)).scalar() + return (users.name) + + def post(self): + name = request.form['name'] + email = request.form['name'] + personal_number = request.form['personal_number'] + rfid_number = request.form['rfid_number'] + active = request.form['active'] + user = User(name=name, email=email, personal_number=personal_number, rfid_number=rfid_number, active=int(active)) + db.session.add(user) + db.session.commit() + return {"success": "saved"}, 200 + + +class ResManageUser(Resource): + def get(self, id): + user = db.session.execute(db.select(User).where(User.id == id)).scalar() + return user.name + + def post(self, id): pass +api.add_resource(ResManageUsers, "/manage/users") +api.add_resource(ResManageUser, "/manage/user/") +api.add_resource(ResUser, "/user/") + +with app.app_context(): + db.create_all() if __name__ == '__main__': app.run(debug=True)