Skip to content
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
7 changes: 5 additions & 2 deletions ebay/__init__.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,6 @@
def configure(*args, **kwargs): pass
def configure(*args, **kwargs):
pass


class EBay(object):
"""An object that helps to wrap around raw api calls.
Expand All @@ -15,7 +17,8 @@ class EBay(object):
>>> ebay.finding.getVersion() # calls finding.py/getVersion with
# appropriate parameters.
"""

def __init__(self, dev=None, app=None, cert=None, config="config.ini"):
## read the config file and load the dev, app, cert variables.
## override the variables from the paramters passed in.
## override the variables from the parameters passed in.
pass
287 changes: 152 additions & 135 deletions ebay/best_match.py

Large diffs are not rendered by default.

58 changes: 34 additions & 24 deletions ebay/client_alerts.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,65 +2,75 @@
from utils import get_config_store


def GetPublicAlerts(ChannelID, ChannelType, EventType, MessageID=None, LastRequestTime=None, encoding="JSON"):
user_param={'callname' : GetPublicAlerts.__name__,
'ChannelDescriptor(0).ChannelID' : ChannelID,
'ChannelDescriptor(0).ChannelType' : ChannelType,
'ChannelDescriptor(0).EventType' : EventType,
'responseencoding' : encoding}
def GetPublicAlerts(ChannelID, ChannelType, EventType,
MessageID=None, LastRequestTime=None,
encoding="JSON"):
user_param = {
'callname': GetPublicAlerts.__name__,
'ChannelDescriptor(0).ChannelID': ChannelID,
'ChannelDescriptor(0).ChannelType': ChannelType,
'ChannelDescriptor(0).EventType': EventType,
'responseencoding': encoding}

if MessageID:
user_param.update({"MessageID" : MessageID})
user_param.update({"MessageID": MessageID})

if LastRequestTime:
user_param.update({"LastRequestTime" : LastRequestTime})
user_param.update({"LastRequestTime": LastRequestTime})

response = get_response(user_param)
return response.content


def GetUserAlerts(SessionID, SessionData, MessageID=None, encoding="JSON"):
user_param={'callname' : GetUserAlerts.__name__,
'SessionData' : SessionData,
'SessionID' : SessionID,
'responseencoding' : encoding}
user_param = {
'callname': GetUserAlerts.__name__,
'SessionData': SessionData,
'SessionID': SessionID,
'responseencoding': encoding}

if MessageID:
user_param.update({"MessageID" : MessageID})
user_param.update({"MessageID": MessageID})

response = get_response(user_param)
return response.content


def Login(ClientAlertsAuthToken, MessageID=None, encoding="JSON"):
user_param={'callname' : Login.__name__,
'ClientAlertsAuthToken' : ClientAlertsAuthToken,
'responseencoding' : encoding}
user_param = {
'callname': Login.__name__,
'ClientAlertsAuthToken': ClientAlertsAuthToken,
'responseencoding': encoding}

if MessageID:
user_param.update({"MessageID" : MessageID})
user_param.update({"MessageID": MessageID})

response = get_response(user_param)
return response.content


def Logout(SessionID, SessionData, MessageID=None, encoding="JSON"):
user_param={'callname' : Logout.__name__,
'SessionData' : SessionData,
'SessionID' : SessionID,
'responseencoding' : encoding}
user_param = {
'callname': Logout.__name__,
'SessionData': SessionData,
'SessionID': SessionID,
'responseencoding': encoding}

if MessageID:
user_param.update({"MessageID" : MessageID})
user_param.update({"MessageID": MessageID})

response = get_response(user_param)
return response.content


def get_response(user_params):
config = get_config_store()
app_id = config.get("keys", "app_name")
site_id = config.get("call", "siteid")
version = config.get("call", "compatibility_level")
endpoint = config.get("endpoints", "client_alerts")

d=dict(appid = app_id, siteid = site_id, version = version)
d = dict(appid=app_id, siteid=site_id, version=version)
d.update(user_params)

return requests.get(endpoint, params=d)
return requests.get(endpoint, params=d)
52 changes: 33 additions & 19 deletions ebay/feedback.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,12 @@
from utils import get_config_store


def createDSRSummaryByCategory(categoryId , dateRangeFrom, dateRangeTo, dateRangeEventType=None, encoding="JSON"):
root = etree.Element("createDSRSummaryByCategoryRequest", xmlns="http://www.ebay.com/marketplace/services")
def createDSRSummaryByCategory(
categoryId, dateRangeFrom,
dateRangeTo, dateRangeEventType=None,
encoding="JSON"):
root = etree.Element("createDSRSummaryByCategoryRequest",
xmlns="http://www.ebay.com/marketplace/services")

#categoryId is a List
for cat_id in categoryId:
Expand All @@ -27,8 +31,11 @@ def createDSRSummaryByCategory(categoryId , dateRangeFrom, dateRangeTo, dateRang
return get_response(createDSRSummaryByCategory.__name__, request, encoding)


def createDSRSummaryByPeriod(dateRangeFrom, dateRangeTo, dateRangeEventType=None, encoding="JSON"):
root = etree.Element("createDSRSummaryByPeriodRequest", xmlns="http://www.ebay.com/marketplace/services")
def createDSRSummaryByPeriod(
dateRangeFrom, dateRangeTo,
dateRangeEventType=None, encoding="JSON"):
root = etree.Element("createDSRSummaryByPeriodRequest",
xmlns="http://www.ebay.com/marketplace/services")

dateRange_elem = etree.SubElement(root, "dateRange")
dateRangeFrom_elem = etree.SubElement(dateRange_elem, "dateFrom")
Expand All @@ -44,8 +51,14 @@ def createDSRSummaryByPeriod(dateRangeFrom, dateRangeTo, dateRangeEventType=None
request = etree.tostring(root, pretty_print=True)
return get_response(createDSRSummaryByPeriod.__name__, request, encoding)

def createDSRSummaryByShippingDetail(dateRangeFrom, dateRangeTo, dateRangeEventType=None, shippingCostType=None, shippingDestinationType=None, shippingService=None, shipToCountry=None, encoding="JSON"):
root = etree.Element("createDSRSummaryByShippingDetailRequest", xmlns="http://www.ebay.com/marketplace/services")

def createDSRSummaryByShippingDetail(
dateRangeFrom, dateRangeTo,
dateRangeEventType=None, shippingCostType=None,
shippingDestinationType=None, shippingService=None,
shipToCountry=None, encoding="JSON"):
root = etree.Element("createDSRSummaryByShippingDetailRequest",
xmlns="http://www.ebay.com/marketplace/services")

dateRange_elem = etree.SubElement(root, "dateRange")
dateRangeFrom_elem = etree.SubElement(dateRange_elem, "dateFrom")
Expand All @@ -67,16 +80,15 @@ def createDSRSummaryByShippingDetail(dateRangeFrom, dateRangeTo, dateRangeEventT
shippingDestinationType_elem.text = shippingDestinationType

#shippingService is a List
if shippingService and len(shippingService)>0:
if shippingService and len(shippingService) > 0:
for service in shippingService:
shippingService_elem = etree.SubElement(root, "shippingService")
shippingService_elem.text = shippingService

#shipToCountry is a List
if shipToCountry:
for country in shipToCountry:
shipToCountry_elem = etree.SubElement(root, "shipToCountry")
shipToCountry_elem.text = shipToCountry
for country in shipToCountry:
shipToCountry_elem = etree.SubElement(root, "shipToCountry")
shipToCountry_elem.text = shipToCountry

request = etree.tostring(root, pretty_print=True)
return get_response(createDSRSummaryByShippingDetail.__name__, request, encoding)
Expand All @@ -85,21 +97,23 @@ def createDSRSummaryByShippingDetail(dateRangeFrom, dateRangeTo, dateRangeEventT
#making transactionId required here, but it's not in the eBay API. Will fix it later
#transactionId is a list of dicts: [{itemId:123, transactionId:72}, {itemId:33, transactionId:21}]
def createDSRSummaryByTransaction(transactionKey, encoding="JSON"):
root = etree.Element("createDSRSummaryByTransactionRequest", xmlns="http://www.ebay.com/marketplace/services")
root = etree.Element("createDSRSummaryByTransactionRequest",
xmlns="http://www.ebay.com/marketplace/services")

for t in transactionKey:
transactionKey_elem = etree.SubElement(root, "transactionKey")

for key in t.keys():
itemId_elem = etree.SubElement(transactionKey_elem, key)
itemId_elem.text = t[key]
itemId_elem.text = t[key]

request = etree.tostring(root, pretty_print=True)
return get_response(createDSRSummaryByTransaction.__name__, request, encoding)


def getDSRSummary(jobId, encoding="JSON"):
root = etree.Element("getDSRSummaryRequest", xmlns="http://www.ebay.com/marketplace/services")
root = etree.Element("getDSRSummaryRequest",
xmlns="http://www.ebay.com/marketplace/services")

jobId_elem = etree.SubElement(root, "jobId")
jobId_elem.text = jobId
Expand All @@ -113,13 +127,13 @@ def get_response(operation_name, data, encoding, **headers):
access_token = config.get("auth", "token")
endpoint = config.get("endpoints", "feedback")

http_headers = {"X-EBAY-SOA-OPERATION-NAME": operation_name,
"X-EBAY-SOA-SECURITY-TOKEN": access_token,
"X-EBAY-SOA-RESPONSE-DATA-FORMAT": encoding}
http_headers = {
"X-EBAY-SOA-OPERATION-NAME": operation_name,
"X-EBAY-SOA-SECURITY-TOKEN": access_token,
"X-EBAY-SOA-RESPONSE-DATA-FORMAT": encoding}

http_headers.update(headers)

req = urllib2.Request(endpoint, data, http_headers)
res = urllib2.urlopen(req)
data = res.read()
return data
return res.read()
Loading