def put(self, id): args = get_args() if not args: return send_message("Parâmetros inválidos!", 422) admin = Admin.query.get(id) if not admin: return send_message("O administrador {} não existe".format(id), 404) if admin.nome != args["nome"]: admin.nome = args["nome"] if admin.email != args["email"]: check_email = Admin.query.filter( Admin.email == args["email"]).all() if not check_email: admin.email = args["email"] else: return send_message("Este email já existe".format(id), 409) admin.hash_password(args["password"]) admin.update() return schema.dump(admin).data, 200
def put(self, id): args = get_args() if not args: return send_message("Parâmetros inválidos", 422) user = Usuario.query.get(id) if not user.alive: return send_message("O usuário {} não existe".format(id)) if user.rfid != args["rfid"]: rfid_query = Usuario.query.filter(Usuario.rfid == args["rfid"]) if rfid_query.all(): return send_message("RFID existente", 409) else: user.rfid = args["rfid"] if user.nome != args["nome"]: user.nome = args["nome"] if user.email != args["email"]: email_query = Usuario.query.filter(Usuario.email == args["email"]) if email_query.all(): return send_message("Email existente", 409) else: user.email = args["email"] if user.tipo != args["tipo"]: user.tipo = args["tipo"] new_user = gerencia_acessos(user, args["direito_acesso"]) user.update() return schema.dump(new_user).data
def put(self, id): args = get_args() if not args: return send_message("Parâmetros inválidos!", 422) horario = Horario.query.get(id) if not horario or not horario.alive: return send_message("O horário {} não existe".format(id), 404) if check_horario(args): return send_message("Este horário já existe", 409) if args["hora_inicio"] != horario.hora_inicio: horario.hora_inicio = args["hora_inicio"] if args["hora_fim"] != horario.hora_fim: horario.hora_fim = args["hora_fim"] if args["dia"] != horario.dia: horario.dia = args["dia"] if args["tipo_user"] != horario.tipo_user: horario.tipo_user = args["tipo_user"] horario.last_update = datetime.now() horario.update() return schema.dump(horario).data
def delete(self, id): adms = Admin.query.all() if len(adms) == 1: return send_message("Há apenas um administrador", 403) try: admin = Admin.query.get(id) if not admin: return send_message("O administrador {} não existe".format(id), 404) admin.delete(admin) except SQLAlchemyError as e: return rollback(e, db) else: return None, 204
def post(self): args = get_args() if not args: return send_message("Parâmetros inválidos", 422) user = (Usuario.query.filter(Usuario.alive == False).filter( Usuario.email == args["email"]).first()) if user: return self.resurrect(user, args) else: try: user = Usuario(args["nome"], args["email"], args["rfid"], args["tipo"]) user.add(user) if args["direito_acesso"]: try: for sala in args["direito_acesso"]: acesso = DireitoAcesso(user.id, sala["id_sala"]) acesso.add(acesso) except SQLAlchemyError as e: return rollback(e, db) query = Usuario.query.get(user.id) except SQLAlchemyError as e: return rollback(e, db) else: return schema.dump(query).data, 201
def delete(self, id): horario = Horario.query.get(id) if not horario.alive: return send_message("O horário {} não existe".format(id), 404) horario.alive = False horario.last_update = datetime.now() horario.update() return None, 204
def get(self, id): user = Usuario.query.get(id) if not user.alive: return send_message("O usuário {} não existe".format(id)) user = user.__dict__.copy() user["direito_acesso"] = get_acessos(id) return schema.dump(user).data, 200
def put(self, id): args = check_args() if not args: return send_message("O nome da sala não pode ser vazio", 422) sala = Sala.query.get(id) if not sala.alive: return send_message("A sala {} não existe".format(id)) if sala.nome != args["nome"]: sala.nome = args["nome"] try: sala.last_update = datetime.now() sala.update() except SQLAlchemyError as e: return rollback(e, db) else: return schema.dump(sala).data
def post(self): args = get_args() if not args: return send_message("Parâmetros inválidos!", 422) try: admin = Admin(args["nome"], args["email"], args["password"]) admin.add(admin) query = Admin.query.get(admin.id) except SQLAlchemyError as e: return rollback(e, db) else: return schema.dump(query).data, 201
def delete(self, id): try: user = Usuario.query.get(id) if not user.alive: return send_message("O usuário {} não existe".format(id)) user.alive = False for acesso in user.direito_acesso: acesso.alive = False user.last_update = datetime.now() user.update() except SQLAlchemyError as e: return rollback(e, db) else: return None, 204
def resurrect(self, user, args): user.alive = True user.nome = args["nome"] user.tipo = args["tipo"] if user.rfid != args["rfid"]: if Usuario.query.filter(Usuario.rfid == args["rfid"]).all(): return send_message("RFID existente", 409) else: user.rfid = args["rfid"] new_user = gerencia_acessos(user, args["direito_acesso"]) user.update() return schema.dump(new_user).data, 201
def post(self): args = check_args() if not args: return send_message("O nome da sala não pode ser vazio", 422) sala = (Sala.query.filter(Sala.alive == False).filter( Sala.nome == args["nome"]).first()) if sala: sala.alive = True sala.last_update = datetime.now() sala.update() return schema.dump(sala).data, 201 else: try: sala = Sala(args["nome"]) sala.add(sala) query = Sala.query.order_by(Sala.id.desc()).first() except SQLAlchemyError as e: return rollback(e, db) else: return schema.dump(query).data, 201
def post(self): args = get_args() horario_check = check_horario(args) if horario_check and not horario_check.alive: query = Horario.query.get(horario_check.id) query.alive = True query.last_update = datetime.now() query.update() return schema.dump(query).data, 201 elif horario_check and horario_check.alive: return send_message("Este horário já existe", 409) try: horario = Horario(args["id_sala"], args["dia"], args["hora_inicio"], args["hora_fim"], args["tipo_user"]) horario.add(horario) query = Horario.query.get(horario.id) except SQLAlchemyError as e: return rollback(e, db) else: return schema.dump(query).data, 201
def delete(self, id): try: sala = Sala.query.get(id) if not sala or not sala.alive: return send_message("A sala {} não existe".format(id)) sala.alive = False horarios = (Horario.query.filter(Horario.id_sala == id).all()) acessos = (DireitoAcesso.query.filter( DireitoAcesso.id_sala == id).all()) for acesso in acessos: acesso.alive = False for horario in horarios: horario.alive = False sala.last_update = datetime.now() sala.update() except SQLAlchemyError as e: return rollback(e, db) else: return None, 204
def get(self, id): horario = Horario.query.get(id) if not horario.alive: return send_message("O horário {} não existe".format(id), 404) return schema.dump(horario).data, 200
def get(self, id): admin = Admin.query.get(id) if not admin: return send_message("O administrador {} não existe".format(id), 404) return schema.dump(admin).data, 200
def get(self, id): sala = Sala.query.get(id) if not sala.alive: return send_message("A sala {} não existe".format(id)) return schema.dump(sala).data