class Circulation(object): ''' Makes a connection with the WMS Circulation API using the classes Connect (originally from OCLC) and Config ''' def __init__(self, service=None, useTestData = True): service = service # 'circulation' # WMS Circulation API self.config = Config(service = service, useTestData = useTestData) self.institution = self.config.getInstitutionData() self.serviceAPI = self.config.getServiceAPIData() self.institutionList = self.institution.get('institution') self.branchList = self.institution.get('branch') def get_data_response(self, institution_id = None, request_url = ''): connect = Connect(institution_id = institution_id, request_url = request_url, config = self.config) opener = urllib2.build_opener(MyHTTPSHandler) opener.addheaders = [('accept', 'application/json'),('Authorization', connect.getAuthorization_header())] response = opener.open(request_url).read() return response def get_JSON(self, data): _data = data try: return json.loads(_data) except Exception, inst: print inst
class Search(object): ''' Makes a connection with the WorldCat Search API using the classes Connect (originally from OCLC) and Config Authorization is given through a WSKEY as a parameter in the central (service) part of this application ''' def __init__(self, service=None, useTestData = True): service = service # 'search' # WorldCat Search API self.config = Config(service = service, useTestData = useTestData) self.institution = self.config.getInstitutionData() self.serviceAPI = self.config.getServiceAPIData() self.institutionList = self.institution.get('institution') def get_data_response(self, institution_id = None, request_url = ''): connect = Connect(institution_id = institution_id, request_url = request_url, config = self.config) #opener = urllib2.build_opener(MyHTTPSHandler) #opener.addheaders = [('accept', 'text/xml'),] #opener.addheaders = [('Authorization', connect.getAuthorization_header())] opener = urllib2.build_opener() response = opener.open(request_url).read() return response def get_url(self, service=None, resource=None, method=None): url = '' try: # get correct url for this method from configuration file for key, value in self.serviceAPI['%s.%s' % (service, resource)]: if key == method: url = value break except Exception, inst: print inst return url
class Metadata(object): def __init__(self, service=None, useTestData = True): service = service #'metadata' # WorldCat Metadata API self.config = Config(service = service, useTestData = useTestData) self.institution = self.config.getInstitutionData() self.serviceAPI = self.config.getServiceAPIData() self.institutionList = self.institution.get('institution') def get_data_response(self, institution_id = None, request_url = ''): connect = Connect(institution_id = institution_id, request_url = request_url, config = self.config) opener = urllib2.build_opener(MyHTTPSHandler) opener.addheaders = [('accept', 'application/atom+json'),('Authorization', connect.getAuthorization_header())] #opener.addheaders = [('accept', 'application/xml'),('Authorization', connect.getAuthorization_header())] response = opener.open(request_url).read() return response def get_JSON(self, data): _data = data try: return json.loads(_data) except Exception, inst: print inst