Skip to content

Conversation

@JPrevost
Copy link
Member

@JPrevost JPrevost commented Jan 8, 2026

Please see commit messages for details.

The code is also likely easier to reason with looking at each commit.

The first commit refactors LibKey integration to more easily add Browzine support.

The second commit adds Browzine support and supresses holdings for all journal records (not just those with Browzine links).

NOTE: the Third Iron APIs (libkey and browzine) share a lot of setup code and we might benefit from refactoring in the future to avoid duplication. However at this time it felt best to just get the functionality in place and look for opportunities to optimize later.

Example searches to see this behavior:
"Journal of Heat Transfer"
"Nature medicine"

Developer

Accessibility
  • ANDI or WAVE has been run in accordance to our guide.
  • This PR contains no changes to the view layer.
  • New issues flagged by ANDI or WAVE have been resolved.
  • New issues flagged by ANDI or WAVE have been ticketed (link in the Pull Request details above).
  • No new accessibility issues have been flagged.
New ENV
  • All new ENV is documented in README.
  • All new ENV has been added to Heroku Pipeline, Staging and Prod.
  • ENV has not changed.
Approval beyond code review
  • UXWS/stakeholder approval has been confirmed.
  • UXWS/stakeholder review will be completed retroactively.
  • UXWS/stakeholder review is not needed.
Additional context needed to review

E.g., if the PR includes updated dependencies and/or data
migration, or how to confirm the feature is working.

Code Reviewer

Code
  • I have confirmed that the code works as intended.
  • Any CodeClimate issues have been fixed or confirmed as
    added technical debt.
Documentation
  • The commit message is clear and follows our guidelines
    (not just this pull request message).
  • The documentation has been updated or is unnecessary.
  • New dependencies are appropriate or there were no changes.
Testing
  • There are appropriate tests covering any new functionality.
  • No additional test coverage is required.

@coveralls
Copy link

coveralls commented Jan 8, 2026

Pull Request Test Coverage Report for Build 20864415638

Details

  • 44 of 44 (100.0%) changed or added relevant lines in 3 files are covered.
  • No unchanged relevant lines lost coverage.
  • Overall coverage increased (+0.07%) to 98.022%

Totals Coverage Status
Change from base Build 20864325879: 0.07%
Covered Lines: 1239
Relevant Lines: 1264

💛 - Coveralls

@mitlib mitlib temporarily deployed to timdex-ui-pi-use-305-jo-dtx9gg January 8, 2026 21:48 Inactive
@JPrevost JPrevost temporarily deployed to timdex-ui-pi-use-305-jo-dtx9gg January 8, 2026 22:04 Inactive
@JPrevost JPrevost temporarily deployed to timdex-ui-pi-use-305-jo-dtx9gg January 9, 2026 20:07 Inactive
@JPrevost JPrevost changed the title Experimental browzine support for journals Browzine support for journals Jan 9, 2026
@JPrevost JPrevost marked this pull request as ready for review January 9, 2026 20:15
No functional changes to Libkey behavior

* Renames existing "lookup" route to "libkey" for clarity
* Renames LibKey controller to ThirdIronController to allow for upcoming
  Browzine actions as well

https://mitlibraries.atlassian.net/browse/USE-305
Why are these changes being introduced:

* Journal records do not have DOI or PMID identifiers, but do have ISSN.
  Adding Browzine support allows us to provide fulfillment links for
  journal records via their ISSN.

Relevant ticket(s):

* https://mitlibraries.atlassian.net/browse/USE-305

How does this address that need:

* Adds Browzine model to handle API requests
* Integrates into views similarly to existing Libkey functionality
* Suppresses holdings for Journal records (regardless of if we have
  Browzine links). Solving holdings will be a future task.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants