예제 #1
0
    def post(self):
        student = request.form['student']
        subject = request.form['subject']
        address = request.form['address']
        duration = int(request.form['duration'])
        payment_type = request.form['payment_type']

        balance = requests.get(
            'http://go-teach-balance.herokuapp.com/balances/{}'.format(
                student)).json()
        total_cost = COST_PER_HOUR * duration
        if (total_cost > 0) and (balance['amount'] >= total_cost
                                 or payment_type == 'cash'):
            order = OrderModel(student=student,
                               teacher='',
                               subject=subject,
                               address=address,
                               duration=duration,
                               payment_type=payment_type,
                               status='available')
            if payment_type != 'cash':
                requests.post(
                    'http://go-teach-balance.herokuapp.com/balances/{}/charge',
                    data={'amount': total_cost})
            order.save_to_db()
            return {'status': 'OK'}
        else:
            return {'status': 'Balance not enough'}
예제 #2
0
    def post(self, received_item):
        current_user = get_jwt_identity()
        logged_user = UserModel.find_by_username(current_user)

        try:
            new_order = OrderModel(
                user_id=logged_user.id,
                customized_message=received_item.get("message"),
                create_date=datetime.datetime.utcnow())

            for item in received_item.get("order"):
                found_menu = MenuModel.get_by_id(item.get("menu_id"))
                a = AssociationModel(counts=item.get("counts"))
                a.menu = found_menu
                new_order.menus.append(a)

            new_order.save_to_db()
            result = {"message": "successful"}
        except (Exception, ):
            logger.exception("create order failed")
            result = {"message": "failed"}
        return result