Archived
Starts kassa integration WIP
This commit is contained in:
1 parent
35be38f6c9
commit
a1b84fa128
2 files changed
+53
-2
No files matched your search
@@ -1,3 +1,4 @@
|
|||||||
*.pyc
|
*.pyc
|
||||||
config.py
|
config.py
|
||||||
env/
|
env/
|
||||||
|
.idea
|
||||||
+52
-2
@@ -1,7 +1,6 @@
|
|||||||
#!/usr/bin/env python
|
#!/usr/bin/env python
|
||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
|
from flask import Flask, request, g, abort, jsonify
|
||||||
from flask import Flask, request, g, abort
|
|
||||||
import MySQLdb
|
import MySQLdb
|
||||||
import MySQLdb.cursors
|
import MySQLdb.cursors
|
||||||
import datetime
|
import datetime
|
||||||
@@ -380,6 +379,10 @@ def has_pending_new_membership(number):
|
|||||||
AND event2.incoming_id = event.incoming_id
|
AND event2.incoming_id = event.incoming_id
|
||||||
AND event2.action = 'new_membership_delivered')
|
AND event2.action = 'new_membership_delivered')
|
||||||
AND activation_code IS NOT NULL""", [number], one=True)
|
AND activation_code IS NOT NULL""", [number], one=True)
|
||||||
|
|
||||||
|
# What about card_number,phonenumber-tuples from kassa.neuf.no?
|
||||||
|
# TODO: lookup phone number-bound-memberships from kassa, not from incoming sms-s
|
||||||
|
# TODO: or should the place calling this function check an inside-table?
|
||||||
return row.get('activation_code') if row else None
|
return row.get('activation_code') if row else None
|
||||||
|
|
||||||
|
|
||||||
@@ -405,6 +408,53 @@ def inside_code_purchase_date():
|
|||||||
return purchase_date or ''
|
return purchase_date or ''
|
||||||
|
|
||||||
|
|
||||||
|
@app.route('/kassa-pending-membership')
|
||||||
|
def kassa_pending_membership():
|
||||||
|
""" Checks has_pending_new_membership on specified number and returns activation code and purchase date. """
|
||||||
|
number = request.args.get('number')
|
||||||
|
api_key = request.args.get('api_key')
|
||||||
|
|
||||||
|
if api_key != app.config['INSIDE_API_KEY']:
|
||||||
|
abort(403) # Forbidden
|
||||||
|
|
||||||
|
if number is None or len(number) == 0:
|
||||||
|
return jsonify(**{'error': 'Missing or empty param number'})
|
||||||
|
|
||||||
|
if number[0] == '+':
|
||||||
|
number = number.replace('+', '')
|
||||||
|
|
||||||
|
if not number.isdigit():
|
||||||
|
return jsonify(**{'error': "Param number is not numerical '{}'".format(number)})
|
||||||
|
|
||||||
|
activation_code = has_pending_new_membership(number)
|
||||||
|
if activation_code is None:
|
||||||
|
return jsonify(**{'result': None})
|
||||||
|
|
||||||
|
result = {
|
||||||
|
'number': number,
|
||||||
|
'activation_code': activation_code,
|
||||||
|
'purchase_date': get_activation_code_purchase_date(number, activation_code) if activation_code else None
|
||||||
|
}
|
||||||
|
return jsonify(**{'result': result})
|
||||||
|
|
||||||
|
|
||||||
|
@app.route('/kassa-add-pending-membership')
|
||||||
|
def kassa_add_pending_membership():
|
||||||
|
""" Adds a pending membership to specified number """
|
||||||
|
api_key = request.args.get('api_key')
|
||||||
|
data = request.get_json()
|
||||||
|
number = data['number']
|
||||||
|
|
||||||
|
if api_key != app.config['INSIDE_API_KEY']:
|
||||||
|
abort(403) # Forbidden
|
||||||
|
|
||||||
|
app.logger.debug("Kassa add pending, number: %s", number)
|
||||||
|
|
||||||
|
# TODO: insert event new_kassa_membership or renew_kassa_membership
|
||||||
|
result = 'TODO: Not implemented'
|
||||||
|
return jsonify(**{'result': result})
|
||||||
|
|
||||||
|
|
||||||
@app.route('/sendega-incoming', methods=['POST'])
|
@app.route('/sendega-incoming', methods=['POST'])
|
||||||
def incoming():
|
def incoming():
|
||||||
args = {'ip': request.headers.get('X-Real-IP') or request.remote_addr}
|
args = {'ip': request.headers.get('X-Real-IP') or request.remote_addr}
|
||||||
|
|||||||
Reference in new issue
Block a user