-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathapp.py
86 lines (76 loc) · 1.99 KB
/
app.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
from flask import Flask, jsonify, request
from dbutils import MONGO_URI
from dbutils import db_connect
from dbutils import db_insert_product
from dbutils import db_find_one
from dbutils import db_update_one
from dbutils import db_find_all
from dbutils import db_delete_one
app = Flask(__name__)
# Inserta en la colletion de Productos
products = db_connect(MONGO_URI, 'mi_app', 'products')
# Testing Route
@app.route('/ping', methods=['GET'])
def ping():
return jsonify({'response': 'pong!'})
# Create Data Routes
@app.route('/products', methods=['POST'])
def addProduct():
product = {
'name': request.json['name'],
'price': request.json['price'],
'quantity': request.json['quantity']
}
db_insert_product(products, product)
return jsonify(
{
'status': 200,
'message': 'Successful '
}
)
# List All Data Route
@app.route('/products', methods=['GET'])
def showProducts():
output = []
for p in db_find_all(products):
output.append(
{
'name' : p['name'],
'price' : p['price'],
'quantity' : p['quantity']
}
)
return jsonify(
{
'Products' : output
}
)
# Get by name Data Route
@app.route('/products/<string:name>', methods=['GET'])
def getProduct(name):
query = db_find_one(products, {'name': name})
if query:
output = {
'name': query['name'],
'price': query['price'],
'quantity': query['quantity']
}
else:
output = "No such name"
return jsonify(
{
'Product' : output
}
)
# Delete by Name Data Route
@app.route('/products/<string:name>', methods=['DELETE'])
def deleteProduct(name):
query = db_delete_one(products, {'name': name})
return jsonify(
{
'status': 200,
'message': 'Product Delete '
}
)
if __name__ == '__main__':
app.run(debug=True, port=4000)