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

pulibrary / orangelight / 62bad3f1-d46d-40af-822c-403d653da2a8

17 Jun 2025 05:30PM UTC coverage: 0.447% (-94.9%) from 95.337%
62bad3f1-d46d-40af-822c-403d653da2a8

push

circleci

maxkadel
Install chrome & chromedriver for smoke specs

43 of 9610 relevant lines covered (0.45%)

0.01 hits per line

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

0.0
/app/models/requests/submissions/digitize_item.rb
1
# frozen_string_literal: true
2
require 'faraday'
×
3

4
module Requests::Submissions
×
5
  class DigitizeItem < Service
×
6
    def initialize(submission, service_type: 'digitize')
×
7
      super
×
8
      @service_types = { digitize: { cited_pages: '', note: 'Digitization Request' },
×
9
                         annex_edd: { cited_pages: 'Annex EDD', note: 'Digitization Request Forrestal Annex Item' },
×
10
                         marquand_edd: { cited_pages: 'Marquand EDD', note: 'Digitization Request Marquand Item' },
×
11
                         clancy_edd: { cited_pages: 'Marquand Clancy EDD', note: 'Digitization Request Marquand Item at Clancy' },
×
12
                         clancy_unavailable_edd: { cited_pages: 'Marquand Clancy UNAVAIL EDD', note: 'Digitization Request Marquand Item at Clancy (Unavailable)' } }
×
13
    end
×
14

15
    def handle
×
16
      params = @service_types[service_type.to_sym]
×
17
      items = @submission.filter_items_by_service(service_type)
×
18
      items.each do |item|
×
19
        item_status = handle_item(item:, **params)
×
20
        if item_status.present?
×
21
          item["transaction_number"] = item_status["TransactionNumber"].to_s
×
22
          @sent << item_status if item_status.present?
×
23
        end
×
24
      end
×
25
      return false if @errors.present?
×
26
    end
×
27

28
    def submitted
×
29
      @sent
×
30
    end
×
31

32
    private
×
33

34
      def handle_item(item:, note:, cited_pages:)
×
35
        client = Requests::IlliadTransactionClient.new(patron: @submission.patron, metadata_mapper: Requests::IlliadMetadata::ArticleExpress.new(patron: @submission.patron, bib: @submission.bib, item:, note:, cited_pages:))
×
36
        transaction = client.create_request
×
37
        errors << { type: 'digitize', bibid: @submission.bib, item:, user_name: @submission.user_name, barcode: @submission.user_barcode, error: "Invalid Illiad Patron" } if transaction.blank?
×
38
        if transaction == "DISAVOWED"
×
39
          errors << { type: 'digitize', bibid: @submission.bib, item:, user_name: @submission.user_name, barcode: @submission.user_barcode, error: "You no longer have an active account and may not make digitization requests." }
×
40
          transaction = nil
×
41
        end
×
42
        transaction
×
43
      end
×
44
  end
×
45
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