Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add backend: ProQuest Federated Search Gateway #3991

Merged
Merged
Changes from 1 commit
Commits
Show all changes
87 commits
Select commit Hold shift + click to select a range
9263c83
Add ProQuest Federated Search Gateway backend. First working draft.
maccabeelevine Oct 4, 2024
518de13
Support basic search indices
maccabeelevine Oct 4, 2024
e6c1cd1
Implement sorting
maccabeelevine Oct 4, 2024
300c51f
Add search result limits
maccabeelevine Oct 4, 2024
df23ce6
Display database facets
maccabeelevine Oct 4, 2024
0fb4406
Apply database filter
maccabeelevine Oct 7, 2024
0f3021c
Support checkbox filters
maccabeelevine Oct 7, 2024
ebab982
Add OOTB facet settings
maccabeelevine Oct 7, 2024
8305dd5
Add SearchCache support
maccabeelevine Oct 7, 2024
a23fefc
Fix NPE
maccabeelevine Oct 7, 2024
d77a08d
Fix single record load
maccabeelevine Oct 7, 2024
fc89632
Add next_prev_navigation
maccabeelevine Oct 8, 2024
5d5b9d0
Fix copy/paste typo
maccabeelevine Oct 8, 2024
896ba94
Remove dead code
maccabeelevine Oct 8, 2024
6ffeaa3
Add retain/reset filters configs that work OOTB
maccabeelevine Oct 8, 2024
d856c11
Add pagination and recommendation settings, work OOTB
maccabeelevine Oct 8, 2024
b5a7ddd
Simply constant backend params
maccabeelevine Oct 8, 2024
2d8b4c8
Support list view options
maccabeelevine Oct 8, 2024
f40b553
Fix typo
maccabeelevine Oct 8, 2024
a14a801
Remove dead code
maccabeelevine Oct 8, 2024
86abb67
Add advanced search support
maccabeelevine Oct 8, 2024
ec2dc6c
Fix styles and add missing comments
maccabeelevine Oct 8, 2024
4a0b7b5
Strip html from title
maccabeelevine Oct 9, 2024
190abbe
Merge branch 'dev' into proquest-federated-search-gateway
maccabeelevine Nov 6, 2024
d698830
Convert to bootstrap5
maccabeelevine Nov 6, 2024
9670ee6
Add recommendation module
maccabeelevine Nov 6, 2024
2e85a0f
Fix styles
maccabeelevine Nov 6, 2024
d22ff04
Fix copy/paste typos
maccabeelevine Nov 6, 2024
1741fb9
Fix more typos
maccabeelevine Nov 6, 2024
f58c0a4
Add tests
maccabeelevine Nov 8, 2024
f1c3776
Remove blank line
maccabeelevine Nov 8, 2024
e3824df
Perform search if necessary before getting facet list.
maccabeelevine Nov 8, 2024
645eb82
Simplify conditional ParamBag creation
maccabeelevine Nov 8, 2024
6b9ce46
Clean code.
maccabeelevine Nov 8, 2024
2a4c875
Protect missing docs in response
maccabeelevine Nov 8, 2024
f57b5ba
Merge branch 'dev' into proquest-federated-search-gateway
maccabeelevine Dec 2, 2024
5b9bebd
Add result_limit config
maccabeelevine Dec 2, 2024
c483813
Add import
maccabeelevine Dec 2, 2024
37c9675
Check if ProQuest is enabled first
maccabeelevine Dec 3, 2024
eb64924
Catch null sourceId
maccabeelevine Dec 3, 2024
337966f
Fix whitespace
maccabeelevine Dec 3, 2024
3de7007
Remove unneeded space
maccabeelevine Dec 3, 2024
8338a7b
Restored stupid ugly space that should be unnecessary
maccabeelevine Dec 3, 2024
6bd5782
Remove unused connector options
maccabeelevine Dec 3, 2024
2418fff
Remove deleted param comment
maccabeelevine Dec 3, 2024
651326b
Merge branch 'dev' into proquest-federated-search-gateway
maccabeelevine Dec 10, 2024
9c33653
Fix null typing
maccabeelevine Dec 10, 2024
87ef65d
Prevent an empty search, with useful message
maccabeelevine Dec 10, 2024
19184b6
Add missing include
maccabeelevine Dec 10, 2024
56c2058
Sort facets by result count
maccabeelevine Dec 10, 2024
09616b1
Strip HTML from titles on results list, for now
maccabeelevine Dec 10, 2024
ac20d8f
Display publication (journal-level) info and enable journal name search
maccabeelevine Dec 12, 2024
a5863d7
Add database/source name to description tab
maccabeelevine Dec 12, 2024
10075c4
Remove Holdings and Similar Items tabs
maccabeelevine Dec 12, 2024
f33dd28
Fix staff view tab.
maccabeelevine Dec 12, 2024
a6e7c4b
Change default operator to equals, not 'all', matching ProQuest UI
maccabeelevine Dec 13, 2024
68cb9eb
Merge branch 'dev' into proquest-federated-search-gateway
maccabeelevine Jan 21, 2025
b7cdf1b
Add DOI to record driver so it appears in the description tab
maccabeelevine Jan 21, 2025
7ecd9e4
Remove publication data from 'Published' field, so it displays only t…
maccabeelevine Jan 21, 2025
e7888af
Sync bootstrap3
maccabeelevine Jan 21, 2025
5ec7bfc
For books, truncate publication date to year
maccabeelevine Jan 27, 2025
4b36eb0
Check for SRU errors. This includes SRU error type 3 "Authentication…
maccabeelevine Jan 27, 2025
2a8fc17
Fix style
maccabeelevine Jan 27, 2025
0814acd
Be safer about the error message
maccabeelevine Jan 27, 2025
2f7531a
Merge branch 'dev' into proquest-federated-search-gateway
maccabeelevine Jan 28, 2025
35ce055
Suppress container info for books
maccabeelevine Jan 28, 2025
60de692
Decode html entities
maccabeelevine Jan 28, 2025
96cd4fb
Perform a second search for facets when needed
maccabeelevine Jan 29, 2025
11b8543
Merge branch 'dev' into proquest-federated-search-gateway
maccabeelevine Jan 29, 2025
ed7c53f
Define 'book' based on ProQuest data
maccabeelevine Jan 29, 2025
d42f516
Restore defaults for retain/reset filters
maccabeelevine Jan 29, 2025
5694042
Remove references to Primo
maccabeelevine Jan 29, 2025
039db68
Fix author / copyright
maccabeelevine Jan 29, 2025
cab3c23
Remove new bootstrap3 templates created before that theme was removed
maccabeelevine Jan 29, 2025
c2e6276
Save an API call if no facets are configured
maccabeelevine Jan 29, 2025
8248d16
Look to facet config for whether any should be displayed, since a nul…
maccabeelevine Jan 29, 2025
4a61cb3
Consider $filter in displaying facets
maccabeelevine Jan 31, 2025
072c98e
Save $startRecordOverride before facet search, just in case
maccabeelevine Jan 31, 2025
226e9a7
Add back Andrew -- sorry Andrew!
maccabeelevine Jan 31, 2025
c932390
Add back Andrew again
maccabeelevine Jan 31, 2025
0c7d4b2
Remove old SRU conversion file, no longer used
maccabeelevine Jan 31, 2025
6e7134a
Merge branch 'proquest-federated-search-gateway' of https://github.co…
maccabeelevine Jan 31, 2025
ca94914
Add fake change
maccabeelevine Jan 31, 2025
33cb56b
Revert fake change
maccabeelevine Jan 31, 2025
092e676
Merge branch 'dev' into proquest-federated-search-gateway
maccabeelevine Jan 31, 2025
f3788fb
Fix subject linking
maccabeelevine Jan 31, 2025
f9ce7a2
Document recommendation module
maccabeelevine Jan 31, 2025
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
Prev Previous commit
Next Next commit
Check for SRU errors. This includes SRU error type 3 "Authentication …
…error" including you are not on a valid IP
maccabeelevine committed Jan 27, 2025
commit 4b36eb03bb1a44937578046f11e99d302bc68ef9
18 changes: 18 additions & 0 deletions module/VuFindSearch/src/VuFindSearch/Backend/SRU/Connector.php
Original file line number Diff line number Diff line change
@@ -195,6 +195,23 @@ public function checkForHttpError($result)
}
}

/**
* Check for SRU Diagnostics error in a response.
* See https://www.loc.gov/standards/sru/diagnostics/diagnosticsList.html
*
* @param string $resultBody The response body to check.
*
* @throws BackendException
* @return void
*/
public function checkForSRUDiagnosticsError($resultBody)
demiankatz marked this conversation as resolved.
Show resolved Hide resolved
{
if (str_contains($resultBody, 'info:srw/diagnostic')) {
$xmlDoc = simplexml_load_string($resultBody);
throw new BackendException("Diagnostic error {$xmlDoc->diagnostic->uri} from SRU backend: {$xmlDoc->diagnostic->message}");
}
}

/**
* Submit REST Request
*
@@ -243,6 +260,7 @@ protected function call($method = 'GET', $path = '', $params = null, $process =
$result = $this->client->setMethod($method)->send();
$this->checkForHttpError($result);
$resultBody = $result->getBody();
$this->checkForSRUDiagnosticsError($resultBody);
if ($cacheKey) {
$this->putCachedData($cacheKey, $resultBody);
}