From 7eb474305166d0ba1fdcd17d7daa51da457a87fd Mon Sep 17 00:00:00 2001
From: nathan <nathan9.baker@live.uwe.ac.uk>
Date: Thu, 21 Nov 2024 16:52:25 +0000
Subject: [PATCH] restructureing staffUser to be more readable.

---
 Diagrams/Class_Diagram.asta.lock |  0
 src/dbfunc.py                    |  2 +-
 src/managerUser.py               |  2 +-
 src/staffUser.py                 | 84 +++++++++++++++++---------------
 4 files changed, 46 insertions(+), 42 deletions(-)
 delete mode 100644 Diagrams/Class_Diagram.asta.lock

diff --git a/Diagrams/Class_Diagram.asta.lock b/Diagrams/Class_Diagram.asta.lock
deleted file mode 100644
index e69de29..0000000
diff --git a/src/dbfunc.py b/src/dbfunc.py
index b337a0b..ac61c2b 100644
--- a/src/dbfunc.py
+++ b/src/dbfunc.py
@@ -1,4 +1,4 @@
-import logging, json, mysql.connector
+import logging, json, mysql
 from mysql.connector import errorcode
 
 # Vars
diff --git a/src/managerUser.py b/src/managerUser.py
index 43e122f..f74edda 100644
--- a/src/managerUser.py
+++ b/src/managerUser.py
@@ -10,7 +10,7 @@ class ManagerUser(AdminUser):
         super().__init__()
         self.permissionLevel = 2
     
-    def expandBuisness(self):
+    def expand_buisness(self):
         # creates new cinemaObj and adds it to db.
         raise NotImplementedError()
 
diff --git a/src/staffUser.py b/src/staffUser.py
index a242233..94df517 100644
--- a/src/staffUser.py
+++ b/src/staffUser.py
@@ -1,5 +1,5 @@
 import logging, json
-
+from .constants import DBNAME
 from .dbfunc import *
 from .cinemaObj import Cinema
 
@@ -14,32 +14,53 @@ class StaffUser(object):
         self.cinemas = [0]
         
     def __str__(self):
-        if self.permissionLevel == 1:
-            userType = "Admin"
-        elif self.permissionLevel == 2:
-            userType = "Manager"
-        else:
-            userType = "BookingStaff"
-        return f"{userType} user object(userID={self.userID}, userName={self.userName}, userPass={self.userPass})"
-    
-
-    def save(self) -> None:
-        """save self to db."""
-        raise NotImplementedError()
+        return f"{self.__class__.__name__} user object(userID={self.userID}, userName={self.userName}, userPass={self.userPass}, permissionLevel={self.permissionLevel})"
 
-    def login(self) -> None:
-        logging.debug(f"user {self.userID} logging in.")
+    def login(self, userID) -> None:
+        """get values for self from db"""
+        logging.debug("called login func")
+        jsonData = selectFromTblWhere("tblUsers", "", f"user_id={userID}", "*")
+        dictData = json.loads(jsonData)
+        logging.debug(f"loaded data: {dictData}")
+        
+        # update self data with new values.
         raise NotImplementedError()
+    
+    def _save_self_to_db(self) -> None:
+        """save self.__dict__ to db."""
+        logging.debug("called _save_self_to_db func")
+        try:
+            saveToTbl("tblUsers", DBNAME, self.__dict__)
+        except Exception as e:
+            logging.error(e.message, e.args)
 
     def logout(self) -> None:
-        logging.debug(f"user {self.userID} logging out.")
-        self.save()
+        """save to database then """
+        logging.debug("called logout func")
+        logging.info(f"user {self.userID} logging out.")
+        self._save_self_to_db()
+        self.close()
+    
+    def return_film_listings(self) -> list:
+        logging.debug("called returnFilmListings func")
+        listings = []
+        for i in self.cinemas:
+            cinema = Cinema(id=i)
+            listings.append(cinema.get_listings())
+        return listings
+            
+    def createBooking(self) -> None:
+        logging.debug("called createBooking func")
+        raise NotImplementedError()
+    
+    def manageBooking(self) -> None:
+        logging.debug("called manageBooking func")
+        raise NotImplementedError()
     
-    def cli_ViewFilmListings(self) -> None:
-        logging.debug("this is the viewFilmListing func")
-        cinema = Cinema(id=1)
-        for i in cinema.get_listings():
-            # will need formating
+    def cli_view_film_listings(self) -> None:
+        logging.debug("called cli_viewFilmListing func")
+        for i in self.returnFilmListings():
+            # will need formating, from json?
             print(f"listing:{i}")
 
         case = input("Options: 1-exit, 2-move to create booking, 3-logout\n: ")
@@ -48,25 +69,8 @@ class StaffUser(object):
         elif case == "3":
             self.logout()
     
-    def createBooking(self) -> None:
-        logging.debug("called createBooking func")
-        raise NotImplementedError()
-    
-    def manageBooking(self) -> None:
-        logging.debug("called manageBooking func")
-        raise NotImplementedError()
+
     
-    def updateFromDataBase(self, userID) -> None:
-        """
-        get values for self from db
-        args:
-            userID: id for user to load into object"""
-        jsonData = selectFromTblWhere("tblUsers", "", f"user_id={userID}", "*")
-        dictData = json.loads(jsonData)
-        logging.debug(f"loaded data: {dictData}")
-        
-        # update self data with new values.
-        raise NotImplementedError()
 
     
     
-- 
GitLab