forked from M-Labs/web2019
sovanna
0758e2d2ba
Also, adds the JSON configuration in order to be sent to the client as a "reminder" of what he sends
68 lines
2.0 KiB
Python
68 lines
2.0 KiB
Python
from flask import current_app
|
|
from flask import json
|
|
from flask import jsonify
|
|
from flask import make_response
|
|
from flask import request
|
|
from flask_mail import Message
|
|
from app.api import bp
|
|
from app import mail
|
|
|
|
|
|
@bp.after_request
|
|
def after(response):
|
|
response.headers["Access-Control-Allow-Origin"] = "*"
|
|
response.headers["Access-Control-Allow-Headers"] = "*"
|
|
return response
|
|
|
|
|
|
@bp.route("/rfq", methods=["POST"])
|
|
def send_rfq():
|
|
payload = request.json
|
|
payload = json.loads(json.htmlsafe_dumps(payload))
|
|
|
|
if payload is None:
|
|
resp = jsonify(error="invalid data")
|
|
return make_response(resp, 400)
|
|
|
|
if "email" not in payload:
|
|
resp = jsonify(error="missing email")
|
|
return make_response(resp, 400)
|
|
|
|
if "body" not in payload:
|
|
resp = jsonify(error="missing body")
|
|
return make_response(resp, 400)
|
|
|
|
if "configuration" not in payload:
|
|
resp = jsonify(error="missing configuration")
|
|
return make_response(resp, 400)
|
|
|
|
recipient = current_app.config["MAIL_RECIPIENT"]
|
|
|
|
msg = Message(
|
|
"[ORDER HARDWARE - RFQ from %s]" % payload['email'],
|
|
reply_to=recipient,
|
|
sender=payload["email"],
|
|
recipients=[recipient])
|
|
msg.body = payload["body"]
|
|
msg.html = payload["body"]
|
|
|
|
msg_client_confirmation = Message(
|
|
"[M-Labs - Order Hardware]",
|
|
reply_to=recipient,
|
|
sender=recipient,
|
|
recipients=[payload["email"]])
|
|
msg_client_confirmation.body = "Hello! We've received your request and " \
|
|
"will be in contact soon. " \
|
|
"Here is a reminder of your configuration: {}" \
|
|
"Thank you!".format(payload["configuration"])
|
|
msg_client_confirmation.html = "Hello!<br />" \
|
|
"We've received your request and will be in contact soon.<br />" \
|
|
"Here is a reminder of your configuration: {}<br /><br />" \
|
|
"Thank you!".format(payload["configuration"])
|
|
|
|
with mail.connect() as conn:
|
|
conn.send(msg)
|
|
conn.send(msg_client_confirmation)
|
|
|
|
return jsonify("ok")
|