-
Notifications
You must be signed in to change notification settings - Fork 1
Description
Alma "E-Collection" records currently fail to get a properly proxied link displayed in Franklin. See: https://franklin.library.upenn.edu/catalog/FRANKLIN_9977806853403681
E-Collections do not return any "holding" records in the Alma API availability lookup. As a result, Franklin calls the Alma API again for e-collection info, which returns the URL for the e-collection, but the returned link devoid of any proxy prefix. This is bad for users.
As a solution, we can appropriate Alma's Link Resolver to retrieve a valid Link Resolver URL for e-collections using this URL scheme:
https://upenn.alma.exlibrisgroup.com/view/uresolver/01UPENN_INST/openurl?&u.ignore_date_coverage=true&rft.mms_id=9977806853403681&rfr_id=info:sid/primo.exlibrisgroup.com&svc_dat=CTO
This returns some XML that contains a resolver URL that we can use in Franklin to properly set the EZProxy prefix for the resource:
<uresolver_content>
<context_services>
<context_service service_type="DB" context_service_id="26412423330003681">
<keys>
<key id="portfolio_PID">61647149460003681</key>
....
</keys>
<resolution_url>
<!-- THIS IS THE URL WE NEED FOR DISPLAY -->
https://upenn.alma.exlibrisgroup.com/view/action/uresolver.do?operation=resolveService&package_service_id=26412423330003681&institutionId=3681&customerId=3680
</resolution_url>
<target_url>
http://proxy.library.upenn.edu/login?&url=http://search.ebscohost.com/login.aspx?authtype=ip,uid&profile=ehost&defaultdb=hia
</target_url>
</context_service>
...
</context_services>
</uresolver_context>
I wish there was a better way, but there's no API endpoint that will return this URL. The URL itself contains a package_service_id identifier that is always unique - I believe to support Link Resolver statistics.