P5-6517 add market resource (#32)

This commit is contained in:
Martin Carlsson
2021-01-12 15:09:48 +01:00
committed by GitHub
parent 1f016ee0c8
commit bd1b0e642b
5 changed files with 86 additions and 1 deletions
+39
View File
@@ -0,0 +1,39 @@
from flask import Blueprint, request, jsonify
from api import db
from api.models import Market
from api.helpers import pagination_to_dict, check_api_key
mod = Blueprint("markets", __name__, url_prefix="/markets")
mod.before_request(check_api_key)
@mod.route("/", methods=["GET"])
def list():
page = request.args.get("page", 1, type=int)
per_page = request.args.get("per_page", 20, type=int)
query = Market.query.order_by(Market.id.asc())
pagination = query.paginate(page=page, per_page=per_page)
j = {
"pagination": pagination_to_dict(pagination),
"data": [item.to_json() for item in pagination.items],
}
return jsonify(j)
@mod.route("/<int:id>", methods=["GET"])
def show(id):
market = Market.query.get_or_404(id)
return jsonify(market.to_json())
@mod.route("/<int:id>", methods=["PUT"])
def update(id):
market = Market.query.get_or_404(id)
data = request.json
for k, v in data.items():
setattr(market, k, v)
db.session.add(market)
db.session.commit()
return jsonify(market.to_json())