#!/usr/bin/perl use JSON; $baseURL = `cat /opt/folio/headerInfo/baseURL.txt`; $headers = `cat /opt/folio/headerInfo/headers.txt`; $json = `curl -s -w '\n' -X GET -G $headers -d 'limit=1000' $baseURL/contributor-name-types`; $hash = decode_json $json; for ( @{$hash->{contributorNameTypes}} ) { $id = $_->{'id'}; $name = $_->{'name'}; $contributorNameTypeId{$name} = $id; } $json = `curl -s -w '\n' -X GET -G $headers -d 'limit=1000' $baseURL/contributor-types`; $hash = decode_json $json; for ( @{$hash->{contributorTypes}} ) { $id = $_->{'id'}; $name = $_->{'name'}; $contributorTypeId{$name} = $id; } use CGI; $query = new CGI; $title = $query->param('title'); $indexTitle = lc($title); $indexTitle =~ s/^the //; $indexTitle =~ s/^an //; $indexTitle =~ s/^a //; @artist = $query->param('artist'); for ($x = 0; $x <= $#artist; $x++) { $thisContributorType = $query->param("artist$x"); $thisNameType = $query->param("name$x"); push(@contributors,"$artist[$x]|$thisNameType|$thisContributorType"); } if ($#contributors >= 0) { $contributorsJSON = qq/"contributors" : [ /; foreach $row (@contributors) { ($name,$nameType,$contributorType) = split(/\|/,$row); $contributorsJSON .= qq[{"name":"$name",]; $contributorsJSON .= qq["contributorNameTypeId":"] . $contributorNameTypeId{$nameType} . qq[",]; $contributorsJSON .= qq["contributorTypeId":"] . $contributorTypeId{$contributorType} . qq["},]; } $contributorsJSON =~ s/,$/ /; $contributorsJSON .= qq/],/; } $fcn = $query->param('fcn'); $notesJSON = qq[{"instanceNoteTypeId":"d6b573ba-2fe2-407a-b803-7387d0393c45","note":"$fcn","staffOnly":false},]; $notesJSON =~ s/,$//; $subjectsJSON .= qq/"subjects":[/; @subjects = split(/--/,$fcn); foreach $thisSubject (@subjects) { $subjectsJSON .= qq["$thisSubject",]; } $subjectsJSON =~ s/,$//; $subjectsJSON .= "],"; $label = $query->param('label'); $year = $query->param('year'); $publicationJSON = qq["publication":] . "[" . qq[{"publisher":"$label","place":"","dateOfPublication":"$year","role":null}] . "],"; $dataA = qq[{ $contributorsJSON "indexTitle":"$indexTitle", "instanceFormatIds":["727c025b-7818-47a3-a957-eddb476d1c8f"], "instanceTypeId":"8e32450a-982b-41bd-a055-20dbd63e06aa", "notes":[$notesJSON], $publicationJSON "source":"discogs", $subjectsJSON "title":"$title" }]; $dataA =~ s/'/'\\''/g; $postInstance = `curl -s -w '\n' -X POST $headers -d '$dataA' $baseURL/instance-storage/instances`; $p .= "postInstance = $postInstance\n"; $hash = decode_json $postInstance; for ($hash) {$instanceId = $_->{'id'};} $dataB = qq[{"instanceId":"$instanceId","permanentLocationId":"c0a2b694-0fd2-4b10-8bda-94a2bf3bfa2d"}]; $dataB =~ s/'/'\\''/g; $postHoldings = `curl -s -w '\n' -X POST $headers -d '$dataB' $baseURL/holdings-storage/holdings`; $p .= "postHoldings = $postHoldings\n"; $hash = decode_json $postHoldings; $holdingsRecordId = $hash->{'id'}; $dataC = qq[{"holdingsRecordId":"$holdingsRecordId","materialTypeId":"7b0b1c12-73d5-42f6-a8de-6d93d151bcc5","permanentLoanTypeId":"84ff8075-36d1-4156-82f3-3485ce8affab","status":{"name":"Available"}}]; $dataC =~ s/'/'\\''/g; $postItem = `curl -s -w '\n' -X POST $headers -d '$dataC' $baseURL/item-storage/items`; $p .= "postItem = $postItem\n"; $html = qq[ <html> <head> <link rel="shortcut icon" type="image/png" href="https://folio.drew.edu/busybee.png"> <style type="text/css"> body {font-family: verdana, arial, sans-serif;} a:active {text-decoration: none; color: #f3654e;} a:link {text-decoration: none; color: #f3654e;} a:visited {text-decoration: none; color: #f3654e;} a:hover {text-decoration: none; color: #000000; background: #f3654e;} a.rusure:active {text-decoration: none; color: #cc1242;} a.rusure:link {text-decoration: none; color: #cc1242;} a.rusure:visited {text-decoration: none; color: #cc1242;} a.rusure:hover {text-decoration: none; color: #ffffff; background: #cc1242;} .v12 {font-size: 12px; font-family: Verdana, Arial, Helvetica, sans-serif;color:#ffffff;} .v18 {font-size: 18px; font-family: Verdana, Arial, Helvetica, sans-serif;color:#ffffff;} .v24 {font-size: 24px; font-family: Verdana, Arial, Helvetica, sans-serif;color:#ffffff;} input[type=button], input[type=submit], input[type=reset] { background-color: #f3654e; border: none; color: white; padding: 7px 120px; text-decoration: none; margin: 4px 2px; cursor: pointer; } </style> <title>add 2 DoYo</title> </head> <body bgcolor="#000000"><table border="0" width="100%" height="100%"> <tr><th></th><th class="v24">folio.drew.edu/discogs | add to the DoYo record collection</th><th></th></tr> <tr><th></th><th class="v24"> </th><th></th></tr> <tr><th></th><td class="v18"> $title <br> $label <br> $year <br> has been added to the DoYo record collection <p>check your work in <a href="https://drew.locate.ebsco.com/instances/$instanceId" target="_locate">Locate</a> and then <a href="enterData.pl">add another LP</a> to the <a href="https://drew.locate.ebsco.com/search?facets=items.effectiveLocationId%5B%5D%3Dc0a2b694-0fd2-4b10-8bda-94a2bf3bfa2d%26sourceTypes%5B%5D%3DMiscellaneous&option=keyword" target="_locate">DoYo</a> </th><th></th></tr> <tr> <th align="left" valign="bottom"><img border="0" src="https://folio.drew.edu/busybee.png"></th> <th> </th><th align="right" valign="bottom"><img width="200" src="https://folio.drew.edu/faith.jpg"></th> </tr> </table> </body> </html> ]; print qq[Content-Type: text/html \n\n $html ];