From b7d052a6b3db3e545249a2ae18d0099d4d2115b1 Mon Sep 17 00:00:00 2001 From: Ross Scroggs Date: Tue, 23 Mar 2021 05:53:43 -0700 Subject: [PATCH] Match ENUM fields and descriptions (#1340) --- src/gam/gapi/chromepolicy.py | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/src/gam/gapi/chromepolicy.py b/src/gam/gapi/chromepolicy.py index 48ebaa67..c3ab5263 100644 --- a/src/gam/gapi/chromepolicy.py +++ b/src/gam/gapi/chromepolicy.py @@ -111,6 +111,7 @@ def build_schemas(svc=None, sfilter=None): 'description': schema.get('policyDescription', ''), 'settings': {}, } + field_descriptions = schema.get('fieldDescriptions', []) for mtype in schema.get('definition', {}).get('messageType', {}): for setting in mtype.get('field', {}): setting_name = setting.get('name', '') @@ -133,13 +134,16 @@ def build_schemas(svc=None, sfilter=None): setting_dict['enums'] = [enum[prefix_len:] for enum \ in setting_dict['enums'] \ if not enum.endswith('UNSPECIFIED')] - break - for fdesc in schema.get('fieldDescriptions', []): - if fdesc.get('field') == setting_name: - setting_dict['descriptions'] = [d['description'] \ - for d in \ - fdesc.get('knownValueDescriptions', \ - [])] + setting_dict['descriptions'] = ['']*len(setting_dict['enums']) + if field_descriptions: + for i, an in enumerate(setting_dict['enums']): + for fdesc in field_descriptions: + if fdesc.get('field') == setting_name: + for d in fdesc.get('knownValueDescriptions', []): + if d['value'][prefix_len:] == an: + setting_dict['descriptions'][i] = d['description'] + break + break break elif setting_dict['type'] == 'TYPE_MESSAGE': continue