Exemple #1
0
    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
Exemple #2
0
    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
Exemple #3
0
    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
Exemple #4
0
 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
Exemple #5
0
    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
Exemple #6
0
 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
Exemple #7
0
    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
Exemple #9
0
    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
Exemple #10
0
 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
Exemple #11
0
    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
Exemple #13
0
    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
Exemple #15
0
 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
Exemple #16
0
 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