-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathapp.py
More file actions
101 lines (87 loc) · 3.09 KB
/
app.py
File metadata and controls
101 lines (87 loc) · 3.09 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
from flask import Flask, request
from flask_restful import Resource, Api
from models import Pessoas, Atividades, Usuarios
from flask_httpauth import HTTPBasicAuth
auth = HTTPBasicAuth()
app = Flask(__name__)
api = Api(app)
# USUARIOS = {
# 'Jacque': '123',
# 'Bruno': '321'
# }
@auth.verify_password
def verificacao(login, senha):
if not (login, senha):
return False
return Usuarios.query.filter_by(lofin=login, senha=senha).first()
class Pessoa(Resource):
@auth.login_required
def get(self, nome):
pessoa = Pessoas.query.filter_by(nome=nome).first()
try:
response = {
'nome': pessoa.nome,
'idade': pessoa.idade,
'id': pessoa.id
}
except AttributeError:
response = {
'status': 'erro',
'mensagem': 'Pessoa não encontrada'
}
return response
def put(self, nome):
pessoa = Pessoas.query.filter_by(nome=nome).first()
dados = request.json
if 'nome' in dados:
pessoa.nome = dados['nome']
if 'idade' in dados:
pessoa.idade = dados['idade']
pessoa.save()
response = {
'id': pessoa.id,
'nome': pessoa.nome,
'idade': pessoa.idade
}
return response
def delete(self, nome):
pessoa = Pessoas.query.filter_by(nome=nome).first()
mensagem = 'Pessoa {} excluída com sucesso'.format(pessoa.nome)
pessoa.delete()
return {'status': 'sucesso', 'mensagem': mensagem}
class ListaPessoas(Resource):
@auth.login_required
def get(self):
pessoas = Pessoa.query.all()
response = [{'id': i.id, 'nome': i.nome, 'idade': i.idade} for i in pessoas]
return response
def post(self):
dados = request.json
pessoa = Pessoas(nome=dados['nome'], idade=dados['idade'])
pessoa.save()
response = {
'id': pessoa.id,
'nome': pessoa.nome,
'idade': pessoa.idade
}
return response
class ListaAtividade(Resource):
def get(self):
atividades = Atividades.query.all()
response = [{'id': i.id, 'nome': i.nome, 'pessoa': i.pessoa.nome} for i in atividades]
return response
def post(self):
dados = request.json
pessoa = Pessoas.query.filter_by(nome=dados['pessoa']).first()
atividade = Atividades(nome=dados['nome'], pessoa=pessoa)
response = {
'pessoa': atividade.pessoa.nome,
'nome': atividade.nome,
'id': atividade.id
}
return response
api.add_resource(Pessoa, '/pessoa/<string:nome>/')
api.add_resource(ListaPessoas, '/pessoa/')
api.add_resource(ListaAtividade, '/atividades/')
if __name__ == '__main__':
app.run(debug=True)