aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorFilipp Lepalaan <f@230.to>2013-02-12 21:07:20 +0200
committerFilipp Lepalaan <f@230.to>2013-02-12 21:07:20 +0200
commit1608775283df6b4b1db2175ec69c0c08032c8631 (patch)
tree925b0ae0a817ca73fcf308306ffd66a455c59cd6
parenta3ed8a72803bfe3dd65a2f6ac5c4f3264a68ced6 (diff)
downloadpy-gsxws-1608775283df6b4b1db2175ec69c0c08032c8631.tar.gz
py-gsxws-1608775283df6b4b1db2175ec69c0c08032c8631.tar.bz2
py-gsxws-1608775283df6b4b1db2175ec69c0c08032c8631.zip
Work around KGB serial number update issue
-rwxr-xr-xgsxws.py21
1 files changed, 13 insertions, 8 deletions
diff --git a/gsxws.py b/gsxws.py
index 91cec0d..6cafd5c 100755
--- a/gsxws.py
+++ b/gsxws.py
@@ -332,7 +332,9 @@ class Order(GsxObject):
self.data['orderLines'] = list()
def add_part(self, part_number, quantity):
- self.data['orderLines'].append({'partNumber': part_number, 'quantity': quantity})
+ self.data['orderLines'].append({
+ 'partNumber': part_number, 'quantity': quantity
+ })
def submit(self):
dt = CLIENT.factory.create('ns1:createStockingOrderRequestType')
@@ -512,12 +514,17 @@ class Repair(GsxObject):
The API is to be used on whole unit repairs that are in a released state.
This API can be invoked only after carry-in repair creation API.
"""
+
+ # Using raw XML to avoid:
+ # Exception: <UpdateKGBSerialNumberResponse/> not mapped to message part
+ CLIENT.set_options(retxml=True)
dt = self._make_type('ns1:updateKGBSerialNumberRequestType')
dt.repairConfirmationNumber = self.data['dispatchId']
dt.serialNumber = sn
result = CLIENT.service.KGBSerialNumberUpdate(dt)
- return result
+ root = ET.fromstring(result).findall('*//%s' % 'UpdateKGBSerialNumberResponse')
+ return GsxResponse.Process(root[0])
def lookup(self):
"""
@@ -569,7 +576,8 @@ class Repair(GsxObject):
def get_details(self):
"""
- The Repair Details API includes the shipment information similar to the Repair Lookup API.
+ The Repair Details API includes the shipment information
+ similar to the Repair Lookup API.
"""
dt = self._make_type('ns0:repairDetailsRequestType')
dt.dispatchId = self.data['dispatchId']
@@ -717,8 +725,5 @@ if __name__ == '__main__':
#fp = open(f, 'r')
#data = json.load(fp)
#data['requestReviewByApple'] = False
- #rep = Repair(dispatchId='')
- #print rep.update_kgb_sn('')
-
-
- \ No newline at end of file
+ rep = Repair(dispatchId='G139951292')
+ print rep.update_kgb_sn('QR252BK5A4S')