P5-6491 use market instead of territory for price calculations (#37)
This commit is contained in:
+39
-29
@@ -1,10 +1,14 @@
|
||||
from flask import Blueprint, request, jsonify, abort
|
||||
from api.helpers import check_api_key
|
||||
from api.validators import validate_territory, validate_number, validate_any_of
|
||||
from api.models.inquiry import Inquiry
|
||||
from api.models.product import Material, Product, PrintProduct
|
||||
from api.models.contract_customer import ContractCustomer
|
||||
from api.models import market as market_model
|
||||
from api.validators import validate_number, validate_any_of, validate_exists
|
||||
from api.models import (
|
||||
Inquiry,
|
||||
Market,
|
||||
Material,
|
||||
Product,
|
||||
PrintProduct,
|
||||
ContractCustomer,
|
||||
)
|
||||
from api.lib import pwinty
|
||||
from api.lib.prices import (
|
||||
wallpaper_price,
|
||||
@@ -41,11 +45,12 @@ def get_designer():
|
||||
|
||||
@mod.route("/wallpaper", methods=["GET"])
|
||||
@validate_number("width", "height")
|
||||
@validate_territory("territory")
|
||||
@validate_exists("market")
|
||||
def wallpaper():
|
||||
width = request.args.get("width", type=int)
|
||||
height = request.args.get("height", type=int)
|
||||
market = market_model.from_territory(request.args.get("territory"))
|
||||
market_id = request.args.get("market", type=int)
|
||||
market = Market.query.get_or_404(market_id)
|
||||
designer = get_designer()
|
||||
reseller = get_reseller()
|
||||
|
||||
@@ -100,9 +105,10 @@ def wallpaper():
|
||||
|
||||
@mod.route("/canvas", methods=["GET"])
|
||||
@validate_number("width", "height")
|
||||
@validate_territory("territory")
|
||||
@validate_exists("market")
|
||||
def canvas():
|
||||
market = market_model.from_territory(request.args.get("territory"))
|
||||
market_id = request.args.get("market", type=int)
|
||||
market = Market.query.get_or_404(market_id)
|
||||
reseller = get_reseller()
|
||||
designer = get_designer()
|
||||
|
||||
@@ -148,11 +154,12 @@ def canvas():
|
||||
|
||||
@mod.route("/poster", methods=["GET"])
|
||||
@validate_number("width", "height")
|
||||
@validate_territory("territory")
|
||||
@validate_exists("market")
|
||||
def poster():
|
||||
market_id = request.args.get("market", type=int)
|
||||
width = request.args.get("width", type=int)
|
||||
height = request.args.get("height", type=int)
|
||||
market = market_model.from_territory(request.args.get("territory"))
|
||||
market = Market.query.get_or_404(market_id)
|
||||
reseller = get_reseller()
|
||||
designer = get_designer()
|
||||
|
||||
@@ -192,9 +199,10 @@ def poster():
|
||||
|
||||
@mod.route("/diy-frame", methods=["GET"])
|
||||
@validate_number("width", "height")
|
||||
@validate_territory("territory")
|
||||
@validate_exists("market")
|
||||
def diy_frame():
|
||||
market = market_model.from_territory(request.args.get("territory"))
|
||||
market_id = request.args.get("market", type=int)
|
||||
market = Market.query.get_or_404(market_id)
|
||||
reseller = get_reseller()
|
||||
width, height = calculate_canvas_limits(
|
||||
request.args.get("width", type=int),
|
||||
@@ -220,10 +228,11 @@ def diy_frame():
|
||||
|
||||
@mod.route("/poster-hanger", methods=["GET"])
|
||||
@validate_number("width")
|
||||
@validate_territory("territory")
|
||||
@validate_exists("market")
|
||||
def poster_hanger():
|
||||
market_id = request.args.get("market", type=int)
|
||||
width = request.args.get("width", type=int)
|
||||
market = market_model.from_territory(request.args.get("territory"))
|
||||
market = Market.query.get_or_404(market_id)
|
||||
reseller = get_reseller()
|
||||
|
||||
data = [
|
||||
@@ -242,11 +251,12 @@ def poster_hanger():
|
||||
|
||||
|
||||
@mod.route("/framed-print", methods=["GET"])
|
||||
@validate_territory("territory")
|
||||
@validate_any_of("sku", pwinty.SKU_CODES)
|
||||
@validate_exists("market")
|
||||
def framed_print():
|
||||
market_id = request.args.get("market", type=int)
|
||||
sku = request.args.get("sku", type=str)
|
||||
market = market_model.from_territory(request.args.get("territory"))
|
||||
market = Market.query.get_or_404(market_id)
|
||||
reseller = get_reseller()
|
||||
designer = get_designer()
|
||||
|
||||
@@ -547,12 +557,12 @@ def inquiry(inquiry_id):
|
||||
return jsonify(data)
|
||||
|
||||
|
||||
@mod.route("/list-prices/<string:territory>/wallpaper")
|
||||
def list_prices_wallpaper(territory):
|
||||
@mod.route("/list-prices/<int:market_id>/wallpaper")
|
||||
def list_prices_wallpaper(market_id):
|
||||
wallpapers = PrintProduct.query.wallpapers().all()
|
||||
result = {}
|
||||
material = Material.query.filter(Material.name == "standard-wallpaper").one()
|
||||
market = market_model.from_territory(territory)
|
||||
market = Market.query.get_or_404(market_id)
|
||||
|
||||
for wallpaper in wallpapers:
|
||||
result[wallpaper.id] = wallpaper_m2_price(
|
||||
@@ -561,10 +571,10 @@ def list_prices_wallpaper(territory):
|
||||
return jsonify(result)
|
||||
|
||||
|
||||
@mod.route("/list-prices/<string:territory>/canvas")
|
||||
def list_prices_canvas(territory):
|
||||
@mod.route("/list-prices/<int:market_id>/canvas")
|
||||
def list_prices_canvas(market_id):
|
||||
canvases = PrintProduct.query.canvases().all()
|
||||
market = market_model.from_territory(territory)
|
||||
market = Market.query.get_or_404(market_id)
|
||||
|
||||
result = {}
|
||||
for canvas in canvases:
|
||||
@@ -578,10 +588,10 @@ def list_prices_canvas(territory):
|
||||
return jsonify(result)
|
||||
|
||||
|
||||
@mod.route("/list-prices/<string:territory>/poster")
|
||||
def list_prices_posters(territory):
|
||||
@mod.route("/list-prices/<int:market_id>/poster")
|
||||
def list_prices_posters(market_id):
|
||||
posters = PrintProduct.query.posters().all()
|
||||
market = market_model.from_territory(territory)
|
||||
market = Market.query.get_or_404(market_id)
|
||||
|
||||
result = {}
|
||||
for poster in posters:
|
||||
@@ -595,8 +605,8 @@ def list_prices_posters(territory):
|
||||
return jsonify(result)
|
||||
|
||||
|
||||
@mod.route("/list-prices/<string:territory>/framed-print")
|
||||
def list_prices_framed_prints(territory):
|
||||
@mod.route("/list-prices/<int:market_id>/framed-print")
|
||||
def list_prices_framed_prints(market_id):
|
||||
from api.extensions import db
|
||||
from types import SimpleNamespace
|
||||
|
||||
@@ -611,7 +621,7 @@ def list_prices_framed_prints(territory):
|
||||
)
|
||||
rows = db.session.execute(query, {"group": 8})
|
||||
|
||||
market = market_model.from_territory(territory)
|
||||
market = Market.query.get_or_404(market_id)
|
||||
|
||||
result = {}
|
||||
for row in rows:
|
||||
|
||||
Reference in New Issue
Block a user