Skip to content

Instantly share code, notes, and snippets.

@felipebastosweb
Created April 11, 2024 18:11
Show Gist options
  • Save felipebastosweb/6edab1622757561deb985c6a825916d3 to your computer and use it in GitHub Desktop.
Save felipebastosweb/6edab1622757561deb985c6a825916d3 to your computer and use it in GitHub Desktop.
Exemplo que como transformar em JSON os dados obtidos no mongodb
"""
Routes and apis for the flask application.
"""
import json
from bson import json_util
from CondoManagerAPI.database import *
from flask import request, jsonify
from CondoManagerAPI import app
@app.route('/api/users', methods=['GET'])
def api_users_get():
docs = [doc for doc in db.users.find()]
return json.dumps(docs, default=json_util.default)
@app.route('/api/companies', methods=['GET'])
def api_companies_get():
docs = [doc for doc in db.companies.find()]
return json.dumps(docs, default=json_util.default)
@app.route('/api/condominiums', methods=['GET'])
def api_condominiums_get():
docs = [doc for doc in db.condominiums.find()]
return json.dumps(docs, default=json_util.default)
@app.route('/api/employees', methods=['GET'])
def api_employees_get():
docs = [doc for doc in db.employees.find()]
return json.dumps(docs, default=json_util.default)
@app.route('/api/elections', methods=['GET'])
def api_elections_get():
docs = [doc for doc in db.elections.find()]
return json.dumps(docs, default=json_util.default)
@app.route('/api/meetings', methods=['GET'])
def api_meetings_get():
docs = [doc for doc in db.meetings.find()]
return json.dumps(docs, default=json_util.default)
@felipebastosweb
Copy link
Author

import json
from bson import json_util
from CondoManagerAPI.database import *
from flask import request, jsonify

from CondoManagerAPI import app

@app.route('/api/', methods=['GET'])
def api_resource_get(resource):
collection = db[resource]
docs = [doc for doc in collection.find()]
return json.dumps(docs, default=json_util.default)

@felipebastosweb
Copy link
Author

felipebastosweb commented Apr 11, 2024

proposta de simplificação de rota para todos os recursos restrito ao verbo GET. Será necessário fazer ajustes

@felipebastosweb
Copy link
Author

resources = ['users', 'companies', 'condominiums', 'employees', 'elections', 'meetings']

@app.route('/api/', methods=['GET'])
def api_resource_get(resource):
if resource not in resources:
return jsonify({'error': 'Recurso não encontrado'}), 404

collection = db[resource]
docs = [doc for doc in collection.find()]
return json.dumps(docs, default=json_util.default)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment