added a generic event class to model ILS events, removed functional event code from...
authorerickson <erickson@dcc99617-32d9-48b4-a31d-7c20da2025e4>
Thu, 17 Jan 2008 17:11:51 +0000 (17:11 +0000)
committererickson <erickson@dcc99617-32d9-48b4-a31d-7c20da2025e4>
Thu, 17 Jan 2008 17:11:51 +0000 (17:11 +0000)
git-svn-id: svn://svn.open-ils.org/ILS/trunk@8398 dcc99617-32d9-48b4-a31d-7c20da2025e4

Open-ILS/src/python/oils/event.py [new file with mode: 0644]
Open-ILS/src/python/oils/utils/utils.py

diff --git a/Open-ILS/src/python/oils/event.py b/Open-ILS/src/python/oils/event.py
new file mode 100644 (file)
index 0000000..e8f2481
--- /dev/null
@@ -0,0 +1,32 @@
+
+class Event(object):
+    ''' Generic ILS event object '''
+
+    def __init__(self, evt_hash={}):
+        self.code = evt_hash.get('ilsevent') or -1 
+        self.text_code = evt_hash.get('textcode') or ''
+        self.desc = evt_hash.get('desc') or ''
+        self.payload = evt_hash.get('payload') or None
+        self.debug = evt_hash.get('stacktrace') or ''
+        self.servertime = evt_hash.get('servertime') or ''
+
+        self.success = False
+        if self.code == int(0):
+            self.success = True
+
+    def __str__(self):
+        return '%s: %s:%s -> %s' % (
+            self.__class__.__name__, self.code, self.text_code, self.desc)
+
+    # XXX eventually, add events file parsing...
+
+    @staticmethod
+    def parse_event(evt=None):
+        ''' If the provided evt object is a dictionary object that looks
+            like an ILS event, construct an Event object and return it.
+            Returns None otherwise.  '''
+
+        if evt and 'ilsevent' in evt and 'textcode' in evt:
+            return Event(evt)
+
+        return None
index 1941a85..b1fd037 100644 (file)
@@ -23,20 +23,6 @@ from osrf.log import *
 # Grab-bag of general utility functions
 # -----------------------------------------------------------------------
 
-def isEvent(evt):
-    return (evt and isinstance(evt, dict) and evt.get('ilsevent') != None)
-
-def eventCode(evt):
-    if isEvent(evt):
-        return evt['ilsevent']
-    return None
-
-def eventText(evt):
-    if isEvent(evt):
-        return evt['textcode']
-    return None
-
-      
 def md5sum(str):
     m = md5.new()
     m.update(str)