You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
40 lines
890 B
40 lines
890 B
""" Simple flask app"""
|
|
from flask import Flask, request # type: ignore
|
|
import pymongo # type: ignore
|
|
from os import getenv
|
|
from json import loads
|
|
|
|
if getenv('MONGO_URL') is None:
|
|
raise EnvironmentError('MONGO_URL not set')
|
|
|
|
|
|
app = Flask(__name__)
|
|
db = pymongo.MongoClient(getenv('MONGO_URL')).test.col
|
|
|
|
|
|
@app.route('/', methods=['GET'])
|
|
def get_data():
|
|
data = []
|
|
for x in db.find():
|
|
del x['_id']
|
|
data.append(x)
|
|
return {"data": data}
|
|
|
|
|
|
@app.route('/', methods=['POST'])
|
|
def add_data():
|
|
txt = request.get_data(as_text=True)
|
|
try:
|
|
data = loads(txt)
|
|
db.insert_one(data.copy())
|
|
return {'message': 'success', 'data': data}
|
|
except Exception as e:
|
|
return {
|
|
'message': 'error',
|
|
'data': txt,
|
|
'error': str(e)
|
|
}
|
|
|
|
|
|
if __name__ == '__main__':
|
|
app.run(host='0.0.0.0', port=8080)
|
|
|