|
5 | 5 | import uuid
|
6 | 6 |
|
7 | 7 | from graphene.types.json import JSONString
|
8 |
| -from graphene.utils.str_converters import to_snake_case |
| 8 | +from graphene.utils.str_converters import to_snake_case, to_camel_case |
9 | 9 | from mongoengine.base import get_document, LazyReference
|
10 | 10 | from . import advanced_types
|
11 | 11 | from .utils import import_single_dispatch, get_field_description, get_query_fields
|
@@ -67,6 +67,13 @@ def convert_field_to_float(field, registry=None):
|
67 | 67 | )
|
68 | 68 |
|
69 | 69 |
|
| 70 | +@convert_mongoengine_field.register(mongoengine.Decimal128Field) |
| 71 | +def convert_field_to_decimal(field, registry=None): |
| 72 | + return graphene.Decimal( |
| 73 | + description=get_field_description(field, registry), required=field.required |
| 74 | + ) |
| 75 | + |
| 76 | + |
70 | 77 | @convert_mongoengine_field.register(mongoengine.DateTimeField)
|
71 | 78 | def convert_field_to_datetime(field, registry=None):
|
72 | 79 | return graphene.DateTime(
|
@@ -233,12 +240,10 @@ def convert_field_to_union(field, registry=None):
|
233 | 240 | if len(_types) == 0:
|
234 | 241 | return None
|
235 | 242 |
|
236 |
| - # XXX: Use uuid to avoid duplicate name |
237 |
| - name = "{}_{}_union_{}".format( |
| 243 | + name = to_camel_case("{}_{}".format( |
238 | 244 | field._owner_document.__name__,
|
239 |
| - field.db_field, |
240 |
| - str(uuid.uuid1()).replace("-", ""), |
241 |
| - ) |
| 245 | + field.db_field |
| 246 | + )) + "UnionType" |
242 | 247 | Meta = type("Meta", (object,), {"types": tuple(_types)})
|
243 | 248 | _union = type(name, (graphene.Union,), {"Meta": Meta})
|
244 | 249 |
|
|
0 commit comments