diff --git a/classes.py b/classes.py
new file mode 100644
index 0000000..4d265de
--- /dev/null
+++ b/classes.py
@@ -0,0 +1,38 @@
+from sqlite3 import Connection
+
+class Payement:
+ id : int
+ amount: float
+ name : str
+ message : str
+ def __init__(self,id,amount,name,message) -> None:
+ self.id = id
+ self.amount = amount
+ self.name = name
+ self.message = message
+
+ def save(self, conn : Connection):
+ try:
+ conn.cursor()
+ conn.execute("insert into orders values (:id,:amount,:message,:name)",
+ {
+ "id" : self.id,
+ "amount" : self.amount,
+ "message" : self.message,
+ "name" : self.name
+ })
+ conn.commit()
+ except:
+ print("Can't save?")
+
+ return
+ def __repr__(self) -> str:
+ return '{} - {}€- {}'.format(self.name,self.amount/100,self.message)
+
+class Client:
+ def __init__(self,sock) -> None:
+ self.sock = sock
+
+ def send_event(self, data):
+ print(self.sock)
+ self.sock.send(data)
diff --git a/db.sql b/db.sql
new file mode 100644
index 0000000..14894b0
--- /dev/null
+++ b/db.sql
@@ -0,0 +1,6 @@
+CREATE TABLE orders (
+id INTEGER NOT NULL UNIQUE,
+amount REAL NOT NULL,
+message TEXT,
+name TEXT
+);
diff --git a/serv.py b/serv.py
index b46b1aa..2fcca3e 100755
--- a/serv.py
+++ b/serv.py
@@ -1,40 +1,62 @@
#!/bin/env python3
-from flask import Flask, make_response, render_template,request,jsonify
+import os
+import sqlite3
+from flask import Flask, make_response, render_template,request,jsonify,g
from flask_sock import Sock
-
-app = Flask(__name__)
-sock = Sock(app)
+from classes import Payement, Client
-class Payement:
- amount: float
- name : str
- message : str
- def __init__(self,amount,name,message) -> None:
- self.amount = amount
- self.name = name
- self.message = message
- def save():
- return
- def __repr__(self) -> str:
- return '{} - {}€- {}'.format(self.name,self.amount/100,self.message)
-
-class Client:
- def __init__(self,sock) -> None:
- self.sock = sock
-
- def send_event(self, data):
- print(self.sock)
- self.sock.send(data)
clients_list = []
payements_list : list[Payement] = []
+
+app = Flask(__name__, instance_relative_config=True)
+app.config.from_mapping(
+ DATABASE=os.path.join(app.instance_path,'db.sqlite')
+)
+
+sock = Sock(app)
+
+
+def get_db():
+ db = getattr(g, '_database', None)
+ if db is None:
+ db = g.db = sqlite3.connect('db.sqlite')
+ return db
+
+@app.teardown_appcontext
+def close(exception):
+ db = getattr(g, 'db', None)
+ if db is not None:
+ db.close()
+
@app.route('/')
def index():
return render_template('index.html')
+@app.route('/show')
+def show():
+ db = get_db()
+ cur = db.cursor()
+ cur.execute('select * from orders;')
+ info = cur.fetchall();
+ val = ""
+ for i in info:
+ val += '{} {}
'.format(i[0],i[1])
+ return make_response(val, 200)
+
+@app.route('/test')
+def test():
+ p = Payement(1,5000,'TEST','TEST')
+ for c in clients_list:
+ try:
+ c.send_event(repr(p))
+ except:
+ clients_list.remove(c)
+ return make_response('Test',200)
+
@app.route('/last')
def last():
print(len(clients_list))
@@ -60,9 +82,11 @@ def notifications():
if request.json is not None:
print(request.json)
if request.json['eventType'] == 'Order':
- p = Payement(request.json['data']['amount']['total'],
+ p = Payement(request.json['data']['id'],
+ request.json['data']['amount']['total'],
request.json['data']['items'][0]['customFields'][0]['answer'],
request.json['data']['payer']['firstName'])
+ p.save(get_db());
payements_list.append(p)
for c in clients_list:
try:
diff --git a/templates/index.html b/templates/index.html
index e51afb6..f40f453 100644
--- a/templates/index.html
+++ b/templates/index.html
@@ -4,11 +4,25 @@