Skip to content

Commit d50249e

Browse files
committed
Merge pull request #76 from hornedbull/master
Added fedex pickup service
2 parents 889c6e0 + cf2b777 commit d50249e

File tree

3 files changed

+4605
-0
lines changed

3 files changed

+4605
-0
lines changed

fedex/services/pickup_service.py

Lines changed: 65 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,65 @@
1+
from fedex.base_service import FedexBaseService
2+
3+
4+
class FedexCreatePickupRequest(FedexBaseService):
5+
6+
def __init__(self, config_obj, *args, **kwargs):
7+
self._config_obj = config_obj
8+
# Holds version info for the VersionId SOAP object.
9+
self._version_info = {
10+
'service_id': 'disp',
11+
'major': '11',
12+
'intermediate': '0',
13+
'minor': '0'
14+
}
15+
self.OriginDetail = None
16+
self.PackageCount = None
17+
self.TotalWeight = None
18+
self.CarrierCode = None
19+
self.OversizePackageCount = None
20+
self.Remarks = None
21+
self.CommodityDescription = None
22+
self.CountryRelationship = None
23+
super(FedexCreatePickupRequest, self).__init__(self._config_obj, 'PickupService_v11.wsdl', *args, **kwargs)
24+
25+
def _prepare_wsdl_objects(self):
26+
self.OriginDetail = self.client.factory.create('PickupOriginDetail')
27+
28+
self.OriginDetail.PickupLocation = self.client.factory.create('ContactAndAddress')
29+
self.OriginDetail.PickupLocation.Contact = self.client.factory.create('Contact')
30+
self.OriginDetail.PickupLocation.Address = self.client.factory.create('Address')
31+
32+
self.OriginDetail.PackageLocation = self.client.factory.create('PickupBuildingLocationType')
33+
self.OriginDetail.BuildingPart = self.client.factory.create('BuildingPartCode')
34+
35+
self.TotalWeight = self.client.factory.create('Weight')
36+
37+
self.CarrierCode = self.client.factory.create('CarrierCodeType')
38+
39+
self.logger.debug(self.OriginDetail)
40+
self.logger.debug(self.TotalWeight)
41+
self.logger.debug(self.CarrierCode)
42+
43+
def _assemble_and_send_request(self):
44+
"""
45+
Fires off the Fedex request.
46+
47+
@warning: NEVER CALL THIS METHOD DIRECTLY. CALL send_request(),
48+
WHICH RESIDES ON FedexBaseService AND IS INHERITED.
49+
"""
50+
51+
# Fire off the query.
52+
return self.client.service.createPickup(
53+
WebAuthenticationDetail=self.WebAuthenticationDetail,
54+
ClientDetail=self.ClientDetail,
55+
TransactionDetail=self.TransactionDetail,
56+
Version=self.VersionId,
57+
OriginDetail=self.OriginDetail,
58+
PackageCount=self.PackageCount,
59+
TotalWeight=self.TotalWeight,
60+
CarrierCode=self.CarrierCode,
61+
OversizePackageCount=self.OversizePackageCount,
62+
Remarks=self.Remarks,
63+
CommodityDescription=self.CommodityDescription,
64+
CountryRelationship=self.CountryRelationship
65+
)

0 commit comments

Comments
 (0)