Sindbad~EG File Manager
from sqlalchemy import create_engine, MetaData, Table, insert, select,update,delete,text
from sqlalchemy.sql import and_, or_
from core import app
import json
from flask import session
engine = create_engine(app.config['DATABASE_URI'],pool_size=5000,pool_pre_ping=True,pool_recycle=3600)
class PayumoneyModel():
def __init__(self):
try:
self.meta = MetaData()
self.payments = Table("payments", self.meta, autoload_with=engine)
self.gateway_settings = Table("gateway_settings", self.meta, autoload_with=engine)
except Exception as e:
print(e)
def get_gateway(self,id):
with engine.connect() as conn:
stmt = select([self.gateway_settings]).where(self.gateway_settings.c.gateway_id.in_([id]))
result = conn.execute(stmt).one_or_none()
return dict(result._mapping) if result else None
def updatepaymentdetail(self,txnid,save_data):
with engine.connect() as conn:
stmt = self.payments.update().where(self.payments.c.payment_id.in_([txnid])).values(save_data)
result = conn.execute(stmt)
conn.commit()
return result
def update_pay_req_id(self,p_id,pay_req_id):
with engine.connect() as conn:
stmt = self.payments.update().values({"payment_request_id":pay_req_id}).where(self.payments.c.p_id.in_([p_id]))
result = conn.execute(stmt)
conn.commit()
return result
def update_pay_status(self,p_id,payment_id,payment_status,payment_request_id):
with engine.connect() as conn:
stmt = self.payments.update().values({"payment_id":payment_id,"payment_status":payment_status}).where(self.payments.c.p_id.in_([p_id]))
result = conn.execute(stmt)
conn.commit()
return result
def update_payment_id(self,p_id,payment_id,payment_status,created_at):
with engine.connect() as conn:
stmt = self.payments.update().values({"payment_id":payment_id,"payment_status":payment_status,"updated_at":created_at}).where(self.payments.c.p_id.in_([p_id]))
result = conn.execute(stmt)
conn.commit()
return result
def getuser_idbytxnid(self,payment_id):
with engine.connect() as conn:
stmt = text("select * from payments where payment_id = '"+str(payment_id)+"' limit 1")
result = conn.execute(stmt).one_or_none()
return dict(result._mapping) if result else None
# update webhook data by unique_id -- October 31, 2022
def updateWebhookData(self,unique_id,webhook_data):
print("Webhook-calling...")
with engine.connect() as conn:
stmt = text("select * from payments where unique_id = '"+unique_id+"' order by created_at desc limit 1")
result = conn.execute(stmt).all()
results = [dict(r._mapping) for r in result] if result else None
if results :
payment_status = results[0]['payment_status']
if payment_status and "success" in payment_status :
return "Payemnt status already exist as success"
else :
stmt_2 = self.payments.update().values(webhook_data).where(self.payments.c.unique_id.in_([unique_id]))
result_2 = conn.execute(stmt_2)
conn.commit()
return "Webhook data updated ."
else :
return "Unique Id not exists ."
Sindbad File Manager Version 1.0, Coded By Sindbad EG ~ The Terrorists