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

pulibrary / orangelight / 00dbc10b-d747-4ad7-b211-7b26d753abbb

14 Aug 2025 01:25PM UTC coverage: 0.483% (-94.9%) from 95.343%
00dbc10b-d747-4ad7-b211-7b26d753abbb

push

circleci

web-flow
Merge pull request #5181 from pulibrary/dependabot/bundler/activestorage-7.2.2.2

Bump activestorage from 7.2.2.1 to 7.2.2.2

47 of 9721 relevant lines covered (0.48%)

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
    # rubocop:disable Naming/PredicateMethod
16
    def handle
×
17
      params = @service_types[service_type.to_sym]
×
18
      items = @submission.filter_items_by_service(service_type)
×
19
      items.each do |item|
×
20
        item_status = handle_item(item:, **params)
×
21
        if item_status.present?
×
22
          item["transaction_number"] = item_status["TransactionNumber"].to_s
×
23
          @sent << item_status if item_status.present?
×
24
        end
×
25
      end
×
26
      return false if @errors.present?
×
27
    end
×
28
    # rubocop:enable Naming/PredicateMethod
29

30
    def submitted
×
31
      @sent
×
32
    end
×
33

34
    private
×
35

36
      def handle_item(item:, note:, cited_pages:)
×
37
        client = Requests::IlliadTransactionClient.new(patron: @submission.patron, metadata_mapper: Requests::IlliadMetadata::ArticleExpress.new(patron: @submission.patron, bib: @submission.bib, item:, note:, cited_pages:))
×
38
        transaction = client.create_request
×
39
        errors << { type: 'digitize', bibid: @submission.bib, item:, user_name: @submission.user_name, barcode: @submission.user_barcode, error: "Invalid Illiad Patron" } if transaction.blank?
×
40
        if transaction == "DISAVOWED"
×
41
          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." }
×
42
          transaction = nil
×
43
        end
×
44
        transaction
×
45
      end
×
46
  end
×
47
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