diff --git a/ChangeLog b/ChangeLog index aea96f99..509c433d 100644 --- a/ChangeLog +++ b/ChangeLog @@ -22769,3 +22769,9 @@ a list of 'rivwebpyapi.SchedulerCode' objects. * Modified the 'rivwebpyapi.ListSchedulerCodes()' call to return a list of 'rivwebpyapi.SchedulerCode' objects. +2021-12-12 Fred Gleason + * Added a 'Group()' type class to the 'rivwebpyapi' API. + * Modified the 'rivwebpyapi.ListGroup()' call to return + a 'rivwebpyapi.Group' object. + * Modified the 'rivwebpyapi.ListGroups()' call to return + a list of 'rivwebpyapi.Group' objects. diff --git a/apis/rivwebpyapi/api/rivwebpyapi.py b/apis/rivwebpyapi/api/rivwebpyapi.py index 9dd0c267..a77fd233 100755 --- a/apis/rivwebpyapi/api/rivwebpyapi.py +++ b/apis/rivwebpyapi/api/rivwebpyapi.py @@ -121,6 +121,20 @@ CUT_FIELDS={ 'talkEndPoint': 'integer' } +GROUP_FIELDS={ + 'name': 'string', + 'description': 'string', + 'defaultCartType': 'string', + 'defaultLowCart': 'integer', + 'defaultHighCart': 'integer', + 'cutShelfLife': 'integer', + 'defaultTitle': 'string', + 'enforceCartRange': 'boolean', + 'reportTfc': 'boolean', + 'reportMus': 'boolean', + 'color': 'string' +} + LOG_FIELDS={ 'name': 'string', 'serviceName': 'string', @@ -411,6 +425,10 @@ class Cut(RivendellType): def __init__(self,values={}): super().__init__(CUT_FIELDS,values) +class Group(RivendellType): + def __init__(self,values={}): + super().__init__(GROUP_FIELDS,values) + class Log(RivendellType): def __init__(self,values={}): super().__init__(LOG_FIELDS,values) @@ -1417,7 +1435,7 @@ class rivwebpyapi(object): def ListGroup(self,group_name): """ - Returns a Rivendell group (dictionary). + Returns a Rivendell group (rivwebpyapi.Group object). Takes the following argument: @@ -1445,27 +1463,15 @@ class rivwebpyapi(object): # # Generate the output dictionary # - fields={ - 'name': 'string', - 'description': 'string', - 'defaultCartType': 'string', - 'defaultLowCart': 'integer', - 'defaultHighCart': 'integer', - 'cutShelfLife': 'integer', - 'defaultTitle': 'string', - 'enforceCartRange': 'boolean', - 'reportTfc': 'boolean', - 'reportMus': 'boolean', - 'color': 'string' - } - handler=RivWebPyApi_ListHandler(base_tag='group',fields=fields) + handler=RivWebPyApi_ListHandler(base_tag='group',fields=GROUP_FIELDS) xml.sax.parseString(r.text,handler) - return handler.output()[0] + return Group(handler.output()[0]) def ListGroups(self): """ - Returns a list of all Rivendell groups (list of dictionaries). + Returns a list of all Rivendell groups + (list of rivwebpyapi.Group objects). """ # @@ -1487,23 +1493,14 @@ class rivwebpyapi(object): # # Generate the output dictionary # - fields={ - 'name': 'string', - 'description': 'string', - 'defaultCartType': 'string', - 'defaultLowCart': 'integer', - 'defaultHighCart': 'integer', - 'cutShelfLife': 'integer', - 'defaultTitle': 'string', - 'enforceCartRange': 'boolean', - 'reportTfc': 'boolean', - 'reportMus': 'boolean', - 'color': 'string' - } - handler=RivWebPyApi_ListHandler(base_tag='group',fields=fields) + handler=RivWebPyApi_ListHandler(base_tag='group',fields=GROUP_FIELDS) xml.sax.parseString(r.text,handler) + out=handler.output() + ret=[] + for item in out: + ret.append(Group(item)) - return handler.output() + return ret def ListLog(self,log_name): """ diff --git a/apis/rivwebpyapi/tests/list_group.py b/apis/rivwebpyapi/tests/list_group.py index 3e674bf3..89a1dee2 100755 --- a/apis/rivwebpyapi/tests/list_group.py +++ b/apis/rivwebpyapi/tests/list_group.py @@ -71,17 +71,8 @@ except rivwebpyapi.RivWebPyError as err: sys.exit(1) # -# Display the group list +# Display the group # -print('') -print('name: '+grp['name']) -print('description: '+grp['description']) -print('defaultCartType: '+grp['defaultCartType']) -print('defaultLowCart: '+str(grp['defaultLowCart'])) -print('defaultHighCart: '+str(grp['defaultHighCart'])) -print('cutShelfLife: '+str(grp['cutShelfLife'])) -print('defaultTitle: '+grp['defaultTitle']) -print('enforceCartRange: '+str(grp['enforceCartRange'])) -print('reportTfc: '+str(grp['reportTfc'])) -print('reportMus: '+str(grp['reportMus'])) +for key in grp.values(): + print(key+': '+str(grp.values()[key])) print('') diff --git a/apis/rivwebpyapi/tests/list_groups.py b/apis/rivwebpyapi/tests/list_groups.py index 879094a4..7aad0a75 100755 --- a/apis/rivwebpyapi/tests/list_groups.py +++ b/apis/rivwebpyapi/tests/list_groups.py @@ -69,14 +69,6 @@ except rivwebpyapi.RivWebPyError as err: # Display the group list # for grp in groups: - print('name: '+grp['name']) - print('description: '+grp['description']) - print('defaultCartType: '+grp['defaultCartType']) - print('defaultLowCart: '+str(grp['defaultLowCart'])) - print('defaultHighCart: '+str(grp['defaultHighCart'])) - print('cutShelfLife: '+str(grp['cutShelfLife'])) - print('defaultTitle: '+grp['defaultTitle']) - print('enforceCartRange: '+str(grp['enforceCartRange'])) - print('reportTfc: '+str(grp['reportTfc'])) - print('reportMus: '+str(grp['reportMus'])) + for key in grp.values(): + print(key+': '+str(grp.values()[key])) print('')