• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

pulibrary / allsearch_api / 0400cc50-b3f0-4794-8616-b4382e0acdd0

14 Oct 2025 03:57AM UTC coverage: 94.558% (-5.0%) from 99.514%
0400cc50-b3f0-4794-8616-b4382e0acdd0

Pull #395

circleci

sandbergja
Migrate Library Staff Controller away from ActionController
Pull Request #395: Migrate a few more controllers away from Rails

8 of 8 new or added lines in 4 files covered. (100.0%)

93 existing lines in 21 files now uncovered.

973 of 1029 relevant lines covered (94.56%)

71.0 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

96.0
/app/models/libanswers.rb
1
# frozen_string_literal: true
2

3
# This class is responsible for querying Libanswers for FAQs
4
class Libanswers
2✔
5
  attr_reader :query_terms
2✔
6

7
  include Parsed
2✔
8
  def initialize(query_terms:)
2✔
UNCOV
9
    @query_terms = CGI.escape(query_terms)
4✔
10
  end
11

12
  def number
2✔
UNCOV
13
    service_response['search']['numFound']
4✔
14
  end
15

16
  def more_link
2✔
UNCOV
17
    "https://faq.library.princeton.edu/search/?t=0&q=#{query_terms.gsub(/\s+/, '+')}"
6✔
18
  end
19

20
  def documents
2✔
UNCOV
21
    service_response['search']['results']
3✔
22
  end
23

24
  def service_response
2✔
UNCOV
25
    @service_response ||= Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) do |http|
7✔
UNCOV
26
      response = http.request(request)
4✔
UNCOV
27
      if response.code == '200'
3✔
UNCOV
28
        JSON.parse(response.body)
3✔
29
      else
UNCOV
30
        { 'search' => { 'results' => [], 'numFound' => 0 } }
×
31
      end
32
    end
33
  end
34

35
  private
2✔
36

37
  def uri
2✔
UNCOV
38
    URI.parse "https://faq.library.princeton.edu/api/1.1/search/#{query_terms}?iid=344&limit=3"
12✔
39
  end
40

41
  def request
2✔
UNCOV
42
    libanswers_request = Net::HTTP::Get.new(uri)
4✔
43

UNCOV
44
    token = OAuthToken.find_or_create_by({ service: 'libanswers',
4✔
45
                                           endpoint: 'https://faq.library.princeton.edu/api/1.1/oauth/token' }).token
UNCOV
46
    libanswers_request['Authorization'] = "Bearer #{token}"
3✔
UNCOV
47
    libanswers_request
3✔
48
  end
49
end
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2025 Coveralls, Inc