Files
robot-shop/payment/payment.py

51 lines
1.1 KiB
Python
Raw Normal View History

2018-01-25 17:42:38 +00:00
import os
import sys
2018-01-26 16:01:39 +00:00
import time
2018-01-25 17:42:38 +00:00
import logging
2018-01-26 16:01:39 +00:00
import uuid
2018-01-25 17:42:38 +00:00
import requests
from flask import Flask
from flask import request
2018-01-26 16:01:39 +00:00
from flask import jsonify
from rabbitmq import Publisher
2018-01-25 17:42:38 +00:00
app = Flask(__name__)
@app.route('/health', methods=['GET'])
def health():
return 'OK'
@app.route('/pay/<id>', methods=['POST'])
def pay(id):
app.logger.info('payment for {}'.format(id))
cart = request.get_json()
app.logger.info(cart)
# dummy call to Paypal, hope they dont object
req = requests.get('https://paypal.com/')
app.logger.info('paypal returned {}'.format(req.status_code))
2018-01-26 16:01:39 +00:00
# Generate order id
orderid = str(uuid.uuid4())
queueOrder({ 'order': orderid, 'cart': cart })
2018-01-25 17:42:38 +00:00
# TDOD - order history
2018-01-26 16:01:39 +00:00
return jsonify({ 'order': orderid })
def queueOrder(order):
app.logger.info('queue order')
publisher.publish(order)
# RabbitMQ
publisher = Publisher(app.logger)
2018-01-25 17:42:38 +00:00
if __name__ == "__main__":
sh = logging.StreamHandler(sys.stdout)
sh.setLevel(logging.INFO)
app.logger.addHandler(sh)
app.logger.setLevel(logging.INFO)
port = int(os.getenv("PAYMENT_PORT", "8080"))
app.run(host='0.0.0.0', port=port)