From 269216c477a8506c529fa83665ec3405fcbaeda7 Mon Sep 17 00:00:00 2001 From: Filipp Lepalaan Date: Tue, 13 May 2014 22:02:05 +0300 Subject: Fix iOS diagnostics through Product.diagnostics() --- gsxws/objectify.py | 8 ++++++++ gsxws/products.py | 6 +++++- 2 files changed, 13 insertions(+), 1 deletion(-) (limited to 'gsxws') diff --git a/gsxws/objectify.py b/gsxws/objectify.py index e73adb3..19f6b12 100644 --- a/gsxws/objectify.py +++ b/gsxws/objectify.py @@ -9,6 +9,7 @@ from lxml import objectify from datetime import datetime DATETIME_TYPES = ('dispatchSentDate',) +DIAGS_TIMESTAMP_TYPES = ('startTimeStamp', 'endTimeStamp',) STRING_TYPES = ('alternateDeviceId', 'imeiNumber',) BASE64_TYPES = ('packingList', 'proformaFileData', 'returnLabelFileData',) FLOAT_TYPES = ('totalFromOrder', 'exchangePrice', 'stockPrice', 'netPrice',) @@ -88,6 +89,11 @@ def gsx_timestamp(value): return datetime.strptime(value, "%m/%d/%y %I:%M %p") +def gsx_diags_timestamp(value): + # It is always in GMT and in format DD-MMM-YY HH24:MM:SS + return datetime.strptime(value, "%d-%b-%y %I:%M:%S") + + class GsxElement(objectify.ObjectifiedElement): """ Each element in the GSX response tree should be a GsxElement @@ -121,6 +127,8 @@ class GsxElement(objectify.ObjectifiedElement): if name in DATETIME_TYPES: return gsx_datetime(result) + if name in DIAGS_TIMESTAMP_TYPES: + return gsx_diags_timestamp(result) if name in BASE64_TYPES: return gsx_attachment(result) if name in FLOAT_TYPES: diff --git a/gsxws/products.py b/gsxws/products.py index 5b58a23..6be6ace 100644 --- a/gsxws/products.py +++ b/gsxws/products.py @@ -113,7 +113,11 @@ class Product(object): """ >>> Product('DGKFL06JDHJP').diagnostics() """ - diags = Diagnostics(serialNumber=self.serialNumber) + diags = Diagnostics(serialNumber=self.sn) + + if hasattr(self, "alternateDeviceId"): + diags = Diagnostics(alternateDeviceId=self.alternateDeviceId) + return diags.fetch() def fetch_image(self, url=None): -- cgit v1.2.3