Ejemplo n.º 1
0
    def post(self):
        post_data = request.get_json()
        amount = post_data.get('amount')
        token_id = post_data.get('token_id')

        if amount is None or token_id is None:
            return make_response(
                jsonify({
                    'message':
                    'Must provide amount and token_id to generate POLi Link'
                })), 400

        token = Token.query.get(token_id)

        if token is None:
            return make_response(
                jsonify({'message':
                         'No token for ID {}'.format(token_id)})), 400

        if token.symbol != 'AUD':
            return make_response(
                jsonify({'message': 'POLi payments only support AUD'})), 400

        fiat_ramp = FiatRamp(
            payment_method='POLI',
            payment_amount=int(amount),
        )

        try:
            create_poli_link_response = create_poli_link(
                amount=amount,
                reference=fiat_ramp.payment_reference,
                currency=token.symbol,
            )

        except PoliPaymentsError as e:
            response_object = {
                'message': str(e),
            }
            return make_response(jsonify(response_object)), 400

        # converts "https://poli.to/XNSBV" into XNSBV to save in DB
        fiat_ramp.payment_metadata = {
            'poli_link_url_token':
            create_poli_link_response['poli_link'].split('/')[-1]
        }

        fiat_ramp.token = token

        db.session.add(fiat_ramp)

        response_object = {
            'message': 'Created POLi Link',
            'data': create_poli_link_response
        }

        return make_response(jsonify(response_object)), 201
Ejemplo n.º 2
0
def create_fiat_ramp(test_client, init_database):
    from server.models.fiat_ramp import FiatRamp
    fiat_ramp = FiatRamp(
            payment_method='POLI',
            payment_amount=int(100),
        )
    db.session.add(fiat_ramp)
    db.session.commit()
    return fiat_ramp