#!/usr/bin/perl
@callNumberTypes = `cat /opt/folio/config/callNumberTypes`;
foreach $row (@callNumberTypes) {
($id,$name) = split(/\|/,$row);
$callNumberTypeName{$id} = $name;
}
$gd2 = "eb1837d4-3f8e-45c1-8680-cd4e7fe02288";
$headers = `cat /opt/folio/config/headers`; chomp($headers);
@mtypes = `cat /opt/folio/config/mtypes`;
foreach $row (@mtypes) {
($id,$name) = split(/\|/,$row);
$mtypeName{$id} = $name;
}
$url = `cat /opt/folio/config/url`; chomp($url);
use JSON;
open (wFile, ">:encoding(UTF-8)", "shelfList.txt");
$jsonA = `curl -s -X GET -G $headers -d 'limit=1000' $url/holdings-storage/holdings?query=permanentLocationId=="$gd2"`;
$hashA = decode_json $jsonA;
for ( @{$hashA->{holdingsRecords}} ) {
$counter++;
$callNumber = $_->{callNumber};
$callNumberTypeId = $_->{callNumberTypeId};
$id = $_->{id};
$instanceId = $_->{instanceId};
$jsonB = `curl -s -X GET -G $headers $url/instance-storage/instances/$instanceId`;
$hashB = decode_json $jsonB;
$title = $hashB->{title};
$jsonC = `curl -s -X GET -G $headers -d 'limit=0' $url/item-storage/items?query=holdingsRecordId==$id`;
$hashC = decode_json $jsonC;
$totalItems = $hashC->{totalRecords};
if ($totalItems > 0) {
$jsonD = `curl -s -X GET -G $headers -d 'limit=$totalItems' $url/item-storage/items?query=holdingsRecordId==$id`;
$hashD = decode_json $jsonD;
for ( @{$hashD->{items}} ) {
$barcode = $_->{barcode};
$materialTypeId = $_->{materialTypeId};
print wFile "$callNumber|$callNumberTypeName{$callNumberTypeId}|$mtypeName{$materialTypeId}|$barcode|$title|\n";
print "$counter|$callNumber|$callNumberTypeName{$callNumberTypeId}|$mtypeName{$materialTypeId}|$barcode|$title|\n";
}
} else {
print wFile "$callNumber|$callNumberTypeName{$callNumberTypeId}|n/a|n/a|$title|\n";
print "$counter|$callNumber|$callNumberTypeName{$callNumberTypeId}|n/a|n/a|$title|\n";
}
}
close(wFile);