Skip to content
Open
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
304 changes: 146 additions & 158 deletions ebay/best_match.py

Large diffs are not rendered by default.

63 changes: 28 additions & 35 deletions ebay/client_alerts.py
Original file line number Diff line number Diff line change
@@ -1,76 +1,69 @@
import requests
from utils import get_config_store

try:
from utils import get_config_store, urlopen, Request
except ImportError:
from .utils import get_config_store, urlopen, Request

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)
66 changes: 29 additions & 37 deletions ebay/feedback.py
Original file line number Diff line number Diff line change
@@ -1,15 +1,15 @@
import urllib2
# import urllib2

from lxml import etree

from utils import get_config_store
try:
from utils import get_config_store, urlopen, Request
except ImportError:
from .utils import get_config_store, urlopen, Request


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 @@ -31,11 +31,8 @@ def createDSRSummaryByCategory(
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 @@ -51,14 +48,8 @@ def createDSRSummaryByPeriod(
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 @@ -80,15 +71,16 @@ def createDSRSummaryByShippingDetail(
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
for country in shipToCountry:
shipToCountry_elem = etree.SubElement(root, "shipToCountry")
shipToCountry_elem.text = shipToCountry
if 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 @@ -97,23 +89,21 @@ def createDSRSummaryByShippingDetail(
#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 @@ -127,13 +117,15 @@ 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)
return res.read()
# req = urllib2.Request(endpoint, data, http_headers)
req = Request(endpoint, data, http_headers)
# res = urllib2.urlopen(req)
res = urlopen(req)
data = res.read()
return data
Loading