diff --git a/onelya_sdk/aeroexpress/reservation/requests.py b/onelya_sdk/aeroexpress/reservation/requests.py index e4f6fb4..8e5ac1a 100644 --- a/onelya_sdk/aeroexpress/reservation/requests.py +++ b/onelya_sdk/aeroexpress/reservation/requests.py @@ -1,5 +1,5 @@ from datetime import datetime -from onelya_sdk.utils import get_array +from onelya_sdk import utils from onelya_sdk.wrapper.types import (RailwayPassengerCategory, PreferredAdultTariffType, CarType, CarStorey, RzhdCardTypes, CabinGenderKind, CabinPlaceDemands, ProviderPaymentForm, AdditionalPlaceRequirements, DocumentType, Sex) @@ -36,10 +36,10 @@ def __init__(self, document_number: str, document_type: DocumentType, first_name 'sex': self.sex, 'index': self.index, 'middle_name': self.middle_name, - 'document_valid_till': self.document_valid_till, + 'document_valid_till': utils.str_datetime(self.document_valid_till), 'citizenship_code': self.citizenship_code, 'birth_place': self.birth_place, - 'birthday': self.birthday + 'birthday': utils.str_datetime(self.birthday) } @@ -50,7 +50,7 @@ def __init__(self, tariff_id: str, departure_date: datetime, passengers: 'list o self.type = 'ApiContracts.Aeroexpress.V1.Messages.Reservation.AeroexpressReservationRequest, ApiContracts' self.tariff_id = tariff_id self.departure_date = departure_date - self.passengers = get_array(passengers, AeroexpressPassengerRequest) + self.passengers = utils.get_array(passengers, AeroexpressPassengerRequest) self.index = index self.schedule_id = schedule_id self.provider_payment_form = provider_payment_form @@ -60,7 +60,7 @@ def __init__(self, tariff_id: str, departure_date: datetime, passengers: 'list o self.json_data = { 'type': self.type, 'tariff_id': self.tariff_id, - 'departure_date': self.departure_date, + 'departure_date': utils.str_datetime(self.departure_date), 'passengers': [item.order_customer_index for item in self.passengers], 'index': self.index, 'schedule_id': self.schedule_id, diff --git a/onelya_sdk/railway/reservation/requests.py b/onelya_sdk/railway/reservation/requests.py index f017cfb..cf9a171 100644 --- a/onelya_sdk/railway/reservation/requests.py +++ b/onelya_sdk/railway/reservation/requests.py @@ -1,3 +1,4 @@ +from onelya_sdk import utils from datetime import datetime from onelya_sdk.wrapper.types import (RailwayPassengerCategory, PreferredAdultTariffType, CarType, CarStorey, RzhdCardTypes, CabinGenderKind, CabinPlaceDemands, ProviderPaymentForm, @@ -55,10 +56,10 @@ def __init__(self, document_number: str, document_type: DocumentType, first_name 'sex': self.sex, 'index': self.index, 'middle_name': self.middle_name, - 'document_valid_till': self.document_valid_till, + 'document_valid_till': utils.str_datetime(self.document_valid_till), 'citizenship_code': self.citizenship_code, 'birth_place': self.birth_place, - 'birthday': self.birthday + 'birthday': utils.str_datetime(self.birthday) } @@ -99,7 +100,7 @@ def __init__(self, origin_code: str, destination_code: str, departure_date: date 'type': self.type, 'origin_code': self.origin_code, 'destination_code': self.destination_code, - 'departure_date': self.departure_date, + 'departure_date': utils.str_datetime(self.departure_date), 'train_number': self.train_number, 'car_type': self.car_type, 'passengers': [item.json_data for item in self.passengers], diff --git a/onelya_sdk/utils.py b/onelya_sdk/utils.py index 7dea1c2..1d0e24f 100644 --- a/onelya_sdk/utils.py +++ b/onelya_sdk/utils.py @@ -25,7 +25,7 @@ def get_datetime_array(items): return None -def set_datetime(item): +def str_datetime(item): if item is not None: return item.strftime('%Y-%m-%dT%X') return None diff --git a/onelya_sdk/wrapper/__init__.py b/onelya_sdk/wrapper/__init__.py index 46d918b..95fa11f 100644 --- a/onelya_sdk/wrapper/__init__.py +++ b/onelya_sdk/wrapper/__init__.py @@ -114,8 +114,8 @@ def __init__(self, json_data): class FreePlacesByCompartments(object): def __init__(self, json_data): - self.compartment_number = get_array(json_data.get('CompartmentNumber'), int) - self.places = json_data.get('Places') + self.compartment_number = json_data.get('CompartmentNumber') + self.places = get_array(json_data.get('Places'), int) class CarPriceInfo(object): @@ -135,7 +135,7 @@ def __init__(self, json_data): self.min_price = get_item(json_data.get('MinPrice'), float) self.max_price = get_item(json_data.get('MaxPrice'), float) self.service_cost = get_item(json_data.get('ServiceCost'), float) - self.free_places_by_compartments = get_item(json_data.get('FreePlacesByCompartments'), FreePlacesByCompartments) + self.free_places_by_compartments = get_array(json_data.get('FreePlacesByCompartments'), FreePlacesByCompartments) self.place_reservation_type = json_data.get('PlaceReservationType') self.availability_indication = json_data.get('AvailabilityIndication') self.carrier = json_data.get('Carrier') diff --git a/onelya_sdk/wrapper/requests.py b/onelya_sdk/wrapper/requests.py index 3be8dca..9f272bd 100644 --- a/onelya_sdk/wrapper/requests.py +++ b/onelya_sdk/wrapper/requests.py @@ -1,5 +1,5 @@ from datetime import datetime -from ..utils import set_datetime +from ..utils import str_datetime class RequestWrapper(object): @@ -24,15 +24,16 @@ def __get_json_data(self, recursive, **kwargs): elif type(item) is list: json_data[onelya_key] = [self.__get_json_data(True, **{'Key': list_item}) for list_item in item] elif type(item) is datetime: - json_data[onelya_key] = set_datetime(item) + json_data[onelya_key] = str_datetime(item) else: object_name = self.__get_onelya_key(key) if json_data.get(object_name, None) is None: json_data[object_name] = {} for object_attribute in item.__dict__.keys(): - object_attribute_name = self.__get_onelya_key(object_attribute) - json_data[object_name][object_attribute_name] = \ - self.__get_json_data(True, **{object_attribute_name: item.__getattribute__(object_attribute)}) + if object_attribute != 'json_data': + object_attribute_name = self.__get_onelya_key(object_attribute) + json_data[object_name][object_attribute_name] = \ + self.__get_json_data(True, **{object_attribute_name: item.__getattribute__(object_attribute)}) if recursive: return json_data[key] return json_data diff --git a/setup.py b/setup.py index 8693399..2ff2a70 100644 --- a/setup.py +++ b/setup.py @@ -1,6 +1,6 @@ from setuptools import setup, find_packages -__version__ = '1.2.4' +__version__ = '1.2.5' setup( version=__version__,