diff --git a/CHANGES.md b/CHANGES.md index 82840e26..f6585295 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -8,7 +8,7 @@ Features: - None yet Changes: - - None yet + - Upgrade to CourtListener v4 API([380](https://github.com/freelawproject/recap/issues/380), [401](https://github.com/freelawproject/recap-chrome/pull/401)) Fixes: - Corrected typo in build script, ensuring correct favicon path for Firefox releases([379](https://github.com/freelawproject/recap/issues/379), [397](https://github.com/freelawproject/recap-chrome/pull/397)) diff --git a/spec/ContentDelegateSpec.js b/spec/ContentDelegateSpec.js index 107d9852..57212cfe 100644 --- a/spec/ContentDelegateSpec.js +++ b/spec/ContentDelegateSpec.js @@ -361,7 +361,9 @@ describe('The ContentDelegate class', function () { it('has no effect when on a docket query that has no RECAP', async function () { const cd = docketQueryContentDelegate; spyOn(PACER, 'hasPacerCookie').and.returnValue(true); - const mockResponse = {}; + const mockResponse = { + results: [] + }; dispatchBackgroundFetch = jasmine.createSpy().and.resolveTo(mockResponse); await cd.handleDocketQueryUrl(); const banner = document.querySelector('.recap-banner'); diff --git a/src/appellate/appellate.js b/src/appellate/appellate.js index 8c3e0a1d..4127ba45 100644 --- a/src/appellate/appellate.js +++ b/src/appellate/appellate.js @@ -282,18 +282,13 @@ AppellateDelegate.prototype.handleAcmsDocket = async function () { pacer_case_id: this.pacer_case_id, }, }); - - if (docketData.count === 0) { - console.warn('RECAP: Zero results found for docket lookup.'); - } else if (docketData.count > 1) { - console.error( - 'RECAP: More than one result found for docket lookup. Found' + - `${result.count}` - ); - } else { + let docketDataCount = docketData.results.length; + if (docketDataCount == 1){ addAlertButtonInRecapAction(this.court, this.pacer_case_id); let cl_id = getClIdFromAbsoluteURL(docketData.results[0].absolute_url); addSearchDocketInRecapAction(cl_id); + } else{ + PACER.handleDocketAvailabilityMessages(docketDataCount); } }; @@ -654,7 +649,8 @@ AppellateDelegate.prototype.handleDocketReportFilter = async function () { docket_number_core: docketNumberCore, }, }); - if (docketData.count === 1 && docketData.results) { + let docketDataCount = docketData.results.length; + if (docketDataCount === 1) { let form = document.getElementsByTagName('form')[0]; let banner = recapBanner(docketData.results[0]); form.after(banner); @@ -667,7 +663,7 @@ AppellateDelegate.prototype.handleDocketReportFilter = async function () { ); form.after(recapAlert); } else { - PACER.handleDocketAvailabilityMessages(docketData); + PACER.handleDocketAvailabilityMessages(docketDataCount); } }; @@ -713,7 +709,8 @@ AppellateDelegate.prototype.handleCaseSelectionPage = async function () { pacer_case_id: this.pacer_case_id, }, }); - if (appellateData.count === 1 && appellateData.results) { + let appellateDataCount = appellateData.results.length; + if (appellateDataCount == 1) { PACER.removeBanners(); const footer = document.querySelector('div.noprint:last-of-type'); @@ -728,7 +725,7 @@ AppellateDelegate.prototype.handleCaseSelectionPage = async function () { const appellateLink = anchors[0]; rIcon.insertAfter(appellateLink); } else { - PACER.handleDocketAvailabilityMessages(appellateData); + PACER.handleDocketAvailabilityMessages(appellateDataCount); } if (anchors.length == 3) { @@ -743,13 +740,14 @@ AppellateDelegate.prototype.handleCaseSelectionPage = async function () { docket_number_core: districtLinkData.docket_number_core, }, }); - if (districtData.count === 1 && districtData.results) { + let districtDataCount = districtData.results.length; + if (districtDataCount == 1) { const rIcon = APPELLATE.makeRButtonForCases( districtData.results[0].absolute_url ); rIcon.insertAfter(districtLink); } else { - PACER.handleDocketAvailabilityMessages(districtData); + PACER.handleDocketAvailabilityMessages(districtDataCount); } } } else { @@ -947,18 +945,13 @@ AppellateDelegate.prototype.handleDocketDisplayPage = async function () { pacer_case_id: this.pacer_case_id, }, }); - - if (docketData.count === 0) { - console.warn('RECAP: Zero results found for docket lookup.'); - } else if (docketData.count > 1) { - console.error( - 'RECAP: More than one result found for docket lookup. ' + - `Found ${result.count}` - ); - } else { + let docketDataCount = docketData.results.length; + if (docketDataCount === 1) { addAlertButtonInRecapAction(this.court, this.pacer_case_id); let cl_id = getClIdFromAbsoluteURL(docketData.results[0].absolute_url); addSearchDocketInRecapAction(cl_id); + } else { + PACER.handleDocketAvailabilityMessages(docketDataCount); } // if you've already uploaded the page, return diff --git a/src/content_delegate.js b/src/content_delegate.js index b106cb60..6ec45d9a 100644 --- a/src/content_delegate.js +++ b/src/content_delegate.js @@ -224,28 +224,22 @@ ContentDelegate.prototype.handleDocketQueryUrl = async function () { }, }); - if (docketData.count === 0) { - console.warn('RECAP: Zero results found for docket lookup.'); - } else if (docketData.count > 1) { - console.error( - 'RECAP: More than one result found for docket lookup. Found ' + - `${result.count}` - ); + let docketDataCount = docketData.results.length; + if (docketDataCount === 1) { + PACER.removeBanners(); + const dateToInput = document.querySelector('input[name=date_to]'); + const form = document.querySelector('form'); + const div = document.createElement('div'); + + div.classList.add('recap-banner'); + div.appendChild(recapAlertButton(this.court, this.pacer_case_id, true)); + form.appendChild(recapBanner(docketData.results[0])); + form.appendChild(div); + + if (docketData.results[0].date_last_filing) + dateToInput.after(recapAddLatestFilingButton(docketData.results[0])); } else { - if (docketData.results) { - PACER.removeBanners(); - const dateToInput = document.querySelector('input[name=date_to]'); - const form = document.querySelector('form'); - const div = document.createElement('div'); - - div.classList.add('recap-banner'); - div.appendChild(recapAlertButton(this.court, this.pacer_case_id, true)); - form.appendChild(recapBanner(docketData.results[0])); - form.appendChild(div); - - if (docketData.results[0].date_last_filing) - dateToInput.after(recapAddLatestFilingButton(docketData.results[0])); - } + PACER.handleDocketAvailabilityMessages(docketDataCount); }; }; @@ -297,19 +291,14 @@ ContentDelegate.prototype.handleDocketDisplayPage = async function () { pacer_case_id: this.pacer_case_id, }, }); - if (docketData.count === 0) { - console.warn('RECAP: Zero results found for docket lookup.'); - } else if (docketData.count > 1) { - console.error( - 'RECAP: More than one result found for docket lookup. Found ' + - `${result.count}` - ); - } else { + let docketDataCount = docketData.results.length; + if (docketDataCount === 1) { addAlertButtonInRecapAction(this.court, this.pacer_case_id); let cl_id = getClIdFromAbsoluteURL(docketData.results[0].absolute_url); addSearchDocketInRecapAction(cl_id); + } else { + PACER.handleDocketAvailabilityMessages(docketDataCount); } - // if you've already uploaded the page, return if (history.state && history.state.uploaded) return; @@ -455,8 +444,7 @@ ContentDelegate.prototype.handleSingleDocumentPageCheck = async function () { pacer_doc_id__in: this.pacer_doc_id, }, }); - - if (!recapLinks.count) return; + if (!recapLinks.results.length) return; console.info( 'RECAP: Got results from API. Processing results to insert link' ); diff --git a/src/pacer.js b/src/pacer.js index ae713076..3486beb0 100644 --- a/src/pacer.js +++ b/src/pacer.js @@ -740,11 +740,11 @@ let PACER = { return cleanNumber ? cleanNumber : 0; }, - handleDocketAvailabilityMessages: (result) =>{ - if (result.count === 0) { + handleDocketAvailabilityMessages: (resultCount) =>{ + if (resultCount === 0) { console.warn('RECAP: Zero results found for docket lookup.'); - } else if (result.count > 1) { - console.error(`RECAP: More than one result found for docket lookup. Found ${result.count}`); + } else if (resultCount > 1) { + console.error(`RECAP: More than one result found for docket lookup. Found ${resultCount}`); } }, diff --git a/src/utils/background_fetch.js b/src/utils/background_fetch.js index 67e962d1..cf6d4c5a 100644 --- a/src/utils/background_fetch.js +++ b/src/utils/background_fetch.js @@ -11,7 +11,7 @@ import { buildFormData, sources, authHeader, jsonHeader } from './recap.js'; // **Returns:** // - A string representing the complete CourtListener API URL. const courtListenerURL = (suffix) => - 'https://www.courtlistener.com/api/rest/v3/' + suffix + '/'; + 'https://www.courtlistener.com/api/rest/v4/' + suffix + '/'; // Encodes Search Parameters for GET Requests //