diff options
| -rw-r--r-- | lib/xas/message.py | 22 | ||||
| -rw-r--r-- | lib/xas/status.py | 25 | 
2 files changed, 37 insertions, 10 deletions
| diff --git a/lib/xas/message.py b/lib/xas/message.py new file mode 100644 index 0000000..dc673ef --- /dev/null +++ b/lib/xas/message.py @@ -0,0 +1,22 @@ +class Formatter(): +    def __init__(self, id: int, db): +        self.id = id +        self.db = db + +    def fmt(self, lookup, code, text=None): +        status = lookup(code) +        output = "%04d :: Code %03d :: %s" % (self.id, code, status.typeobj.name) + +        if status.typeobj.name != status.description: +            output += " :: " + status.description + +        if text is not None: +            output += " :: " + text + +        return output + +    def message(self, code, text=None): +        return self.fmt(self.db.status, code, text) + +    def error(self, code, text=None): +        return self.fmt(self.db.error, code, text) diff --git a/lib/xas/status.py b/lib/xas/status.py index 720d93f..1465616 100644 --- a/lib/xas/status.py +++ b/lib/xas/status.py @@ -12,9 +12,9 @@ class ErrorType(StatusType):      pass  class Status(): -    def __init__(self, id: int, typeof: StatusType, description: str): +    def __init__(self, id: int, typeobj: StatusType, description: str):          self.id          = id -        self.typeof      = typeof +        self.typeobj     = typeobj          self.description = description      def __str__(self): @@ -39,18 +39,21 @@ class Database():      def load_types(self):          targets = { -            "xas_status_type": self.statusTypes, -            "xas_error_type":  self.errorTypes +            "xas_status_type": (StatusType, self.statusTypes), +            "xas_error_type":  (ErrorType,  self.errorTypes)          }          for table in targets.keys(): -            target = targets[table] +            typeof = targets[table][0] +            target = targets[table][1]              cr = self.db.cursor()              cr.execute(f"select id, name from {table}")              for row in cr.fetchall(): -                target[row['id']] = row['name'] +                typeobj = typeof(row['id'], row['name']) + +                target[typeobj.id] = typeobj      def status_type(self, id: int):          return self.statusTypes[id] @@ -60,19 +63,21 @@ class Database():      def load_statuses(self):          targets = { -            "xas_status": (Status, self.statuses), -            "xas_error":  (Error,  self.errors) +            "xas_status": (Status, self.statusTypes, self.statuses), +            "xas_error":  (Error,  self.errorTypes,  self.errors)          }          for table in targets.keys():              typeof = targets[table][0] -            target = targets[table][1] +            types  = targets[table][1] +            target = targets[table][2]              cr = self.db.cursor()              cr.execute(f"select id, type_id, description from {table}")              for row in cr.fetchall(): -                obj = typeof(row['id'], row['type_id'], row['description']) +                typeobj = types[row['type_id']] +                obj     = typeof(row['id'], types[row['type_id']], row['description'])                  target[obj.id] = obj | 
 
    