Sindbad~EG File Manager

Current Path : /home/numerotech/dropbox.numerotech.com/dropbox_v2/core/model/
Upload File :
Current File : //home/numerotech/dropbox.numerotech.com/dropbox_v2/core/model/UserModel.py

from sqlalchemy import create_engine, MetaData, Table, insert, select, update, delete, text
from core import app
from sqlalchemy.sql import and_, or_
from sqlalchemy import asc, desc
from flask import Flask, flash

engine = create_engine(app.config['DATABASE_URI'])

class UserModel:
    def __init__(self):
        try:
            self.meta = MetaData()
            self.users = Table("users", self.meta, autoload_with=engine)
        except Exception as e:
            print(e)

    def getUsers(self):
        with engine.connect() as conn:
            stmt = self.users.select()
            result = conn.execute(stmt)
            results = [dict(r) for r in result] if result else None
            return results

    def getUserbyEmail(self,email):
        with engine.connect() as conn:
            stmt = self.users.select().where(self.users.c.email.in_([email]))
            result = conn.execute(stmt).first()
            if result:
                return dict(result._mapping)
            else:
                return None
    



    def insert(self, data):
        with engine.connect() as conn:
            result = conn.execute(self.users.insert().values(**data))
            conn.commit()
            pk_id = result.inserted_primary_key[0] if result.inserted_primary_key else None
            return pk_id

    def update(self, user_id, datas):
        with engine.connect() as conn:
            stmt = self.users.update().where(self.users.c.user_id.in_([user_id])).values(**datas)
            result = conn.execute(stmt)
            conn.commit()            
            return result

    def delete(self, user_id):
        with engine.connect() as conn:
            stmt = delete(self.users).where(self.users.c.user_id.in_([user_id]))
            conn.commit()            
            conn.execute(stmt)
            return "deleted"

    def searchUsers(self, searchText):
        with engine.connect() as conn:
            stmt = text(f"SELECT * FROM users WHERE name LIKE '%{searchText}%' OR mobile LIKE '%{searchText}%' OR email LIKE '%{searchText}%';")
            result = conn.execute(stmt)
            return result

Sindbad File Manager Version 1.0, Coded By Sindbad EG ~ The Terrorists