]> git.evergreen-ils.org Git - working/Evergreen.git/blob - Open-ILS/src/python/oils/event.py
added a generic event class to model ILS events, removed functional event code from...
[working/Evergreen.git] / Open-ILS / src / python / oils / event.py
1
2 class Event(object):
3     ''' Generic ILS event object '''
4
5     def __init__(self, evt_hash={}):
6         self.code = evt_hash.get('ilsevent') or -1 
7         self.text_code = evt_hash.get('textcode') or ''
8         self.desc = evt_hash.get('desc') or ''
9         self.payload = evt_hash.get('payload') or None
10         self.debug = evt_hash.get('stacktrace') or ''
11         self.servertime = evt_hash.get('servertime') or ''
12
13         self.success = False
14         if self.code == int(0):
15             self.success = True
16
17     def __str__(self):
18         return '%s: %s:%s -> %s' % (
19             self.__class__.__name__, self.code, self.text_code, self.desc)
20
21     # XXX eventually, add events file parsing...
22
23     @staticmethod
24     def parse_event(evt=None):
25         ''' If the provided evt object is a dictionary object that looks
26             like an ILS event, construct an Event object and return it.
27             Returns None otherwise.  '''
28
29         if evt and 'ilsevent' in evt and 'textcode' in evt:
30             return Event(evt)
31
32         return None