/
views.py
133 lines (112 loc) · 4.13 KB
/
views.py
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
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
from flask import jsonify, request, abort
from application import app
from models import Reclamacao
from mongoengine.queryset.visitor import Q
from util import less_common,most_common
import json
# retorna local com mais reclamações
@app.route("/reclamacao/mais/local", methods=["GET"])
def get_complain_most_locale():
lista = list()
for rec in Reclamacao.objects:
lista.append(rec.local)
l = most_common(lista)
return jsonify({
'local': l,
})
# retorna local com menos reclamações
@app.route("/reclamacao/menos/local", methods=["GET"])
def get_complain_less_locale():
lista = list()
for rec in Reclamacao.objects:
lista.append(rec.local)
l = less_common(lista)
return jsonify({
'local': l,
})
# retorna companhia com mais reclamações
@app.route("/reclamacao/mais/companhia", methods=["GET"])
def get_complain_most_company():
lista = list()
for rec in Reclamacao.objects:
lista.append(rec.companhia)
l = most_common(lista)
return jsonify({
'empresa': l,
})
# retorna companhia com menos reclamações
@app.route("/reclamacao/menos/companhia", methods=["GET"])
def get_complain_less_company():
lista = list()
for rec in Reclamacao.objects:
lista.append(rec.companhia)
#print(lista)
l = less_common(lista)
return jsonify({
'empresa': l,
})
# cria uma reclamação
@app.route("/reclamacao", methods=["POST"])
def add_complain():
reclamacao = Reclamacao()
reclamacao.titulo = str(request.json['titulo'])
reclamacao.descricao = str(request.json['descricao'])
reclamacao.local = str(request.json['local'])
reclamacao.companhia = str(request.json['companhia'])
reclamacao.save()
return jsonify(reclamacao)
# retorna quantidade de reclamações de uma empresa de determinada localidade
@app.route("/reclamacao/<companhia>/<local>", methods=["GET"])
def get_complain_company_region(companhia,local):
reclamacao = len(Reclamacao.objects((Q(companhia=str(companhia)) & Q(local=str(local)))))
return jsonify({
'quantidade_consumidores': reclamacao,
})
# retorna quantidade de reclamações de uma companhia
@app.route("/reclamacao/quantidade/<companhia>", methods=["GET"])
def get_company_quant_comp(companhia):
qntd_reclamacoes = len(Reclamacao.objects(companhia=str(companhia)))
return jsonify({
'quantidade_reclamacoes': qntd_reclamacoes,
})
# retorna todas as reclamações
@app.route("/reclamacao", methods=["GET"])
def get_complain():
reclamacao = Reclamacao.objects().all()
result = reclamacao.to_json()
python_dictionary = json.loads(result)
return jsonify(python_dictionary)
# retorna reclamação especificada por id
@app.route("/reclamacao/<id>", methods=["GET"])
def complain_detail(id):
reclamacao = Reclamacao.objects(id=id).first()
if not reclamacao:
abort(404, message="Reclamacao {} não existe!".format(id))
result = reclamacao.to_json()
python_dictionary = json.loads(result)
return jsonify(python_dictionary)
# atualiza os dados de uma reclamação
@app.route("/reclamacao/<id>", methods=["PUT"])
def complain_update(id):
reclamacao = Reclamacao.objects(id=id).first()
if not reclamacao:
abort(404, message="Reclamacao {} não existe!".format(id))
reclamacao.titulo = request.json['titulo']
reclamacao.descricao = request.json['descricao']
reclamacao.local = request.json['local']
reclamacao.companhia = request.json['companhia']
reclamacao.save()
result = reclamacao.to_json()
python_dictionary = json.loads(result)
return jsonify(python_dictionary)
# deleta uma reclamação
@app.route("/reclamacao/<id>", methods=["DELETE"])
def complain_delete(id):
print(type(id))
reclamacao = Reclamacao.objects(id=id).first()
if not reclamacao:
abort(404, message="Reclamacao {} não existe!".format(id))
reclamacao.delete()
result = reclamacao.to_json()
python_dictionary = json.loads(result)
return jsonify(python_dictionary)