Sqlite3: basic order table
This commit is contained in:
38
classes.py
Normal file
38
classes.py
Normal file
@@ -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)
|
||||||
6
db.sql
Normal file
6
db.sql
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
CREATE TABLE orders (
|
||||||
|
id INTEGER NOT NULL UNIQUE,
|
||||||
|
amount REAL NOT NULL,
|
||||||
|
message TEXT,
|
||||||
|
name TEXT
|
||||||
|
);
|
||||||
74
serv.py
74
serv.py
@@ -1,40 +1,62 @@
|
|||||||
#!/bin/env python3
|
#!/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
|
from flask_sock import Sock
|
||||||
|
from classes import Payement, Client
|
||||||
app = Flask(__name__)
|
|
||||||
sock = Sock(app)
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
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 = []
|
clients_list = []
|
||||||
payements_list : list[Payement] = []
|
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('/')
|
@app.route('/')
|
||||||
def index():
|
def index():
|
||||||
return render_template('index.html')
|
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 += '{} {} <br/>'.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')
|
@app.route('/last')
|
||||||
def last():
|
def last():
|
||||||
print(len(clients_list))
|
print(len(clients_list))
|
||||||
@@ -60,9 +82,11 @@ def notifications():
|
|||||||
if request.json is not None:
|
if request.json is not None:
|
||||||
print(request.json)
|
print(request.json)
|
||||||
if request.json['eventType'] == 'Order':
|
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']['items'][0]['customFields'][0]['answer'],
|
||||||
request.json['data']['payer']['firstName'])
|
request.json['data']['payer']['firstName'])
|
||||||
|
p.save(get_db());
|
||||||
payements_list.append(p)
|
payements_list.append(p)
|
||||||
for c in clients_list:
|
for c in clients_list:
|
||||||
try:
|
try:
|
||||||
|
|||||||
@@ -4,11 +4,25 @@
|
|||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
<div id="p">TEST</div>
|
<div id="p">TEST</div>
|
||||||
|
<div id="msg"><div>
|
||||||
<script>
|
<script>
|
||||||
const websocket = new WebSocket('ws://'+ location.host + '/notify');
|
const websocket = new WebSocket('ws://'+ location.host + '/notify');
|
||||||
websocket.addEventListener('message', ev => {
|
websocket.addEventListener('message', ev => {
|
||||||
console.log(ev.data);
|
console.log(ev.data);
|
||||||
let div = document.createTextNode(ev.data);
|
let ndiv = document.createElement('div');
|
||||||
|
let data = document.createTextNode(ev.data);
|
||||||
|
ndiv.appendChild(data);
|
||||||
|
message = document.getElementById('msg');
|
||||||
|
document.body.insertBefore(ndiv,message);
|
||||||
|
});
|
||||||
|
|
||||||
|
websocket.addEventListener('error', ev => {
|
||||||
|
let div = document.createTextNode(ev);
|
||||||
|
document.body.append(div);
|
||||||
|
});
|
||||||
|
|
||||||
|
websocket.addEventListener('close', ev => {
|
||||||
|
let div = document.createTextNode(ev);
|
||||||
document.body.append(div);
|
document.body.append(div);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user