Skip to content

Commit b10efa1

Browse files
committed
simplify the inclusion of additional 'meta-fields' (e.g., _creationDate) in type filters
1 parent 1d47cb1 commit b10efa1

File tree

2 files changed

+16
-6
lines changed

2 files changed

+16
-6
lines changed

graphql-api-generator/generator.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -96,7 +96,7 @@ def run(schema: GraphQLSchema, config: dict):
9696
if config.get('generation').get('query_type_filter') or config.get('generation').get('query_list_of'):
9797
schema = add_enum_filters(schema)
9898
schema = add_scalar_filters(schema, config)
99-
schema = add_type_filters(schema, config.get('generation').get('field_for_creation_date'), config.get('generation').get('field_for_last_update_date'))
99+
schema = add_type_filters(schema)
100100

101101
if config.get('generation').get('query_type_filter'):
102102
schema = add_object_type_filters(schema)

graphql-api-generator/utils/utils.py

Lines changed: 15 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,16 @@ def uppercase(string: str):
1818
return string.upper()
1919

2020

21+
def is_meta_field(field):
22+
"""
23+
Returns true if a field should be recognized as a system defined meta data field.
24+
:param field:
25+
:return:
26+
"""
27+
meta_fields = ['_creationDate', '_lastUpdateDate']
28+
return field in meta_fields
29+
30+
2131
def capitalize(string: str):
2232
"""
2333
Make the first letter of string upper case.
@@ -487,8 +497,9 @@ def add_scalar_filters(schema: GraphQLSchema, config: dict):
487497
' _neq: Boolean ' \
488498
'} '
489499

490-
# DateTime (behaves like a integer)
491-
if config.get('generation').get('generate_datetime'):
500+
# If DateTime is defined as a scalar then create filter (behaves like an integer)
501+
date_time = schema.type_map.get("DateTime")
502+
if is_scalar_type(date_time):
492503
manually_handled_scalars.append('DateTime')
493504
make += 'input _DateTimeFilter {' \
494505
' _eq: DateTime ' \
@@ -518,7 +529,7 @@ def add_scalar_filters(schema: GraphQLSchema, config: dict):
518529
return schema
519530

520531

521-
def add_type_filters(schema: GraphQLSchema, field_for_creation_date, field_for_last_update_date):
532+
def add_type_filters(schema: GraphQLSchema):
522533
"""
523534
Add filter types (Hasura-style filters).
524535
:param schema: schema
@@ -535,8 +546,7 @@ def add_type_filters(schema: GraphQLSchema, field_for_creation_date, field_for_l
535546
f' _not: _FilterFor{_type.name} '
536547

537548
for field_name, field in _type.fields.items():
538-
# This is a bit questionable
539-
if field_name[0] == '_' and not (field_for_creation_date and field_name == '_creationDate') and not (field_for_last_update_date and field_name == '_lastUpdateDate'):
549+
if field_name[0] == '_' and not is_meta_field(field_name):
540550
continue
541551

542552
# remove outer required

0 commit comments

Comments
 (0)