def trace(id): request.get_data() identifier = request.json["identifier"] duration = request.json["duration"] user_to_trace = User.query.filter( or_( User.fiscalcode.like(identifier), User.email.like(identifier), User.phonenumber.like(identifier), ) ).first() if user_to_trace: authority = HealthAuthority.query.filter_by(id=id).first() if user_to_trace.marked: contacts = trace_contacts(user_to_trace, duration, send_email=False) return Response(dumps(contacts), status=200, mimetype="application/json") else: mark_helper(authority, user_to_trace, duration, datetime.utcnow()) return Response( [], status=200, mimetype="application/json", ) else: return Response(status=404, mimetype="application/json")
def search(): request.get_data() req_data = request.args query = db.session.query(HealthAuthority) for attr, value in req_data.items(): query = query.filter(getattr(HealthAuthority, attr) == value) authorities = dumps( [ authorities.serialize( [ "id", "name", "email", "fiscalcode", "phonenumber", "country", "state", "city", "lat", "lon", "is_registered", ] ) for authorities in query.all() ] ) return Response(authorities, status=200, mimetype="application/json")
def post(): request.get_data() authority = request.json new_authority = ( db.session.query(HealthAuthority.id).filter_by(email=authority["email"]).first() ) if not new_authority: new_authority = HealthAuthority( email=authority["email"], name=authority["name"], password=authority["password"], phonenumber=authority["phonenumber"], country=authority["country"], state=authority["state"], city=authority["city"], lat=authority["lat"], lon=authority["lon"], ) db.session.add(new_authority) db.session.commit() return Response(status=201) return Response(status=409)
def patch(id): operator = db.session.query(Operator).filter_by(id=id).first() if operator: request.get_data() new_operator = request.json for k, v in new_operator.items(): setattr(operator, k, v) db.session.commit() return Response(status=204) return Response(status=404)
def patch(id): user = db.session.query(User).filter_by(id=id).first() if user: request.get_data() new_user = request.json for k, v in new_user.items(): setattr(user, k, v) db.session.commit() return Response(status=204) return Response(status=404)
def put(): request.get_data() user = request.json user_db = db.session.query(User.id).filter_by(email=user["email"]).first() user_db = User() if not user_db else user_db for k, v in user.items(): setattr(user_db, k, v) user_db.update_avatar_seed() db.session.add(user_db) db.session.commit() return Response(status=204)
def login(): request.get_data() user = request.json email = user["email"] password = user["password"] user = db.session.query(HealthAuthority).filter_by(email=email).first() if user: message = "Success" if user.verify_password(password) else "Wrong credentials" return Response( dumps({"message": message}), status=200, mimetype="application/json" ) else: return Response( dumps({"message": "Authority not found"}), status=404, mimetype="application/json", )
def search(): request.get_data() req_data = request.args query = db.session.query(Operator) for attr, value in req_data.items(): query = query.filter(getattr(Operator, attr) == value) operators = dumps([ operator.serialize([ "id", "firstname", "lastname", "email", "fiscalcode", "phonenumber", "birthdate", "is_registered", ]) for operator in query.all() ]) return Response(operators, status=200, mimetype="application/json")
def post(): request.get_data() operator = request.json new_operator = (db.session.query( Operator.id).filter_by(email=operator["email"]).first()) if not new_operator: new_operator = Operator( firstname=operator["firstname"], lastname=operator["lastname"], email=operator["email"], password=operator["password"], birthdate=datetime.strptime(operator["birthdate"], "%Y-%m-%d"), phonenumber=operator["phonenumber"], fiscalcode=operator["fiscalcode"], ) db.session.add(new_operator) db.session.commit() return Response(status=201) return Response(status=409)
def post(): request.get_data() user = request.json new_user = db.session.query(User.id).filter_by(email=user["email"]).first() if not new_user: new_user = User( firstname=user["firstname"], lastname=user["lastname"], email=user["email"], password=user["password"], birthdate=datetime.strptime(user["birthdate"], "%Y-%m-%d"), phonenumber=user["phonenumber"], fiscalcode=user["fiscalcode"], ) new_user.update_avatar_seed() db.session.add(new_user) db.session.commit() return Response(status=201) return Response(status=409)
def mark(id): request.get_data() identifier = request.json["identifier"] duration = request.json["duration"] user_to_mark = User.query.filter( or_( User.fiscalcode.like(identifier), User.email.like(identifier), User.phonenumber.like(identifier), ) ).first() if user_to_mark: authority = HealthAuthority.query.filter_by(id=id).first() # ok 200 Todo check if marked else "already", 200 if user_to_mark.marked: pass else: mark_helper(authority, user_to_mark, duration, datetime.utcnow()) return Response(status=204, mimetype="application/json") else: return Response(status=404, mimetype="application/json")
def search(): request.get_data() req_data = request.args query = db.session.query(User) for attr, value in req_data.items(): query = query.filter(func.lower(getattr(User, attr)) == value.lower()) users = dumps([ user.serialize([ "id", "avatar_id", "firstname", "lastname", "email", "fiscalcode", "phonenumber", "birthdate", "marked", "is_registered", ]) for user in query.all() ]) return Response(users, status=200, mimetype="application/json")