From 442a8cb0e1d202d5c4d406895fb344a07ba79f52 Mon Sep 17 00:00:00 2001 From: maegima Date: Mon, 10 Jan 2022 15:24:11 -0300 Subject: [PATCH 1/5] Created neighboorhoods controller --- api/controller/neighborhoods.py | 22 ++++++++++++++++++++++ api/controller/users.py | 9 --------- app.py | 2 +- 3 files changed, 23 insertions(+), 10 deletions(-) create mode 100644 api/controller/neighborhoods.py diff --git a/api/controller/neighborhoods.py b/api/controller/neighborhoods.py new file mode 100644 index 0000000..08a5273 --- /dev/null +++ b/api/controller/neighborhoods.py @@ -0,0 +1,22 @@ +from flask_cors import cross_origin +from api.util.decorators import required +from api.service.users import Bairros +from api import api +from flask_restx import Resource +import api.model.request.users as request +import api.model.response.users as response +import api.model.response.default as default + +neighborhoods = api.namespace('neighborhoods', description="Neighborhood namespace") + +@neighborhoods.route("") +class User(Resource): + @cross_origin(origin='*', headers=['Content-Type', 'Authorization']) + @required(response=default.message, token=False) + def get(self): + return Bairros() + + @cross_origin(origin='*', headers=['Content-Type', 'Authorization']) + @required(response=response.user_create_message, token=False) + def post(self, data): + return Bairros() \ No newline at end of file diff --git a/api/controller/users.py b/api/controller/users.py index 5d4e007..7102d2b 100644 --- a/api/controller/users.py +++ b/api/controller/users.py @@ -24,15 +24,6 @@ def get(self): def post(self, data): return PostUsers(data) -#TODO: criar controller para bairros? -#TODO: separar POST e GET -#TODO: adicionar json_required POST -@app.route('/bairros', methods=['POST', 'GET']) -@cross_origin(origin='*', headers=['Content-Type', 'Authorization']) -@token_required -def bairros(): - return Bairros() - @users.route('/') class UserId(Resource): @cross_origin(origin='*', headers=['Content-Type', 'Authorization']) diff --git a/app.py b/app.py index 6f71705..2cc841c 100644 --- a/app.py +++ b/app.py @@ -1,7 +1,7 @@ import os from flask_cors import cross_origin from api import app -from api.controller import users, auth, forms, notifications, comments, posts, privileges +from api.controller import users, auth, forms, notifications, comments, posts, privileges, neighborhoods app.register_blueprint(forms.app) app.register_blueprint(comments.app) From e332e50d0cc3c4cb2afe81ed1e63e7d86ff1c083 Mon Sep 17 00:00:00 2001 From: maegima Date: Mon, 10 Jan 2022 15:30:24 -0300 Subject: [PATCH 2/5] Added neighborhoods service --- api/controller/neighborhoods.py | 6 +++--- api/service/neighborhoods.py | 21 +++++++++++++++++++++ 2 files changed, 24 insertions(+), 3 deletions(-) create mode 100644 api/service/neighborhoods.py diff --git a/api/controller/neighborhoods.py b/api/controller/neighborhoods.py index 08a5273..8e3dc71 100644 --- a/api/controller/neighborhoods.py +++ b/api/controller/neighborhoods.py @@ -1,6 +1,6 @@ from flask_cors import cross_origin from api.util.decorators import required -from api.service.users import Bairros +from api.service.neighborhoods import GetNeighborhoods, PostNeighborhoods from api import api from flask_restx import Resource import api.model.request.users as request @@ -14,9 +14,9 @@ class User(Resource): @cross_origin(origin='*', headers=['Content-Type', 'Authorization']) @required(response=default.message, token=False) def get(self): - return Bairros() + return GetNeighborhoods() @cross_origin(origin='*', headers=['Content-Type', 'Authorization']) @required(response=response.user_create_message, token=False) def post(self, data): - return Bairros() \ No newline at end of file + return PostNeighborhoods(data) \ No newline at end of file diff --git a/api/service/neighborhoods.py b/api/service/neighborhoods.py new file mode 100644 index 0000000..555c120 --- /dev/null +++ b/api/service/neighborhoods.py @@ -0,0 +1,21 @@ +from flask import request +from api import db +from api.model.database.users import Bairro + +def PostNeighborhoods(data): + new_bairro = Bairro(nome=data['nome']) + + db.session.add(new_bairro) + db.session.commit() + + return {"message": f"Privilégio criado com sucesso"} + +def GetNeighborhoods(): + bairros = Bairro.query.all() + results = [ + { + "nome": bairro.nome, + "id": bairro.id + } for bairro in bairros] + + return {"count": len(results), "Bairros": results, "message": "success"} \ No newline at end of file From 78d5bfdfaa0a6a9871ffb2f4580e928a4e0f0c51 Mon Sep 17 00:00:00 2001 From: maegima Date: Mon, 10 Jan 2022 15:41:34 -0300 Subject: [PATCH 3/5] Documented get /neighborhoods --- api/controller/neighborhoods.py | 6 +++--- api/model/response/neighborhoods.py | 15 +++++++++++++++ 2 files changed, 18 insertions(+), 3 deletions(-) create mode 100644 api/model/response/neighborhoods.py diff --git a/api/controller/neighborhoods.py b/api/controller/neighborhoods.py index 8e3dc71..54d2f9f 100644 --- a/api/controller/neighborhoods.py +++ b/api/controller/neighborhoods.py @@ -4,7 +4,7 @@ from api import api from flask_restx import Resource import api.model.request.users as request -import api.model.response.users as response +import api.model.response.neighborhoods as response import api.model.response.default as default neighborhoods = api.namespace('neighborhoods', description="Neighborhood namespace") @@ -12,11 +12,11 @@ @neighborhoods.route("") class User(Resource): @cross_origin(origin='*', headers=['Content-Type', 'Authorization']) - @required(response=default.message, token=False) + @required(response=response.neighborhood_list, token=True) def get(self): return GetNeighborhoods() @cross_origin(origin='*', headers=['Content-Type', 'Authorization']) - @required(response=response.user_create_message, token=False) + @required(response=default.message, token=False) def post(self, data): return PostNeighborhoods(data) \ No newline at end of file diff --git a/api/model/response/neighborhoods.py b/api/model/response/neighborhoods.py new file mode 100644 index 0000000..b784e0a --- /dev/null +++ b/api/model/response/neighborhoods.py @@ -0,0 +1,15 @@ +from api import api +from flask_restx import fields + +neighborhood = api.model("Bairro", +{ + "id": fields.Integer(), + "nome": fields.String() +}) + +neighborhood_list = api.model("Lista de Bairros", +{ + "count": fields.Integer(), + "Bairros": fields.List(fields.Nested(neighborhood)), + "message": fields.String() +}) \ No newline at end of file From 0fb882fccc418f2d153df121c1601d2f46822272 Mon Sep 17 00:00:00 2001 From: maegima Date: Mon, 10 Jan 2022 15:48:09 -0300 Subject: [PATCH 4/5] Documented post /neighborhoods --- api/controller/neighborhoods.py | 4 ++-- api/model/request/neighborhoods.py | 7 +++++++ api/service/neighborhoods.py | 2 +- 3 files changed, 10 insertions(+), 3 deletions(-) create mode 100644 api/model/request/neighborhoods.py diff --git a/api/controller/neighborhoods.py b/api/controller/neighborhoods.py index 54d2f9f..acd209d 100644 --- a/api/controller/neighborhoods.py +++ b/api/controller/neighborhoods.py @@ -3,7 +3,7 @@ from api.service.neighborhoods import GetNeighborhoods, PostNeighborhoods from api import api from flask_restx import Resource -import api.model.request.users as request +import api.model.request.neighborhoods as request import api.model.response.neighborhoods as response import api.model.response.default as default @@ -17,6 +17,6 @@ def get(self): return GetNeighborhoods() @cross_origin(origin='*', headers=['Content-Type', 'Authorization']) - @required(response=default.message, token=False) + @required(response=default.message, request=request.neighborhood, token=True) def post(self, data): return PostNeighborhoods(data) \ No newline at end of file diff --git a/api/model/request/neighborhoods.py b/api/model/request/neighborhoods.py new file mode 100644 index 0000000..c4fe35f --- /dev/null +++ b/api/model/request/neighborhoods.py @@ -0,0 +1,7 @@ +from api import api +from flask_restx import fields + +neighborhood = api.model("Create Neighborhood", +{ + "nome": fields.String() +}) \ No newline at end of file diff --git a/api/service/neighborhoods.py b/api/service/neighborhoods.py index 555c120..125dbf6 100644 --- a/api/service/neighborhoods.py +++ b/api/service/neighborhoods.py @@ -8,7 +8,7 @@ def PostNeighborhoods(data): db.session.add(new_bairro) db.session.commit() - return {"message": f"Privilégio criado com sucesso"} + return {"message": f"Bairro criado com sucesso"} def GetNeighborhoods(): bairros = Bairro.query.all() From 228a3370a1da0cd52e16b77af3e3fb28e1941168 Mon Sep 17 00:00:00 2001 From: maegima Date: Mon, 10 Jan 2022 15:59:10 -0300 Subject: [PATCH 5/5] Removed unused imports from users --- api/controller/users.py | 8 ++------ api/service/users.py | 29 +---------------------------- 2 files changed, 3 insertions(+), 34 deletions(-) diff --git a/api/controller/users.py b/api/controller/users.py index 7102d2b..cc86ac5 100644 --- a/api/controller/users.py +++ b/api/controller/users.py @@ -1,16 +1,12 @@ from flask_cors import cross_origin -from api.util.decorators import required, token_required -from api.service.users import GetUsers, GetVerify, PostUsers, Bairros, GetUserId, PutUserId, DelUserId -from flask import Blueprint +from api.util.decorators import required +from api.service.users import GetUsers, GetVerify, PostUsers, GetUserId, PutUserId, DelUserId from api import api from flask_restx import Resource import api.model.request.users as request import api.model.response.users as response import api.model.response.default as default -#TODO: adicionar prefixo para as chamadas -app = Blueprint('users', __name__, url_prefix='') - users = api.namespace('users', description="Users namespace") @users.route("") diff --git a/api/service/users.py b/api/service/users.py index d95ec10..9b485ae 100644 --- a/api/service/users.py +++ b/api/service/users.py @@ -1,6 +1,5 @@ -from flask import request from api import db -from api.model.database.users import Usuario, Bairro +from api.model.database.users import Usuario from api.model.database.notifications import Notificacoes_Conf def UserToDict(user: Usuario): @@ -38,32 +37,6 @@ def GetUsers(): return {"count": len(results), "users": results, "message": "success"} -#TODO: separar POST e GET -#TODO: remover verificação de método -#TODO: remover verificação de json POST -def Bairros(): - if request.method == 'POST': - if request.is_json: - data = request.get_json() - new_bairro = Bairro(nome=data['nome']) - - db.session.add(new_bairro) - db.session.commit() - - return {"message": f"Privilégio criado com sucesso"} - else: - return {"error": "A requisição não foi feita no formato esperado"} - - elif request.method == 'GET': - bairros = Bairro.query.all() - results = [ - { - "nome": bairro.nome, - "id": bairro.id - } for bairro in bairros] - - return {"count": len(results), "Bairros": results, "message": "success"} - def GetUserId(id): user = Usuario.query.get_or_404(id) response = {