Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
22 changes: 22 additions & 0 deletions api/controller/neighborhoods.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
from flask_cors import cross_origin
from api.util.decorators import required
from api.service.neighborhoods import GetNeighborhoods, PostNeighborhoods
from api import api
from flask_restx import Resource
import api.model.request.neighborhoods as request
import api.model.response.neighborhoods 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=response.neighborhood_list, token=True)
def get(self):
return GetNeighborhoods()

@cross_origin(origin='*', headers=['Content-Type', 'Authorization'])
@required(response=default.message, request=request.neighborhood, token=True)
def post(self, data):
return PostNeighborhoods(data)
17 changes: 2 additions & 15 deletions api/controller/users.py
Original file line number Diff line number Diff line change
@@ -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("")
Expand All @@ -24,15 +20,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('/<int:id>')
class UserId(Resource):
@cross_origin(origin='*', headers=['Content-Type', 'Authorization'])
Expand Down
7 changes: 7 additions & 0 deletions api/model/request/neighborhoods.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
from api import api
from flask_restx import fields

neighborhood = api.model("Create Neighborhood",
{
"nome": fields.String()
})
15 changes: 15 additions & 0 deletions api/model/response/neighborhoods.py
Original file line number Diff line number Diff line change
@@ -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()
})
21 changes: 21 additions & 0 deletions api/service/neighborhoods.py
Original file line number Diff line number Diff line change
@@ -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"Bairro 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"}
29 changes: 1 addition & 28 deletions api/service/users.py
Original file line number Diff line number Diff line change
@@ -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):
Expand Down Expand Up @@ -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 = {
Expand Down
2 changes: 1 addition & 1 deletion app.py
Original file line number Diff line number Diff line change
@@ -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)
Expand Down