mekasu0124

Untitled

May 5th, 2024
46
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 3.76 KB | None | 0 0
  1. import os
  2. import sqlite3 as sql
  3.  
  4. from src.DreamersDiscoveries.infrastructure.services.result import Result
  5. from src.DreamersDiscoveries.infrastructure.models.user_model import UserModel
  6.  
  7. class CreateDatabase:
  8.     def __init__(self, helpers):
  9.         self.file_path = helpers.build_database_path()
  10.  
  11.     def check_for_db_file(self):
  12.         if not os.path.exists(self.file_path):
  13.             tables_setup_check = self.create_tables()
  14.  
  15.             if not tables_setup_check.is_success:
  16.                 return Result.fail(tables_setup_check.message)
  17.            
  18.             return Result.ok("Database Created Successfully")
  19.        
  20.         return Result.ok("Database Already Exists")
  21.        
  22.     def create_tables(self):
  23.         user_table_check = self.create_user_table()
  24.  
  25.         if not user_table_check.is_success:
  26.             return Result.fail(user_table_check.message)
  27.  
  28.         entry_table_check = self.create_entry_table()
  29.  
  30.         if not entry_table_check.is_success:
  31.             return Result.fail(entry_table_check.message)
  32.        
  33.         default_user_written_check = self.insert_default_user()
  34.  
  35.         if not default_user_written_check.is_success:
  36.             return Result.fail(default_user_written_check.message)
  37.        
  38.         print(user_table_check.message)
  39.         print(entry_table_check.message)
  40.         print(default_user_written_check.message)        
  41.         return Result.ok("Datbase Tables Created Successfully")
  42.  
  43.     def create_user_table(self):
  44.         with sql.connect(self.file_path) as mdb:
  45.             cur = mdb.cursor()
  46.  
  47.             try:
  48.                 cur.execute(
  49.                     '''CREATE TABLE IF NOT EXISTS users(
  50.                        id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,
  51.                        first_name TEXT,
  52.                        last_name TEXT,
  53.                        email_address TEXT,
  54.                        username TEXT,
  55.                        password TEXT,
  56.                        UNIQUE(email_address, username))
  57.                    '''
  58.                 )
  59.  
  60.                 return Result.ok("User Table Created Successfully")
  61.             except Exception as e:
  62.                 return Result.fail(e)
  63.  
  64.     def create_entry_table(self):
  65.         with sql.connect(self.file_path) as mdb:
  66.             cur = mdb.cursor()
  67.  
  68.             try:
  69.                 cur.execute(
  70.                     '''CREATE TABLE IF NOT EXISTS entries(
  71.                        id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,
  72.                        date TEXT,
  73.                        time INTEGER,
  74.                        title TEXT,
  75.                        entry TEXT
  76.                    )'''
  77.                 )
  78.  
  79.                 return Result.ok("Entries Table Created Successfully")
  80.             except Exception as e:
  81.                 return Result.fail(e)
  82.    
  83.     def insert_default_user(self):
  84.         with sql.connect(self.file_path) as mdb:
  85.             cur = mdb.cursor()
  86.  
  87.             default_user = UserModel()
  88.  
  89.             try:
  90.                 cur.execute(
  91.                     '''INSERT INTO users(
  92.                        first_name, last_name,
  93.                        email_address, username,
  94.                        password
  95.                    )
  96.                    VALUES (?,?,?,?,?)''',
  97.                     (
  98.                         default_user.user_info.first_name,
  99.                         default_user.user_info.last_name,
  100.                         default_user.user_info.email_address,
  101.                         default_user.user_login.username,
  102.                         default_user.user_login.password
  103.                     )
  104.                 )
  105.  
  106.                 return Result.ok("Default User Written Successfully")
  107.             except Exception as e:
  108.                 return Result.fail(e)
  109.  
Advertisement
Add Comment
Please, Sign In to add comment