Ejemplo n.º 1
0
    def setUp(self):
        My_app.config.from_object(app_config["testing"])
        self.app = My_app.test_client()
        self.db_obj = DbConn()
        self.con = self.db_obj.create_connection()
        self.db_obj.create_users_table()
        self.db_obj.create_menu_table()
        self.db_obj.create_orders_table()
        self.querry = UserQueries()
        self.hostname = "http://*****:*****@gmail.com",
            "password": "******"
        }

        self.resgistered_user = {"user_name": "mos", "password": "******"}
Ejemplo n.º 2
0
from app.models.db_connection import DbConn
from config.config import app_config
from app.views.routes import My_app

My_app.config.from_object(app_config["development"])

if __name__ == "__main__":
    db_obj = DbConn()
    con = db_obj.create_connection()
    db_obj.create_users_table()
    db_obj.create_menu_table()
    db_obj.create_orders_table()
    My_app.run()
Ejemplo n.º 3
0
class BaseTestCase(unittest.TestCase):
    def setUp(self):
        My_app.config.from_object(app_config["testing"])
        self.app = My_app.test_client()
        self.db_obj = DbConn()
        self.con = self.db_obj.create_connection()
        self.db_obj.create_users_table()
        self.db_obj.create_menu_table()
        self.db_obj.create_orders_table()
        self.querry = UserQueries()
        self.hostname = "http://*****:*****@gmail.com",
            "password": "******"
        }

        self.resgistered_user = {"user_name": "mos", "password": "******"}

    def tearDown(self):
        cursor = self.con.cursor()
        cursor.execute("DROP TABLE IF EXISTS users CASCADE")
        cursor.execute("DROP TABLE IF EXISTS menu CASCADE")
        cursor.execute("DROP TABLE IF EXISTS orders CASCADE")
        self.con.commit()
        self.con.close()

    def register_user(self, new_user):

        return self.app.post(self.hostname + "auth/signup",
                             data=json.dumps(new_user),
                             content_type='application/json')

    def login_user(self, user):
        return self.app.post(self.hostname + "auth/login",
                             data=json.dumps(user),
                             content_type='application/json')

    def make_admin(self, user):
        self.querry.authorise_user(user, True)

    def post_food(self, food, token):
        return self.app.post(self.hostname + "menu",
                             data=json.dumps(food),
                             content_type='application/json',
                             headers=({
                                 "acces-token": token
                             }))

    def get_all_orders(self, token):
        return self.app.get(self.hostname + "orders",
                            headers=({
                                "acces-token": token
                            }))

    def post_order(self, order, token):
        return self.app.post(self.hostname + "users/orders",
                             data=json.dumps(order),
                             content_type='application/json',
                             headers=({
                                 "acces-token": token
                             }))

    def fetch_specific_order(self, uuid, token):
        return self.app.get(self.hostname + "orders/" + str(uuid),
                            headers=({
                                "acces-token": token
                            }))

    def update_status(self, status, uuid, token):
        return self.app.put(self.hostname + "orders/" + str(uuid),
                            data=json.dumps(status),
                            content_type='application/json',
                            headers=({
                                "acces-token": token
                            }))

    def get_user_order_history(self, token):
        return self.app.get(self.hostname + "users/orders",
                            headers=({
                                "acces-token": token
                            }))

    def get_menu(self, token):
        return self.app.get(self.hostname + "menu",
                            headers=({
                                "acces-token": token
                            }))

    def get_all_users(self, token):
        return self.app.get(self.hostname + "users",
                            headers=({
                                "acces-token": token
                            }))

    def promote_user(self, user, token):
        return self.app.put(self.hostname + "promote",
                            data=json.dumps(user),
                            content_type='application/json',
                            headers=({
                                "acces-token": token
                            }))
 def __init__(self):
     self.conn = DbConn().create_connection()
     self.cur = self.conn.cursor()
class UserQueries:
    def __init__(self):
        self.conn = DbConn().create_connection()
        self.cur = self.conn.cursor()

    def insert_user(self, first_name, last_name, user_name, email, password,
                    created_at, admin):
        "a method to  insert user into users table"
        sql = """INSERT INTO  users ( first_name, last_name, user_name, email, password, created_at, admin )
                                     VALUES ('{f_name}', '{l_name}', '{u_name}', '{email}', '{password}',
                                     '{created_at}', '{admin}' )"""

        sql_command = sql.format(f_name=first_name,
                                 l_name=last_name,
                                 u_name=user_name,
                                 email=email,
                                 password=password,
                                 created_at=created_at,
                                 admin=admin)
        self.cur.execute(sql_command)
        self.conn.commit()
        # self.conn.close()

    def get_all_users(self, users_list=[]):
        "a method to get al users"
        users_list.clear()
        sql = """SELECT * FROM users  ;"""
        self.cur.execute(sql)
        orders = self.cur.fetchall()
        user = {}
        for row in orders:
            user = {
                "user_id": row[0],
                "first_name": row[1],
                "last_name": row[2],
                "user_name": row[3],
                "email": row[4],
                "password": row[5],
                "created_a": row[6],
                "admin": row[7]
            }
            users_list.append(user)
        self.conn.commit()
        # self.conn.close()
        return users_list

    def get_user(self, user_name):
        " a methos to get user"

        sql = """SELECT * FROM users WHERE  user_name ='{u_name}' ;"""
        sql_command = sql.format(u_name=user_name)
        self.cur.execute(sql_command)
        orders = self.cur.fetchall()
        user = {}
        for row in orders:
            user = {
                "user_id": row[0],
                "first_name": row[1],
                "last_name": row[2],
                "user_name": row[3],
                "email": row[4],
                "password": row[5],
                "created_a": row[6],
                "admin": row[7]
            }
        self.conn.commit()
        # self.conn.close()
        return user

    def authorise_user(self, u_name, admin):
        " a method to promote user"

        sql = """UPDATE users SET admin = '{admin}' WHERE user_name = '{u_name}';"""

        sql_command = sql.format(admin=admin, u_name=u_name)

        self.cur.execute(sql_command)
        self.conn.commit()
        # self.conn.close()

    def get_user_Order_history(self, user_id):
        "a metod to get user order history"
        order_list = []
        sql = """SELECT * FROM orders WHERE user_id = '{user_id}' ;"""
        sql_command = sql.format(user_id=user_id)
        self.cur.execute(sql_command)
        orders = self.cur.fetchall()
        order = {}
        for row in orders:
            order = {
                "order_id": row[0],
                "order_client": row[1],
                "order_food_id": row[2],
                "order_uuid": row[3],
                "order_created_at": row[4],
                "order_status": row[5],
                "order_quantity": row[6]
            }
            order_list.append(order)
        self.conn.commit()
        # self.conn.close()
        return order_list

    def check_admin(self, user_id):
        " a method to chek whether user is admin"
        sql = """SELECT admin FROM users WHERE user_id = '{user_id}' ;"""
        sql_command = sql.format(user_id=user_id)
        self.cur.execute(sql_command)
        values = self.cur.fetchall()
        admin = None
        for row in values:
            admin = row[0]

        self.conn.commit()
        # self.conn.close()
        return admin

    def close_conn(self):
        " a method to close the datase connection"
        DbConn().close_DB()
 def close_conn(self):
     " a method to close the datase connection"
     DbConn().close_DB()
class DbQueries():
    def __init__(self):
        self.conn = DbConn().create_connection()
        self.cur = self.conn.cursor()

    def insert_orders(self, user_id, food_id, order_uuid, created_at, status,
                      quantity):
        "a method to insert orders into the orders table"

        sql = """INSERT INTO orders ( user_id ,food_id, order_uuid,created_at,  status,  quantity )
                              VALUES ('{user_id}', '{food_id}', '{order_uuid}', '{created_at}', 
                              '{status}', '{quantity}' )"""

        sql_command = sql.format(user_id=user_id,
                                 food_id=food_id,
                                 order_uuid=order_uuid,
                                 created_at=created_at,
                                 status=status,
                                 quantity=quantity)
        self.cur.execute(sql_command)
        self.conn.commit()
        # self.conn.close()

    def get_orders(self, order_list=[]):
        "a methos to fetch orders froorders table"
        order_list.clear()
        sql = """SELECT * FROM orders  ;"""
        self.cur.execute(sql)
        orders = self.cur.fetchall()
        order = {}
        for row in orders:
            order = {
                "order_id": row[0],
                "order_client": row[1],
                "order_food_id": row[2],
                "order_uuid": row[3],
                "order_created_at": row[4],
                "order_status": row[5],
                "order_quantity": row[6]
            }
            order_list.append(order)
        self.conn.commit()
        # self.conn.close()
        return order_list

    def fetch_order(self, uuid):
        "a methos to fetch specific order"
        sql = """SELECT * FROM orders WHERE order_uuid = '{uuid}' ;"""
        sql_command = sql.format(uuid=uuid)

        self.cur.execute(sql_command)
        orders = self.cur.fetchall()
        order = {}
        for row in orders:
            order = {
                "order_id": row[0],
                "order_client": row[1],
                "order_food_id": row[2],
                "order_uuid": row[3],
                "order_created_at": row[4],
                "order_status": row[5],
                "order_quantity": row[6]
            }
        self.conn.commit()
        # self.conn.close()
        return order

    def update_order_status(self, status, uuid):
        "a methos to update order status"
        sql = """UPDATE orders  SET status = '{status}' WHERE order_uuid = '{uuid}';"""

        sql_command = sql.format(status=status, uuid=uuid)

        self.cur.execute(sql_command)
        self.conn.commit()
        # self.conn.close()

    def insert_food(self, food_name, food_price):
        "a methos to insert food object into menu tale"

        sql = """INSERT INTO menu ( food_name, food_price )  VALUES ('{food}', '{price}');"""
        sql_command = sql.format(food=food_name, price=food_price)
        self.cur.execute(sql_command)
        self.conn.commit()
        # self.conn.close()

    def get_food(self, food_name):
        "a methos to get food "
        sql = """SELECT * FROM menu WHERE food_name = '{name}' ;"""
        sql_command = sql.format(name=food_name)
        self.cur.execute(sql_command)
        foods = self.cur.fetchall()
        food = {}

        for row in foods:
            food = {
                "food_id": row[0],
                "food_name": row[1],
                "food_price": row[2]
            }
        self.conn.commit()
        # self.conn.close()
        return food

    def get_all_foods(self, food_list=[]):
        "a method to get all foods"
        food_list.clear()
        sql = """SELECT * FROM menu ;"""
        self.cur.execute(sql)
        foods = self.cur.fetchall()
        food = {}

        for row in foods:
            food = {
                "food_id": row[0],
                "food_name": row[1],
                "food_price": row[2]
            }
            food_list.append(food)
        self.conn.commit()
        # self.conn.close()
        return food_list

    def close_conn(self):
        DbConn().close_DB()
 def close_conn(self):
     DbConn().close_DB()