libraries/edge/opensearch/granuleresponsebysolr.py (26 lines of code) (raw):
from edge.opensearch.responsebysolr import ResponseBySolr
class GranuleResponseBySolr(ResponseBySolr):
def __init__(self, linkToGranule):
super(GranuleResponseBySolr, self).__init__()
self.linkToGranule = linkToGranule
def _populateChannel(self, solrResponse):
pass
def _populateItem(self, solrResponse, doc, item):
item.append({'name': 'title', 'value': doc['Granule-Name'][0]})
item.append({'name': 'description', 'value': doc['Granule-Name'][0]})
#item.append({'name': 'description', 'value': doc['Dataset-Description'][0]})
#item.append({'name': 'link', 'value': self.portalUrl+'/'+doc['Dataset-ShortName'][0]})
link = self._getLinkToGranule(doc)
if link is not None:
item.append({'name': 'link', 'value': link})
def _getLinkToGranule(self, doc):
link = None
if 'GranuleReference-Type' in doc:
types = doc['GranuleReference-Type']
typeIndex = -1
for index, type in enumerate(types):
if type == self.linkToGranule:
typeIndex = index
break
if typeIndex >= 0:
if ('GranuleReference-Path' in doc) and (len(doc['GranuleReference-Path']) > typeIndex):
link = doc['GranuleReference-Path'][typeIndex]
return link