Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Deserialize raw_device_attributes.data to correct type RawDeviceAttributesResult #71

Merged
merged 1 commit into from
Aug 22, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions fingerprint_pro_server_api_sdk/api_client.py
Original file line number Diff line number Diff line change
Expand Up @@ -588,6 +588,8 @@ def __deserialize_model(data, klass):
"""

if not klass.swagger_types and not ApiClientDeserializer.__hasattr(klass, 'get_real_child_model'):
if hasattr(klass, '__parent_class__') and klass.__parent_class__ == 'dict':
return klass(**data)
return data

kwargs = {}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@
from fingerprint_pro_server_api_sdk.base_model import BaseModel


class RawDeviceAttributesResult(BaseModel):
class RawDeviceAttributesResult(dict):
"""
It includes 35+ raw browser identification attributes to provide Fingerprint users with even more information than our standard visitor ID provides. This enables Fingerprint users to not have to run our open-source product in conjunction with Fingerprint Pro Plus and Enterprise to get those additional attributes. Warning: The raw signals data can change at any moment as we improve the product. We cannot guarantee the internal shape of raw device attributes to be stable, so typical semantic versioning rules do not apply here. Use this data with caution without assuming a specific structure beyond the generic type provided here.

Expand All @@ -36,7 +36,5 @@ class RawDeviceAttributesResult(BaseModel):
attribute_map = {
}

def __init__(self): # noqa: E501
"""RawDeviceAttributesResult - a model defined in Swagger""" # noqa: E501
self.discriminator = None
__parent_class__ = 'dict'

2 changes: 2 additions & 0 deletions template/api_client.mustache
Original file line number Diff line number Diff line change
Expand Up @@ -580,6 +580,8 @@ class ApiClientDeserializer:
"""

if not klass.swagger_types and not ApiClientDeserializer.__hasattr(klass, 'get_real_child_model'):
if hasattr(klass, '__parent_class__') and klass.__parent_class__ == 'dict':
return klass(**data)
return data

kwargs = {}
Expand Down
10 changes: 8 additions & 2 deletions template/model.mustache
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ from datetime import datetime
{{/vars}}


class {{classname}}(BaseModel):
class {{classname}}({{#parent}}{{parent}}{{/parent}}{{^parent}}BaseModel{{/parent}}):
"""{{#description}}
{{{.}}}

Expand Down Expand Up @@ -60,13 +60,19 @@ class {{classname}}(BaseModel):
}
{{/discriminator}}

{{#parent}}
__parent_class__ = '{{parent}}'
{{/parent}}
{{^parent}}
def __init__(self{{#vars}}, {{name}}={{#defaultValue}}{{{defaultValue}}}{{/defaultValue}}{{^defaultValue}}None{{/defaultValue}}{{/vars}}): # noqa: E501
"""{{classname}} - a model defined in Swagger""" # noqa: E501
"""{{classname}} - a model defined in Swagger""" # noqa: E501{{#parent}}
super().__init__(){{/parent}}
{{#vars}}{{#@first}}
{{/@first}}
self._{{name}} = None
{{/vars}}
self.discriminator = {{#discriminator}}'{{discriminator}}'{{/discriminator}}{{^discriminator}}None{{/discriminator}}
{{/parent}}
{{#vars}}{{#@first}}
{{/@first}}
{{#required}}
Expand Down
6 changes: 4 additions & 2 deletions test/test_fingerprint_api.py
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,8 @@
from fingerprint_pro_server_api_sdk import (Configuration, TooManyRequestsResponse, ErrorVisits403,
ErrorCommon403Response, ErrorEvent404Response, ErrorVisitor400Response,
ErrorVisitor404Response, ErrorCommon429Response, EventUpdateRequest,
ErrorUpdateEvent400Response, ErrorUpdateEvent409Response)
ErrorUpdateEvent400Response, ErrorUpdateEvent409Response,
RawDeviceAttributesResult)
from fingerprint_pro_server_api_sdk.api.fingerprint_api import FingerprintApi # noqa: E501
from fingerprint_pro_server_api_sdk.rest import KnownApiException, ApiException
from urllib.parse import urlencode
Expand Down Expand Up @@ -195,7 +196,8 @@ def test_get_event_correct_data(self):
fields=[self.integration_info], headers=self.request_headers,
preload_content=True, timeout=None)

self.api.get_event(mock_file1)
event_response = self.api.get_event(mock_file1)
self.assertIsInstance(event_response.products.raw_device_attributes.data, RawDeviceAttributesResult)

def test_get_event_errors_200(self):
"""Test checks correct code run result in scenario of arrors in BotD or identification API"""
Expand Down
Loading