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

pulibrary / bibdata / 6eaae75e-8582-4162-bf7f-32b0a072fade

31 Dec 2024 06:09PM UTC coverage: 90.366% (-1.5%) from 91.859%
6eaae75e-8582-4162-bf7f-32b0a072fade

push

circleci

sandbergja
Bundle update rails

Add mutex_m
Don't require marc cleanup

Co-authored-by: Jane Sandberg <sandbergja@users.noreply.github.com>

3330 of 3685 relevant lines covered (90.37%)

376.89 hits per line

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

31.71
/app/models/scsb/partner_updates/incremental.rb
1
module Scsb
1✔
2
  class PartnerUpdates
1✔
3
    class Incremental < Update
1✔
4
      def process_incremental_files
1✔
5
        prepare_directory
3✔
6
        update_files = download_partner_updates
3✔
7
        process_partner_updates(files: update_files)
3✔
8
        set_generated_date
×
9
        log_record_fixes
×
10
        delete_files = download_partner_deletes
×
11
        process_partner_deletes(files: delete_files)
×
12
      end
13

14
      def download_partner_updates
1✔
15
        file_list = @s3_bucket.list_files(prefix: ENV['SCSB_S3_PARTNER_UPDATES'] || 'data-exports/PUL/MARCXml/Incremental')
3✔
16
        @s3_bucket.download_files(files: file_list, timestamp_filter: @last_dump, output_directory: @update_directory)
3✔
17
      end
18

19
      def download_partner_deletes
1✔
20
        file_list = @s3_bucket.list_files(prefix: ENV['SCSB_S3_PARTNER_DELETES'] || 'data-exports/PUL/Json')
×
21
        @s3_bucket.download_files(files: file_list, timestamp_filter: @last_dump, output_directory: @update_directory)
×
22
      end
23

24
      def process_partner_deletes(files:)
1✔
25
        json_files = []
×
26
        files.each do |file|
×
27
          filename = File.basename(file, '.zip')
×
28
          file_increment = 1
×
29
          Zip::File.open(file) do |zip_file|
×
30
            zip_file.each do |entry|
×
31
              target = "#{@update_directory}/scsbdelete#{filename}_#{file_increment}.json"
×
32
              json_files << target
×
33
              entry.extract(target)
×
34
              file_increment += 1
×
35
            end
36
          end
37
          File.unlink(file)
×
38
        end
39
        ids = []
×
40
        json_files.each do |file|
×
41
          scsb_ids(file, ids)
×
42
          File.unlink(file)
×
43
        end
44
        @dump.delete_ids = ids
×
45
        @dump.save
×
46
      end
47

48
      def scsb_ids(filename, ids)
1✔
49
        file = File.read(filename)
×
50
        data = JSON.parse(file)
×
51
        data.each do |record|
×
52
          ids << "SCSB-#{record['bib']['bibId']}"
×
53
        end
54
        ids
×
55
      end
56
    end
57
  end
58
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