Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import os
- import sqlite3 as sql
- from src.DreamersDiscoveries.infrastructure.services.result import Result
- from src.DreamersDiscoveries.infrastructure.models.user_model import UserModel
- class Database:
- def __init__(self):
- self.file_path = ""
- def check_for_db_file(self):
- src_path = 'src'
- sub_path = os.path.join(src_path, 'DreamersDiscoveries')
- infrastructure_path = os.path.join(sub_path, 'infrastructure')
- db_path = os.path.join(infrastructure_path, "database")
- self.file_path = os.path.join(db_path, 'main.db')
- if not os.path.exists(self.file_path):
- tables_setup_check = self.create_tables()
- if not tables_setup_check.is_success:
- return Result.fail(tables_setup_check.message)
- return Result.ok("Database Created Successfully")
- return Result.ok("Database Already Exists")
- def create_tables(self):
- user_table_check = self.create_user_table()
- if not user_table_check.is_success:
- return Result.fail(user_table_check.message)
- entry_table_check = self.create_entry_table()
- if not entry_table_check.is_success:
- return Result.fail(entry_table_check.message)
- default_user_written_check = self.insert_default_user()
- if not default_user_written_check.is_success:
- return Result.fail(default_user_written_check.message)
- print(user_table_check.message)
- print(entry_table_check.message)
- print(default_user_written_check.message)
- return Result.ok("Datbase Tables Created Successfully")
- def create_user_table(self):
- with sql.connect(self.file_path) as mdb:
- cur = mdb.cursor()
- try:
- cur.execute(
- '''CREATE TABLE IF NOT EXISTS users(
- id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,
- first_name TEXT,
- last_name TEXT,
- email_address TEXT,
- username TEXT,
- password TEXT,
- UNIQUE(email_address, username))
- '''
- )
- return Result.ok("User Table Created Successfully")
- except Exception as e:
- return Result.fail(e)
- def create_entry_table(self):
- with sql.connect(self.file_path) as mdb:
- cur = mdb.cursor()
- try:
- cur.execute(
- '''CREATE TABLE IF NOT EXISTS entries(
- id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,
- date TEXT,
- time INTEGER,
- title TEXT,
- entry TEXT
- )'''
- )
- return Result.ok("Entries Table Created Successfully")
- except Exception as e:
- return Result.fail(e)
- def insert_default_user(self):
- with sql.connect(self.file_path) as mdb:
- cur = mdb.cursor()
- default_user = UserModel()
- try:
- cur.execute(
- '''INSERT INTO users(
- first_name, last_name,
- email_address, username,
- password
- )
- VALUES (?,?,?,?,?)''',
- (
- default_user.user_info.first_name,
- default_user.user_info.last_name,
- default_user.user_info.email_address,
- default_user.user_login.username,
- default_user.user_login.password
- )
- )
- return Result.ok("Default User Written Successfully")
- except Exception as e:
- return Result.fail(e)
Advertisement
Add Comment
Please, Sign In to add comment