PW-567 add the old canvas formula

This commit is contained in:
Martin
2016-10-31 17:57:11 +01:00
parent cbee61b564
commit bf9fc3ae5a
10 changed files with 352 additions and 35 deletions
+46 -29
View File
@@ -2,33 +2,33 @@ from flask import Blueprint, request, jsonify, abort
from api.models.product import Material
from api.models.contract_customer import ContractCustomer
from api.models import market as market_model
from api.lib.prices import wallpaper_price, canvas_price
from api.lib.prices import wallpaper_price, old_canvas_price, old_canvas_diy_frame_price
from api.lib.limits import calculate_canvas_limits
from api.validators import validate_territory, validate_number, validate_keys_exists
mod = Blueprint('prices', __name__, url_prefix='/prices')
def get_reseller():
dealerurl = request.args.get('dealerurl')
territory = request.args.get('territory')
if dealerurl and territory:
return ContractCustomer.query.reseller_store(dealerurl, territory)
return None
@mod.route("/wallpaper", methods=['GET'])
def wallpaper():
validate_keys_exists(request.args, 'width', 'height', 'territory')
validate_number(request.args.get('width'), request.args.get('height'))
validate_territory(request.args.get('territory'))
width = request.args.get('width', type=int)
height = request.args.get('height', type=int)
market = market_model.from_territory(request.args.get('territory'))
params = {
'width': request.args.get('width', type=int),
'height': request.args.get('height', type=int),
'market': market,
}
dealerurl = request.args.get('dealerurl')
if dealerurl:
reseller = ContractCustomer.query.filter_by(
dealerstore=True, dealerurl=dealerurl, country=market.territory).first()
if reseller:
params['reseller'] = reseller
reseller = get_reseller()
materials = Material.query.wallpapers().all()
data = []
@@ -36,7 +36,7 @@ def wallpaper():
data.append({
'material': material.name,
'material_id': material.id,
'price': wallpaper_price(material_price=material.price, **params),
'price': wallpaper_price(width, height, material.price, market, reseller=reseller),
})
return jsonify(data=data)
@@ -47,28 +47,45 @@ def canvas():
validate_keys_exists(request.args, 'width', 'height', 'territory')
validate_number(request.args.get('width'), request.args.get('height'))
validate_territory(request.args.get('territory'))
market = market_model.from_territory(request.args.get('territory'))
params = {
'width': request.args.get('width', type=int),
'height': request.args.get('height', type=int),
'market': market
}
dealerurl = request.args.get('dealerurl')
if dealerurl:
reseller = ContractCustomer.query.filter_by(
dealerstore=True, dealerurl=dealerurl, country=market.territory).first()
if reseller:
params['reseller'] = reseller
reseller = get_reseller()
material = Material.query.canvas().first()
data = []
for framed in [True, False]:
width, height = calculate_canvas_limits(
request.args.get('width', type=int),
request.args.get('height', type=int),
framed
)
data.append({
'framed': framed,
'price': canvas_price(framed=framed, **params)
'width': width,
'height': height,
'price': old_canvas_price(width, height, material.price, market, reseller=reseller, framed=framed)
})
return jsonify(data=data)
@mod.route('/diy-frame', methods=['GET'])
def diy_frame():
validate_keys_exists(request.args, 'width', 'height', 'territory')
validate_number(request.args.get('width'), request.args.get('height'))
validate_territory(request.args.get('territory'))
market = market_model.from_territory(request.args.get('territory'))
reseller = get_reseller()
width, height = calculate_canvas_limits(
request.args.get('width', type=int),
request.args.get('height', type=int),
framed=True
)
data = [{
'width': width,
'height': height,
'price': old_canvas_diy_frame_price(width, height, market, reseller=reseller)
}]
return jsonify(data=data)