@ -55,6 +55,9 @@ class SQLitedb:
self . cursor . execute ( qq )
self . last_result = self . cursor . fetchall ( )
self . connection . commit ( )
except sqlite3 . OperationalError :
self . _createTable ( )
return self . query ( qq )
except sqlite3 . Error as e :
print ( " Couldn ' t execute query %s , exception: %s " % ( qq , e ) , file = stderr )
self . last_result = [ ]
@ -88,6 +91,9 @@ class SQLitedb:
except TypeError as e :
print ( " Types in given tuple doesnt match to execute query \" %s \" : %s " % ( qq , e ) , file = stderr )
self . last_result = [ ]
except sqlite3 . OperationalError as e :
self . _createTable ( )
return self . safequery ( qq , deliver )
return self . last_result
def removeApplicantFromDB ( self , userid : int ) - > bool :
@ -104,6 +110,10 @@ class SQLitedb:
except sqlite3 . Error as e :
print ( f " Could not delete user with id: { userid } , exception in DB: { e } " ) # @TODO LOGGING FFS
return False
except sqlite3 . OperationalError :
print ( " The database has probably not yet seen any users, so it didnt create your table yet. Come back "
" when a user tried to register " )
return False
return True
def removeApplicantFromDBperUsername ( self , username : str ) - > bool :
@ -120,8 +130,27 @@ class SQLitedb:
except sqlite3 . Error as e :
print ( f " Could not delete user { username } , exception in DB: { e } " ) # @TODO LOGGING
return False
except sqlite3 . OperationalError :
print ( " The database has probably not yet seen any users, so it didnt create your table yet. Come back "
" when a user tried to register " )
return False
return True
def _createTable ( self ) :
try :
self . cursor . execute (
" CREATE TABLE IF NOT EXISTS applications( "
" id INTEGER PRIMARY KEY AUTOINCREMENT, "
" username TEXT NOT NULL, email TEXT NOT NULL, "
" name TEXT NOT NULL, pubkey TEXT NOT NULL, "
" timestamp DATETIME DEFAULT CURRENT_TIMESTAMP CONSTRAINT "
" timestamp_valid CHECK( timestamp IS strftime( ' % Y- % m- %d % H: % M: % S ' , timestamp)) "
" ,status INTEGER NOT NULL DEFAULT 0); " )
self . connection . commit ( )
except sqlite3 . Error as e :
print ( f " The database probably doesn ' t exist yet, but read the message: { e } " )
print ( " The database table didn ' t exist yet; created it successfully! " )
if __name__ == " __main__ " :
try :