TimeStamp/api_server/app.py

96 lines
2.3 KiB
Python

import os
from datetime import datetime
from flask import Flask, jsonify, request
from flask_sqlalchemy import SQLAlchemy
from models import db, User, TimeStamp
app = Flask(__name__)
app.config['SECRET_KEY'] = 'dksldkkwkdkllk' # todo: os.environ['TIMESTAMP_SECRET_KEY']
app.config["SQLALCHEMY_DATABASE_URI"] = "sqlite:///project.db"
@app.route("/")
def index_handler():
return "hallo"
# USER SECTION
@app.route("/user/all")
def get_all_users():
users = db.session.execute(db.select(User)).scalars()
all = users.all()
return jsonify(all), 200
@app.route("/user/<int:id>")
def get_user_by_id(id):
user = db.session.execute(db.select(User)).scalar()
return user.name, 200
@app.route("/user/new", methods=['POST'])
def create_new_user():
user = User(name=request.form.get('name'), surname=request.form.get('surname'),
email=request.form.get('email'), mtan=request.form.get('mtan'))
db.session.add(user)
db.session.commit()
return {'success': 'ok'}, 200
@app.route("/user/update/<int:id>", methods=['POST'])
def update_user_by_id(id):
print(id)
user = db.session.execute(db.select(User).where(User.id == id)).scalars().one()
user.name = request.form.get('name')
user.email = request.form.get('email')
print(user.name)
db.session.commit()
return {'success': 'ok'}, 200
#END USER SECTION
#TIMESTAMP SECTION
@app.route("/")
def get_last_timestamp_by_id(id):
timestamp = db.session.execute(db.select(TimeStamp).where(TimeStamp.user_id == id).order).scalars().one()
return timestamp, 200
@app.route("/timestamp/new/<int:id>", methods=['POST'])
def put_timestamp_by_id(id):
timestamp = TimeStamp(user_id=id, create=datetime.now(), timestamp=datetime.strptime(request.form.get('timestamp'), '%Y/%m/%d %H:%M:%S'))
db.session.add(timestamp)
db.session.commit()
return {"success": "ok"}, 200
@app.route("/timestamp/new/<int:mtan>", methods=['POST'])
def put_timestamp_by_mtan(mtan):
timestamp = TimeStamp()
@app.route("/timestamp/all/<int:id>")
def get_timestamps_by_id(id):
timestamps = db.session.execute(db.select(TimeStamp).where(TimeStamp.user_id == id)).scalars()
return timestamps.all(), 200
#END TIMESTAMP SECTION
#RFID SECTION
#END RFID SECTION
db.init_app(app)
with app.app_context():
db.create_all()
if __name__ == '__main__':
app.run(debug=True)