From c4789f09a22f5dd28dc4373f79f63f4cfc3381a5 Mon Sep 17 00:00:00 2001 From: Suzanne Vogt Date: Fri, 22 Aug 2025 10:06:43 -0400 Subject: [PATCH 1/7] Testing with updated bolognese. --- Gemfile | 3 +- Gemfile.lock | 94 +++++++++++++++++++++++++++++++++------------------- 2 files changed, 62 insertions(+), 35 deletions(-) diff --git a/Gemfile b/Gemfile index fad9f8f..2afd941 100644 --- a/Gemfile +++ b/Gemfile @@ -9,7 +9,8 @@ gem "oj_mimic_json", "~> 1.0", ">= 1.0.1" gem "equivalent-xml", "~> 0.6.0" gem "nokogiri", ">= 1.10.4" gem "iso8601", "~> 0.9.0" -gem "bolognese", "~> 2.3.2" +# gem "bolognese", "~> 2.3.2" +gem 'bolognese', git: 'https://github.com/datacite/bolognese.git', branch: 'pb88-geolocation' gem "maremma", ">= 4.9.8" gem "faraday", ">= 2.0", "< 3.0.0" gem "base32-url", "~> 0.5" diff --git a/Gemfile.lock b/Gemfile.lock index 20b3b99..520c06f 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -1,3 +1,33 @@ +GIT + remote: https://github.com/datacite/bolognese.git + revision: 94f1d01422afb53d66a395a18fb47a65409ff0ab + branch: pb88-geolocation + specs: + bolognese (2.3.5) + activesupport (>= 4.2.5) + benchmark_methods (~> 0.7) + bibtex-ruby (>= 5.1.0) + builder (~> 3.2, >= 3.2.2) + citeproc-ruby (~> 1.1, >= 1.1.12) + colorize (~> 0.8.1) + concurrent-ruby (~> 1.1, >= 1.1.5) + csl-styles (~> 1.0, >= 1.0.1.10) + edtf (~> 3.0, >= 3.0.4) + gender_detector (~> 0.1.2) + iso8601 (~> 0.9.1) + json-ld-preloaded (~> 3.1, >= 3.1.3) + jsonlint (~> 0.3.0) + loofah (~> 2.0, >= 2.0.3) + maremma (~> 5.0) + namae (~> 1.0) + nokogiri (~> 1.16, >= 1.16.2) + oj (~> 3.10) + oj_mimic_json (~> 1.0, >= 1.0.1) + postrank-uri (~> 1.0, >= 1.0.18) + rdf-rdfxml (~> 3.1) + rdf-turtle (~> 3.1) + thor (>= 0.19) + GEM remote: https://rubygems.org/ specs: @@ -89,30 +119,6 @@ GEM bigdecimal (3.1.8) binding_of_caller (1.0.0) debug_inspector (>= 0.0.1) - bolognese (2.3.2) - activesupport (>= 4.2.5) - benchmark_methods (~> 0.7) - bibtex-ruby (>= 5.1.0) - builder (~> 3.2, >= 3.2.2) - citeproc-ruby (~> 1.1, >= 1.1.12) - colorize (~> 0.8.1) - concurrent-ruby (~> 1.1, >= 1.1.5) - csl-styles (~> 1.0, >= 1.0.1.10) - edtf (~> 3.0, >= 3.0.4) - gender_detector (~> 0.1.2) - iso8601 (~> 0.9.1) - json-ld-preloaded (~> 3.1, >= 3.1.3) - jsonlint (~> 0.3.0) - loofah (~> 2.0, >= 2.0.3) - maremma (~> 5.0) - namae (~> 1.0) - nokogiri (~> 1.16, >= 1.16.2) - oj (~> 3.10) - oj_mimic_json (~> 1.0, >= 1.0.1) - postrank-uri (~> 1.0, >= 1.0.18) - rdf-rdfxml (~> 3.1) - rdf-turtle (~> 3.1) - thor (>= 0.19) bootsnap (1.7.7) msgpack (~> 1.0) builder (3.2.4) @@ -126,8 +132,13 @@ GEM rack-test (>= 0.6.3) regexp_parser (>= 1.5, < 3.0) xpath (~> 3.2) - citeproc (1.0.10) + citeproc (1.1.0) + date + forwardable + json namae (~> 1.0) + observer (< 1.0) + open-uri (< 1.0) citeproc-ruby (1.1.14) citeproc (~> 1.0, >= 1.0.9) csl (~> 1.6) @@ -152,14 +163,15 @@ GEM docile (1.1.5) dotenv (2.7.6) drb (2.2.1) - ebnf (2.5.0) + ebnf (2.6.0) + base64 (~> 0.2) htmlentities (~> 4.3) rdf (~> 3.3) scanf (~> 1.0) sxp (~> 2.0) unicode-types (~> 1.8) - edtf (3.1.1) - activesupport (>= 3.0, < 8.0) + edtf (3.2.0) + activesupport (>= 3.0, < 9.0) equivalent-xml (0.6.0) nokogiri (>= 1.4.3) erubi (1.13.0) @@ -184,6 +196,7 @@ GEM net-http ffi (1.17.0-arm64-darwin) ffi (1.17.0-x86_64-linux-gnu) + forwardable (1.3.3) gender_detector (0.1.2) unicode_utils (>= 1.3.0) git (1.8.1) @@ -209,7 +222,7 @@ GEM rack (>= 2.2, < 4) rdf (~> 3.3) rexml (~> 3.2) - json-ld-preloaded (3.3.1) + json-ld-preloaded (3.3.2) json-ld (~> 3.3) rdf (~> 3.3) jsonlint (0.3.0) @@ -253,11 +266,11 @@ GEM nokogiri (~> 1.16, >= 1.16.2) oj (>= 2.8.3) oj_mimic_json (~> 1.0, >= 1.0.1) - matrix (0.4.2) + matrix (0.4.3) mini_mime (1.0.3) minitest (5.14.4) msgpack (1.4.5) - multi_json (1.15.0) + multi_json (1.17.0) multipart-post (2.4.1) namae (1.2.0) racc (~> 1.7) @@ -279,9 +292,15 @@ GEM racc (~> 1.4) nokogiri (1.16.7-x86_64-linux) racc (~> 1.4) + observer (0.1.2) oj (3.11.8) oj_mimic_json (1.0.1) - optimist (3.2.0) + open-uri (0.5.0) + stringio + time + uri + optimist (3.2.1) + ostruct (0.6.3) parallel (1.20.1) parser (3.0.3.2) ast (~> 2.4.1) @@ -340,10 +359,13 @@ GEM rb-inotify (0.11.1) ffi (~> 1.0) rchardet (1.8.0) - rdf (3.3.2) + rdf (3.3.4) bcp47_spec (~> 0.2) bigdecimal (~> 3.1, >= 3.1.5) link_header (~> 0.0, >= 0.0.8) + logger (~> 1.5) + ostruct (~> 0.6) + readline (~> 0.0) rdf-rdfxml (3.3.0) builder (~> 3.2, >= 3.2.4) htmlentities (~> 4.3) @@ -359,6 +381,8 @@ GEM rexml (~> 3.2) rdoc (6.7.0) psych (>= 4.0.0) + readline (0.0.4) + reline regexp_parser (2.1.1) reline (0.5.10) io-console (~> 0.5) @@ -417,6 +441,8 @@ GEM matrix (~> 0.4) rdf (~> 3.3) thor (1.3.2) + time (0.4.1) + date timeout (0.4.1) tzinfo (2.0.6) concurrent-ruby (~> 1.0) @@ -450,7 +476,7 @@ DEPENDENCIES base64 (~> 0.2.0) better_errors binding_of_caller - bolognese (~> 2.3.2) + bolognese! bootsnap (>= 1.1.0) byebug cancancan (~> 2.0) From ca9b536a52091644e19ec125c477bb62da256983 Mon Sep 17 00:00:00 2001 From: Suzanne Vogt Date: Fri, 22 Aug 2025 18:12:48 -0400 Subject: [PATCH 2/7] No code changes. Add appropriate tests. --- spec/fixtures/files/datacite-geolocation.xml | 85 +++++++++++++++++++ .../metadata_geolocation/delete_doi.yml | 64 ++++++++++++++ .../delete_metadata_for_doi.yml | 75 ++++++++++++++++ .../metadata_geolocation/get_doi_for_doi.yml | 64 ++++++++++++++ .../get_metadata_for_doi.yml | 73 ++++++++++++++++ .../put_metadata_for_doi.yml | 75 ++++++++++++++++ spec/requests/metadata_spec.rb | 67 +++++++++++++++ 7 files changed, 503 insertions(+) create mode 100644 spec/fixtures/files/datacite-geolocation.xml create mode 100644 spec/fixtures/vcr_cassettes/metadata/metadata_geolocation/delete_doi.yml create mode 100644 spec/fixtures/vcr_cassettes/metadata/metadata_geolocation/delete_metadata_for_doi.yml create mode 100644 spec/fixtures/vcr_cassettes/metadata/metadata_geolocation/get_doi_for_doi.yml create mode 100644 spec/fixtures/vcr_cassettes/metadata/metadata_geolocation/get_metadata_for_doi.yml create mode 100644 spec/fixtures/vcr_cassettes/metadata/metadata_geolocation/put_metadata_for_doi.yml diff --git a/spec/fixtures/files/datacite-geolocation.xml b/spec/fixtures/files/datacite-geolocation.xml new file mode 100644 index 0000000..ee25e40 --- /dev/null +++ b/spec/fixtures/files/datacite-geolocation.xml @@ -0,0 +1,85 @@ + + + 10.14454/ey2x-5w17 + + + Fenner, Martin + Martin + Fenner + 0000-0003-1419-2405 + + + + Eating your own Dog Food + + DataCite + 2016 + BlogPosting + + MS-49-3632-5083 + + + datacite + doi + metadata + + + 2016-12-20 + 2016-12-20 + 2016-12-20 + + + 10.5438/0012 + 10.5438/55E5-T5C0 + 10.5438/0000-00SS + + 1.0 + + Eating your own dog food is a slang term to describe that an organization should itself use the products and services it provides. For DataCite this means that we should use DOIs with appropriate metadata and strategies for long-term preservation for... + + + + New York, NY + + 31.233 + -67.302 + + + -123.0 + +123. + -40 + 60.2312 + + + + 42.4935265 + -87.812664 + + + 42.4975767 + -88.5872001 + + + 41.5550023 + -88.6915703 + + + 41.4624467 + -87.5270195 + + + 41.46244679 + -87.51054 + + + 42.2012176 + -87.812664 + + + 42.2195267 + -88.2960624 + + + + + diff --git a/spec/fixtures/vcr_cassettes/metadata/metadata_geolocation/delete_doi.yml b/spec/fixtures/vcr_cassettes/metadata/metadata_geolocation/delete_doi.yml new file mode 100644 index 0000000..1e2d43b --- /dev/null +++ b/spec/fixtures/vcr_cassettes/metadata/metadata_geolocation/delete_doi.yml @@ -0,0 +1,64 @@ +--- +http_interactions: +- request: + method: delete + uri: http://api.stage.datacite.org/dois/10.14454/fdsrf-232 + body: + encoding: US-ASCII + string: '' + headers: + User-Agent: + - Mozilla/5.0 (compatible; Maremma/5.0.0; mailto:info@datacite.org) + Accept: + - text/html,application/json,application/xml;q=0.9, text/plain;q=0.8,image/png,*/*;q=0.5 + Authorization: + - Basic + Accept-Encoding: + - gzip,deflate + response: + status: + code: 204 + message: '' + headers: + Connection: + - keep-alive + Status: + - 204 No Content + Cache-Control: + - no-cache + Referrer-Policy: + - strict-origin-when-cross-origin + X-Permitted-Cross-Domain-Policies: + - none + X-Xss-Protection: + - '0' + X-Credential-Username: + - datacite.test + X-Request-Id: + - 6b912073-6993-4a71-b708-bae71ce6d9ca + X-Runtime: + - '0.059250' + X-Frame-Options: + - SAMEORIGIN + X-Content-Type-Options: + - nosniff + Date: + - Fri, 22 Aug 2025 22:04:03 GMT + X-Powered-By: + - Phusion Passenger(R) 6.0.27 + Server: + - nginx/1.18.0 + Phusion Passenger(R) 6.0.27 + Access-Control-Allow-Credentials: + - 'true' + Access-Control-Allow-Methods: + - GET, POST, PUT, PATCH, DELETE, OPTIONS + Access-Control-Allow-Headers: + - Accept,Access-Control-Allow-Origin,Access-Control-Expose-Headers,Access-Control-Allow-Methods,Access-Control-Allow-Headers,Authorization,Cache-Control,Content-Type,DNT,If-Modified-Since,Keep-Alive,Origin,User-Agent,X-Mx-ReqToken,X-Requested-With + Access-Control-Expose-Headers: + - Authorization + body: + encoding: ASCII-8BIT + string: '' + http_version: + recorded_at: Fri, 22 Aug 2025 22:04:03 GMT +recorded_with: VCR 3.0.3 diff --git a/spec/fixtures/vcr_cassettes/metadata/metadata_geolocation/delete_metadata_for_doi.yml b/spec/fixtures/vcr_cassettes/metadata/metadata_geolocation/delete_metadata_for_doi.yml new file mode 100644 index 0000000..0aa3b49 --- /dev/null +++ b/spec/fixtures/vcr_cassettes/metadata/metadata_geolocation/delete_metadata_for_doi.yml @@ -0,0 +1,75 @@ +--- +http_interactions: +- request: + method: patch + uri: http://api.stage.datacite.org/dois/10.14454/fdsrf-232 + body: + encoding: UTF-8 + string: '{"data":{"type":"dois","attributes":{"event":"hide"},"relationships":{"client":{"data":{"type":"clients","id":"datacite.test"}}}}}' + headers: + User-Agent: + - Mozilla/5.0 (compatible; Maremma/5.0.0; mailto:info@datacite.org) + Accept: + - text/html,application/json,application/xml;q=0.9, text/plain;q=0.8,image/png,*/*;q=0.5 + Content-Type: + - application/vnd.api+json + Authorization: + - Basic + Accept-Encoding: + - gzip,deflate + response: + status: + code: 200 + message: '' + headers: + Content-Type: + - application/json; charset=utf-8 + Connection: + - keep-alive + Status: + - 200 OK + Cache-Control: + - max-age=0, private, must-revalidate + Vary: + - Accept-Encoding + Content-Encoding: + - gzip + Referrer-Policy: + - strict-origin-when-cross-origin + X-Permitted-Cross-Domain-Policies: + - none + X-Xss-Protection: + - '0' + X-Credential-Username: + - datacite.test + X-Request-Id: + - a00371be-d7d0-46ad-95c5-f8bdd827ae22 + Etag: + - W/"de05cf711f33e6c0cb38ff4ce31841c0" + X-Frame-Options: + - SAMEORIGIN + X-Runtime: + - '0.056895' + X-Content-Type-Options: + - nosniff + Date: + - Fri, 22 Aug 2025 22:04:03 GMT + X-Powered-By: + - Phusion Passenger(R) 6.0.27 + Server: + - nginx/1.18.0 + Phusion Passenger(R) 6.0.27 + Access-Control-Allow-Credentials: + - 'true' + Access-Control-Allow-Methods: + - GET, POST, PUT, PATCH, DELETE, OPTIONS + Access-Control-Allow-Headers: + - Accept,Access-Control-Allow-Origin,Access-Control-Expose-Headers,Access-Control-Allow-Methods,Access-Control-Allow-Headers,Authorization,Cache-Control,Content-Type,DNT,If-Modified-Since,Keep-Alive,Origin,User-Agent,X-Mx-ReqToken,X-Requested-With + Access-Control-Expose-Headers: + - Authorization + body: + encoding: ASCII-8BIT + string: !binary |- + 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 + http_version: + recorded_at: Fri, 22 Aug 2025 22:04:03 GMT +recorded_with: VCR 3.0.3 diff --git a/spec/fixtures/vcr_cassettes/metadata/metadata_geolocation/get_doi_for_doi.yml b/spec/fixtures/vcr_cassettes/metadata/metadata_geolocation/get_doi_for_doi.yml new file mode 100644 index 0000000..1165d07 --- /dev/null +++ b/spec/fixtures/vcr_cassettes/metadata/metadata_geolocation/get_doi_for_doi.yml @@ -0,0 +1,64 @@ +--- +http_interactions: +- request: + method: get + uri: http:///api.stage.datacite.org/dois/10.14454/fdsrf-232/get-url + body: + encoding: US-ASCII + string: '' + headers: + User-Agent: + - Mozilla/5.0 (compatible; Maremma/5.0.0; mailto:info@datacite.org) + Accept: + - text/html,application/json,application/xml;q=0.9, text/plain;q=0.8,image/png,*/*;q=0.5 + Authorization: + - Basic + Accept-Encoding: + - gzip,deflate + response: + status: + code: 204 + message: '' + headers: + Connection: + - keep-alive + Status: + - 204 No Content + Cache-Control: + - no-cache + Referrer-Policy: + - strict-origin-when-cross-origin + X-Permitted-Cross-Domain-Policies: + - none + X-Xss-Protection: + - '0' + X-Credential-Username: + - datacite.test + X-Request-Id: + - e2daf37a-dac1-436a-85b1-d3c3aafc70f0 + X-Runtime: + - '0.011961' + X-Frame-Options: + - SAMEORIGIN + X-Content-Type-Options: + - nosniff + Date: + - Fri, 22 Aug 2025 22:04:02 GMT + X-Powered-By: + - Phusion Passenger(R) 6.0.27 + Server: + - nginx/1.18.0 + Phusion Passenger(R) 6.0.27 + Access-Control-Allow-Credentials: + - 'true' + Access-Control-Allow-Methods: + - GET, POST, PUT, PATCH, DELETE, OPTIONS + Access-Control-Allow-Headers: + - Accept,Access-Control-Allow-Origin,Access-Control-Expose-Headers,Access-Control-Allow-Methods,Access-Control-Allow-Headers,Authorization,Cache-Control,Content-Type,DNT,If-Modified-Since,Keep-Alive,Origin,User-Agent,X-Mx-ReqToken,X-Requested-With + Access-Control-Expose-Headers: + - Authorization + body: + encoding: ASCII-8BIT + string: '' + http_version: + recorded_at: Fri, 22 Aug 2025 22:04:02 GMT +recorded_with: VCR 3.0.3 diff --git a/spec/fixtures/vcr_cassettes/metadata/metadata_geolocation/get_metadata_for_doi.yml b/spec/fixtures/vcr_cassettes/metadata/metadata_geolocation/get_metadata_for_doi.yml new file mode 100644 index 0000000..264106a --- /dev/null +++ b/spec/fixtures/vcr_cassettes/metadata/metadata_geolocation/get_metadata_for_doi.yml @@ -0,0 +1,73 @@ +--- +http_interactions: +- request: + method: get + uri: http:///api.stage.datacite.org/dois/10.14454/fdsrf-232 + body: + encoding: US-ASCII + string: '' + headers: + User-Agent: + - Mozilla/5.0 (compatible; Maremma/5.0.0; mailto:info@datacite.org) + Accept: + - application/vnd.datacite.datacite+xml + Authorization: + - Basic + Accept-Encoding: + - gzip,deflate + response: + status: + code: 200 + message: '' + headers: + Content-Type: + - application/vnd.datacite.datacite+xml; charset=utf-8 + Connection: + - keep-alive + Status: + - 200 OK + Cache-Control: + - max-age=0, private, must-revalidate + Vary: + - Accept,Accept-Encoding + Content-Encoding: + - gzip + Referrer-Policy: + - strict-origin-when-cross-origin + X-Permitted-Cross-Domain-Policies: + - none + X-Xss-Protection: + - '0' + X-Credential-Username: + - datacite.test + X-Request-Id: + - fc3ffda7-2584-4e81-86fc-2afbd2ad81d5 + Etag: + - W/"9c1835b1eebbf6fc52f76005a057dad9" + X-Frame-Options: + - SAMEORIGIN + X-Runtime: + - '0.010460' + X-Content-Type-Options: + - nosniff + Date: + - Fri, 22 Aug 2025 22:04:02 GMT + X-Powered-By: + - Phusion Passenger(R) 6.0.27 + Server: + - nginx/1.18.0 + Phusion Passenger(R) 6.0.27 + Access-Control-Allow-Credentials: + - 'true' + Access-Control-Allow-Methods: + - GET, POST, PUT, PATCH, DELETE, OPTIONS + Access-Control-Allow-Headers: + - Accept,Access-Control-Allow-Origin,Access-Control-Expose-Headers,Access-Control-Allow-Methods,Access-Control-Allow-Headers,Authorization,Cache-Control,Content-Type,DNT,If-Modified-Since,Keep-Alive,Origin,User-Agent,X-Mx-ReqToken,X-Requested-With + Access-Control-Expose-Headers: + - Authorization + body: + encoding: ASCII-8BIT + string: !binary |- + H4sIAFLpqGgAA7xWWW/jOAx+n18h+HXH95GkcD3YttNFgV7oAWwfVZtJtONIgaQ07f76pewodlJn0T50BujA5PfxEElRyX+8LmryAlIxwY+d0AscArwUFeOzY+fx4dwdOz+Kb7kEJVayBIJ0ro5eFTt25lovj3x/vV5769gTcuZHQRD6f19d3pdzWFCXcaUpL8FprbYWFdW0ZBoaG9Vw/V8gOdRuglzFjlrlpSipbvL6gCHZcFq1t0NdgO6IjWRg71VVTvGNkJxVwDWbMpCk+3x4W8Kxc3Zz4RRh4IVJkib++dn93bkbxVHud8TGRSmBaiGVETqxlTr5mi6gOAfOQX4nV1RqxnO/j1n+jL0AbzSW1WksZ0oXrH7rucz9nsqyOAoX3fma8sDj3cW2qEKWrGrK5JBdctNGrMHN3enFmVME+M/Fv9gNk3DiRkmQ5v6uxeb0fu/4W6EpTa6ZrsFWqRGKn9hkPiNvOGBErDk5EzNyLkSV+y3eOOns8uXquWZqjtHOsIun2OTc73RbRjs7T0BlEQVhtuH0tIZp59o0m/SFvwALSutj5wFetVOc1GJ2K5RJNPf7vMYLrTUOF9W9StgjDkBkQNcOmxn4mtCyBGXuI+GrxTNIp7i6d5OJG2dx5KbBOM79AQ9tmQ5lkqvV8z9QapvWRizsNcl9q9nDBTsE2Wu0g2+FNiri22abb2L+a896aqYC8AKa5rhh5EZBbi44DNMvlFp9nP24rA47b7/Upv+1Ib7v2zuAvNN0C6LFsGOt6g6mIHGLgmpWR5rEYx83Y2QmZ8/HF0VL05+p+5CeBl8T8kLd4la6mfaP1+yG+/sDAQfUbQM2T0+BL0/uW6EZHVClZEsTdDtBnYr0vtuc/nxWWtIS7+r+Pqlwn0xxnxCmCCWqpgjiLVkQLTZunoHoOdWEcoJ7kHL2b3NYouZiVaOdVlBPyUoZGpClFNUKJxzpFVEgXxjWHkkGeMFnQXm4viSxywltMPACKFdtlDVYx8YjlleRNdNzQpfoYCmZGWV7udoYeDANM4ZRpui4FnzmNgdY4ibC+G2yCHmeh8PdVWYz7XuVzGcg7NNqS9tTdW9Qp7utaQnFNazJk5C/vpPrJ3yQ9uEhO8G4toBZzEa+REivKiji0Iti3Ga72n02nrYF3GzkxUFk+Vu9jesfCtzP6ES89iKsQekTseJVL0oYxWYWB6DODug78A9jl/sDSGeGz4aet6g9rZtgrAF9Z8SF3AezAAtn9skANlSN3qF3u1O/zbqGNxVvNHtte9e4JPKSSZxGWXqweQPtG4+8cRhlWXKogybr4Qw+ldgoHWWjTyU29tLxyPx4/cLMQi9N0yCIDs/7cGbZJExHQfylmSVZlCSfrNnIS6NREE7S35HZ5LOphUH6tWOGPyyicJT9rvln9rJ+JDVsSvTpGxBNsgCL/X+5DSext3d7K2UHad+i3aen+yld/AcAAP//AwDkFnfLiQ4AAA== + http_version: + recorded_at: Fri, 22 Aug 2025 22:04:02 GMT +recorded_with: VCR 3.0.3 diff --git a/spec/fixtures/vcr_cassettes/metadata/metadata_geolocation/put_metadata_for_doi.yml b/spec/fixtures/vcr_cassettes/metadata/metadata_geolocation/put_metadata_for_doi.yml new file mode 100644 index 0000000..29be4e0 --- /dev/null +++ b/spec/fixtures/vcr_cassettes/metadata/metadata_geolocation/put_metadata_for_doi.yml @@ -0,0 +1,75 @@ +--- +http_interactions: +- request: + method: put + uri: http:///api.stage.datacite.org/dois/10.14454/fdsrf-232 + body: + encoding: UTF-8 + string: '{"data":{"type":"dois","attributes":{"doi":"10.14454/fdsrf-232","xml":"PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHJlc291cmNlIHhtbG5zOnhzaT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2UiIHhtbG5zPSJodHRwOi8vZGF0YWNpdGUub3JnL3NjaGVtYS9rZXJuZWwtNCIgeHNpOnNjaGVtYUxvY2F0aW9uPSJodHRwOi8vZGF0YWNpdGUub3JnL3NjaGVtYS9rZXJuZWwtNCBodHRwOi8vc2NoZW1hLmRhdGFjaXRlLm9yZy9tZXRhL2tlcm5lbC00L21ldGFkYXRhLnhzZCI+CiAgPGlkZW50aWZpZXIgaWRlbnRpZmllclR5cGU9IkRPSSI+MTAuMTQ0NTQvZXkyeC01dzE3PC9pZGVudGlmaWVyPgogIDxjcmVhdG9ycz4KICAgIDxjcmVhdG9yPgogICAgICA8Y3JlYXRvck5hbWU+RmVubmVyLCBNYXJ0aW48L2NyZWF0b3JOYW1lPgogICAgICA8Z2l2ZW5OYW1lPk1hcnRpbjwvZ2l2ZW5OYW1lPgogICAgICA8ZmFtaWx5TmFtZT5GZW5uZXI8L2ZhbWlseU5hbWU+CiAgICAgIDxuYW1lSWRlbnRpZmllciBzY2hlbWVVUkk9Imh0dHA6Ly9vcmNpZC5vcmcvIiBuYW1lSWRlbnRpZmllclNjaGVtZT0iT1JDSUQiPjAwMDAtMDAwMy0xNDE5LTI0MDU8L25hbWVJZGVudGlmaWVyPgogICAgPC9jcmVhdG9yPgogIDwvY3JlYXRvcnM+CiAgPHRpdGxlcz4KICAgIDx0aXRsZT5FYXRpbmcgeW91ciBvd24gRG9nIEZvb2Q8L3RpdGxlPgogIDwvdGl0bGVzPgogIDxwdWJsaXNoZXI+RGF0YUNpdGU8L3B1Ymxpc2hlcj4KICA8cHVibGljYXRpb25ZZWFyPjIwMTY8L3B1YmxpY2F0aW9uWWVhcj4KICA8cmVzb3VyY2VUeXBlIHJlc291cmNlVHlwZUdlbmVyYWw9IlRleHQiPkJsb2dQb3N0aW5nPC9yZXNvdXJjZVR5cGU+CiAgPGFsdGVybmF0ZUlkZW50aWZpZXJzPgogICAgPGFsdGVybmF0ZUlkZW50aWZpZXIgYWx0ZXJuYXRlSWRlbnRpZmllclR5cGU9IkxvY2FsIGFjY2Vzc2lvbiBudW1iZXIiPk1TLTQ5LTM2MzItNTA4MzwvYWx0ZXJuYXRlSWRlbnRpZmllcj4KICA8L2FsdGVybmF0ZUlkZW50aWZpZXJzPgogIDxzdWJqZWN0cz4KICAgIDxzdWJqZWN0PmRhdGFjaXRlPC9zdWJqZWN0PgogICAgPHN1YmplY3Q+ZG9pPC9zdWJqZWN0PgogICAgPHN1YmplY3Q+bWV0YWRhdGE8L3N1YmplY3Q+CiAgPC9zdWJqZWN0cz4KICA8ZGF0ZXM+CiAgICA8ZGF0ZSBkYXRlVHlwZT0iQ3JlYXRlZCI+MjAxNi0xMi0yMDwvZGF0ZT4KICAgIDxkYXRlIGRhdGVUeXBlPSJJc3N1ZWQiPjIwMTYtMTItMjA8L2RhdGU+CiAgICA8ZGF0ZSBkYXRlVHlwZT0iVXBkYXRlZCI+MjAxNi0xMi0yMDwvZGF0ZT4KICA8L2RhdGVzPgogIDxyZWxhdGVkSWRlbnRpZmllcnM+CiAgICA8cmVsYXRlZElkZW50aWZpZXIgcmVsYXRlZElkZW50aWZpZXJUeXBlPSJET0kiIHJlbGF0aW9uVHlwZT0iUmVmZXJlbmNlcyI+MTAuNTQzOC8wMDEyPC9yZWxhdGVkSWRlbnRpZmllcj4KICAgIDxyZWxhdGVkSWRlbnRpZmllciByZWxhdGVkSWRlbnRpZmllclR5cGU9IkRPSSIgcmVsYXRpb25UeXBlPSJSZWZlcmVuY2VzIj4xMC41NDM4LzU1RTUtVDVDMDwvcmVsYXRlZElkZW50aWZpZXI+CiAgICA8cmVsYXRlZElkZW50aWZpZXIgcmVsYXRlZElkZW50aWZpZXJUeXBlPSJET0kiIHJlbGF0aW9uVHlwZT0iSXNQYXJ0T2YiPjEwLjU0MzgvMDAwMC0wMFNTPC9yZWxhdGVkSWRlbnRpZmllcj4KICA8L3JlbGF0ZWRJZGVudGlmaWVycz4KICA8dmVyc2lvbj4xLjA8L3ZlcnNpb24+CiAgPGRlc2NyaXB0aW9ucz4KICAgIDxkZXNjcmlwdGlvbiBkZXNjcmlwdGlvblR5cGU9IkFic3RyYWN0Ij5FYXRpbmcgeW91ciBvd24gZG9nIGZvb2QgaXMgYSBzbGFuZyB0ZXJtIHRvIGRlc2NyaWJlIHRoYXQgYW4gb3JnYW5pemF0aW9uIHNob3VsZCBpdHNlbGYgdXNlIHRoZSBwcm9kdWN0cyBhbmQgc2VydmljZXMgaXQgcHJvdmlkZXMuIEZvciBEYXRhQ2l0ZSB0aGlzIG1lYW5zIHRoYXQgd2Ugc2hvdWxkIHVzZSBET0lzIHdpdGggYXBwcm9wcmlhdGUgbWV0YWRhdGEgYW5kIHN0cmF0ZWdpZXMgZm9yIGxvbmctdGVybSBwcmVzZXJ2YXRpb24gZm9yLi4uPC9kZXNjcmlwdGlvbj4KICA8L2Rlc2NyaXB0aW9ucz4KICA8Z2VvTG9jYXRpb25zPgogICAgPGdlb0xvY2F0aW9uPgogICAgICA8Z2VvTG9jYXRpb25QbGFjZT5OZXcgWW9yaywgTlk8L2dlb0xvY2F0aW9uUGxhY2U+CiAgICAgIDxnZW9Mb2NhdGlvblBvaW50PgogICAgICAgIDxwb2ludExhdGl0dWRlPjMxLjIzMzwvcG9pbnRMYXRpdHVkZT4KICAgICAgICA8cG9pbnRMb25naXR1ZGU+LTY3LjMwMjwvcG9pbnRMb25naXR1ZGU+CiAgICAgIDwvZ2VvTG9jYXRpb25Qb2ludD4KICAgICAgPGdlb0xvY2F0aW9uQm94PgogICAgICAgIDx3ZXN0Qm91bmRMb25naXR1ZGU+LTEyMy4wPC93ZXN0Qm91bmRMb25naXR1ZGU+CiAgICAgICAgPGVhc3RCb3VuZExvbmdpdHVkZT4rMTIzLjwvZWFzdEJvdW5kTG9uZ2l0dWRlPgogICAgICAgIDxzb3V0aEJvdW5kTGF0aXR1ZGU+LTQwPC9zb3V0aEJvdW5kTGF0aXR1ZGU+CiAgICAgICAgPG5vcnRoQm91bmRMYXRpdHVkZT42MC4yMzEyPC9ub3J0aEJvdW5kTGF0aXR1ZGU+CiAgICAgIDwvZ2VvTG9jYXRpb25Cb3g+CiAgICAgIDxnZW9Mb2NhdGlvblBvbHlnb24+CiAgICAgICAgPHBvbHlnb25Qb2ludD4KICAgICAgICAgIDxwb2ludExhdGl0dWRlPjQyLjQ5MzUyNjU8L3BvaW50TGF0aXR1ZGU+CiAgICAgICAgICA8cG9pbnRMb25naXR1ZGU+LTg3LjgxMjY2NDwvcG9pbnRMb25naXR1ZGU+CiAgICAgICAgPC9wb2x5Z29uUG9pbnQ+CiAgICAgICAgPHBvbHlnb25Qb2ludD4KICAgICAgICAgIDxwb2ludExhdGl0dWRlPjQyLjQ5NzU3Njc8L3BvaW50TGF0aXR1ZGU+CiAgICAgICAgICA8cG9pbnRMb25naXR1ZGU+LTg4LjU4NzIwMDE8L3BvaW50TG9uZ2l0dWRlPgogICAgICAgIDwvcG9seWdvblBvaW50PgogICAgICAgIDxwb2x5Z29uUG9pbnQ+CiAgICAgICAgICA8cG9pbnRMYXRpdHVkZT40MS41NTUwMDIzPC9wb2ludExhdGl0dWRlPgogICAgICAgICAgPHBvaW50TG9uZ2l0dWRlPi04OC42OTE1NzAzPC9wb2ludExvbmdpdHVkZT4KICAgICAgICA8L3BvbHlnb25Qb2ludD4KICAgICAgICA8cG9seWdvblBvaW50PgogICAgICAgICAgPHBvaW50TGF0aXR1ZGU+NDEuNDYyNDQ2NzwvcG9pbnRMYXRpdHVkZT4KICAgICAgICAgIDxwb2ludExvbmdpdHVkZT4tODcuNTI3MDE5NTwvcG9pbnRMb25naXR1ZGU+CiAgICAgICAgPC9wb2x5Z29uUG9pbnQ+CiAgICAgICAgPHBvbHlnb25Qb2ludD4KICAgICAgICAgIDxwb2ludExhdGl0dWRlPjQxLjQ2MjQ0Njc5PC9wb2ludExhdGl0dWRlPgogICAgICAgICAgPHBvaW50TG9uZ2l0dWRlPi04Ny41MTA1NDwvcG9pbnRMb25naXR1ZGU+CiAgICAgICAgPC9wb2x5Z29uUG9pbnQ+CiAgICAgICAgPHBvbHlnb25Qb2ludD4KICAgICAgICAgIDxwb2ludExhdGl0dWRlPjQyLjIwMTIxNzY8L3BvaW50TGF0aXR1ZGU+CiAgICAgICAgICA8cG9pbnRMb25naXR1ZGU+LTg3LjgxMjY2NDwvcG9pbnRMb25naXR1ZGU+CiAgICAgICAgPC9wb2x5Z29uUG9pbnQ+CiAgICAgICAgPGluUG9seWdvblBvaW50PgogICAgICAgICAgPHBvaW50TGF0aXR1ZGU+NDIuMjE5NTI2NzwvcG9pbnRMYXRpdHVkZT4KICAgICAgICAgIDxwb2ludExvbmdpdHVkZT4tODguMjk2MDYyNDwvcG9pbnRMb25naXR1ZGU+CiAgICAgICAgPC9pblBvbHlnb25Qb2ludD4KICAgICAgPC9nZW9Mb2NhdGlvblBvbHlnb24+CiAgICA8L2dlb0xvY2F0aW9uPgogIDwvZ2VvTG9jYXRpb25zPgo8L3Jlc291cmNlPgo=","should_validate":"true","source":"mds","event":"show"},"relationships":{"client":{"data":{"type":"clients","id":"datacite.test"}}}}}' + headers: + User-Agent: + - Mozilla/5.0 (compatible; Maremma/5.0.0; mailto:info@datacite.org) + Accept: + - text/html,application/json,application/xml;q=0.9, text/plain;q=0.8,image/png,*/*;q=0.5 + Content-Type: + - application/vnd.api+json + Authorization: + - Basic + Accept-Encoding: + - gzip,deflate + response: + status: + code: 201 + message: '' + headers: + Content-Type: + - application/json; charset=utf-8 + Connection: + - keep-alive + Status: + - 201 Created + Cache-Control: + - max-age=0, private, must-revalidate + Vary: + - Accept-Encoding + Content-Encoding: + - gzip + Referrer-Policy: + - strict-origin-when-cross-origin + X-Permitted-Cross-Domain-Policies: + - none + X-Xss-Protection: + - '0' + X-Credential-Username: + - datacite.test + X-Request-Id: + - 0dc10847-44ba-4356-9464-4c8e2840e9ab + Etag: + - W/"d96d276ba841483f9cb396b7c5f09f96" + X-Frame-Options: + - SAMEORIGIN + X-Runtime: + - '0.094844' + X-Content-Type-Options: + - nosniff + Date: + - Fri, 22 Aug 2025 22:04:02 GMT + X-Powered-By: + - Phusion Passenger(R) 6.0.27 + Server: + - nginx/1.18.0 + Phusion Passenger(R) 6.0.27 + Access-Control-Allow-Credentials: + - 'true' + Access-Control-Allow-Methods: + - GET, POST, PUT, PATCH, DELETE, OPTIONS + Access-Control-Allow-Headers: + - Accept,Access-Control-Allow-Origin,Access-Control-Expose-Headers,Access-Control-Allow-Methods,Access-Control-Allow-Headers,Authorization,Cache-Control,Content-Type,DNT,If-Modified-Since,Keep-Alive,Origin,User-Agent,X-Mx-ReqToken,X-Requested-With + Access-Control-Expose-Headers: + - Authorization + body: + encoding: ASCII-8BIT + string: !binary |- + H4sIAFLpqGgAA8xaW3OqyhL+K5ava+kChCSmaj/ESxSPEC8oyq79wGVEdAAPFxVW5b+fngEUjSZrn3127ZOqVKSnp+fr7q97Bic/q5Ye6dXnn1XHqj5XWabO8rzA/1hZYbCqcQ2u+r0aJTsEY5bvhPCkR1HgGHGEQjILhPem7QK0co6lUZCF8SqTlRUdC3mRs3JQACZ//1l6VrKVh76p44pumigMHd+reLFroOBiJmhJ0xrfrDUeGlxNYJ4a1fc/ACyOUODpERKv1rgx8NViN6bcWdUMkB75+Uqe7hKzr8jzUPC9IulB5Hhgznb2yJOzwZNwpbsOTuTyFJASE9cOXMpAex1Fu/D5xw8/MB2r7gf2DwZ+avDbqLE826xxPCOQFJhr5KJZ4Nya82GxKdUG1bdJW+xkMYUUYkePIDiA5A8iipwIowwX/Qj6XVDw7Erix0HFP3iVjm9XXn3foiZ2sYGdcE1xd4B/bSdCsLTpe5HuEJ+BWTnrpihwUHida6CUwDeeChen0wuFPJOdN7H6ni9mUrxLpMNsjmEfCBWNDTKjDHX+QFgOcEwC5/37hRh4filxUaTT2qEZB+S0KrKsgwSG8oiQT6BPVq2xXI1jqtlojrJNyIIsav0LVTEM41/TnO2szCggwbpnx7oNYi/GOCtnWruUCfobZB3CbK59rAc4eQEmmphmA6KwC3wTRvVMWNtANj0dw6DhGBE6nodAFEB7eK5ORhOFPKAQdE2Kp4cgpTDruaqgY3Q1CNIW9u2RHxK+kHwFCBPs14T/IL6gActVb8wsESEfBRLkwglaoQB5UOY0oJ+ZFwQk1CLBZP7GNXImh+GfXUMMR5CDtxXNdTEzQm7Ow9BJUf5x5QeuHuUPe4grreAqW6d+OfY6CodOGOX8RaEZODuyUE7js+BGeVtQ3iso74oTVvRKSDhXgXbpViK/ks00UCVa61FF9yrQaHTPSakXlXDtxxjmRSHCq0ocEjVUAeJZMVQnqFuVEAV7B4IISmRgD5Ue1qGbBJWiecAcWNhFuhdmqxxQYZhYhMCFlYMTrSv6DgzsAmhfqFJUcLZGFIDMhl4DfgQV7Ht2jToA2xhZPwMLQ/V6vXoRnjwPLwYxAa2B5MFGPtlHztErCUa+40Wk/nbkwxBkUWyBhQZb5xqN77kY1s/ltYfHeoPh3i+stvwjMXFAYdTyY88q67Nco858ryL941g+BOUXrbOx0/I1HgY8P/gw8MAALvZq/ZGPE5tuAMQP+vmeXzxX55sNgXsQbvj29Fh/YrmHB/6dFMivWHoUHh8eb1l6qgtPjxy0gl8yxdYFQWAY7lbAwdRDkxUemcYvmuIfOJ6/jeqxLnCPDNsU/pyp5h1bLCP8aqhgb+DYx4cvg+4UyfzMFjjA3Qs713xgAPX7FfFHWDdJYcjoUFn6wfZ7RV7S4lgBvaB5lJoj7ThHl2wRo06TN9SDbbnzxOTw3tgwjjTlD6LTwoYr77UejrWUcebzSW+o2M4o5f816g+wyTVZ05Wx2F9HRk9I37x1qiuMo/cnjNnx98OG1bASoSElwt50zb20eTlI0+ZSmR2VJbfGhtqNdFVIrd5rvORmTmFnNB34Vn9yeHOeYO1XZqnKO6s3i43GwBs25I3em0fLaTPQFoNYUw+R3BZt1Jd3b14+Njvul9wro6vN+M/bap30TU72NZVdD93JGjBu9MUED91moiXNSFtM1kMuwqYrYKPNMEOOxaCzXRI5xEFri9/azos96uGtpgqARdtpC9HW1Qk2vMlOczE28UQwe7OmuJ2MplPxm6S8xJIyZmRlvJ9sJ8psu4ykjZSM2s2d1pvHVg+7ujpPRrZvi53jxnTngKuZmJAPsf1yIaM6RNZ+eVo2Bhhw7c2tsDbU2beJO48NyPWw3ZKXiwFg45+GnJxo6isDcXlbqiwuz9c4zIEPmXzLrk3Ab2wO+wt5Wd99hbweBQX+aorQA50YfIc1NFgfh2iW4SDxyXHHxMa0HBunlWYcmc9n221TdNeM1X95GCZN4JK809oZp4CjH+fiLK8acFFhB53pbOyMCPc6LxH8HqSEOcqdrjBUREbqzAAXwTMffIgxYIPYX8a0c9if4ulJWY77E+DUEZfywABXQvD9FfR2hmvaSIVacVp7i+PtSa/piV1tb3Djp2Ejm1vYhvUZozdP8xwfLHUQ6gvg4UL8NiH8nVH+wrwWu3SPOxNiZG7ouk9mf+4YPbyha3KCBvlMRhvxICnLk35RF6o6X5/mufPUaMyTJTefoUUL6vlc2/M+PmgzCxO+LNVDU8QTjPoQz+0gNDhrbDRksCd4EKdEW8h7azHYaHPK65z/r6HVmyeG+8pos3ItDNJTjO/qiPZSPTKkNsGnqxwXtUNrPRShPgF/SvsXcMJSWQfmA05WGSpjyLXESakYycoLL6WQw3t285gMuS9wd44p5ObfmiozpbyfZKNSz4DYnOWFz30Z8rHDy8b4m9Zr7r7SAX5C7yI2u5DLs5zGuDQ3x/JEep22kIoay56nLdKfspxCbYwzHmPSq6A3H2WHOUoOk0jAQ6qvnPyi88QeWT/jCPTVgQk4NJXUFuVYJCki9CsSO6I3+3Tt+SJ7/mLt3NapHqBHHcnz9iJn3tlP4HJI7XYveXRbPih86SrM1iG8N3pZfRQ4Z+7cBT2yD2IzyXo09Of0rf0E/aSbUN7fwrQ5xe72uNO6Lb/cEwrcpJ4LrFNN1WDfmceE7+KGP0ptnpU7Ej9MZyzsGtG8M++QON6Jxd8Wq+lCHpP9ROGWwInuYbiZMVJq72nPbTMH6VVWvogXcDuzq6mTi35c8Pp8RuGPQ8K1BsTCkyE+fN5vJtC75ERftCi2Um1uoT9BL8cHsEl6xOXzKe6vjtmYQK+TGXFzu39rpH/3aP+29YVkL6etFDDHWtIiPSUS+5O9WOBQB9BPJ/5yMYZextvk3LFUhR1ys9iJfdmH3htq7dbO6svg+9K2FjKdAzVzMN3m1iJ1nbTWhju2TW6eWC7eQG3D2vDcH+zhGXyRYrKnAMYuOYOMOUxqjtF7OBV7LIY10wKHxc3Aznpvqcet2J+noAc5Bb2+BXuLbS8XdF34xaSO7VLvAR8EmAN4SF9UrR3BocGZSOwd9xCniPZMihvsLgZcxl2e6gwdPob8X8b91G9v5g3OHvO90msWe1ppz4A9iSmd8y7OKxdzxpCbDezFb9rCtFW1mejJwVbwFta8tDHrHddwDi2fSzxNbUoGJ68zjrT2sNcxpbXoHm1wOLa6hNOYsYDTo40E3BRTss+Y0NuB4xLBYvXn21NPzbEW44DTg72C1aBvDpVlY7iRDtLmPL88fsZHzmBXvhIsnfMa13Eau03+Cn8D8sGAnDXcaxzdREr4A+Tsrs4JC10LzhSNSRv4HGtdwger8DmAvSEdkjOj+ppaXeAs8Ahwx3CGzGJ2iYmcRxj9pPfKnDGNCZ6745d44IzoTfwCdykHHPTMREpp/ybvAp/b+hhn8NH+lCdGH3tFTzrh6Rfyj3m6z6VxMtyMBSmdJfKGnvsoB+/5fJ9TNnDKPkpwSpI7X/AqO/cClqOgcaQuiO74f+aLnM7gzcv8K77wsLfwciqSPbhk5x6fqL8hUq1Pavi+r2UcJQ4x8I7MysoMMIhpFq8rf8tr5DH7gNNh+Lc2z70pXVZOX8p2yvVz0TOIv5/E/ulTXy9wnOMO70Ox3FkmcmfMyV/3rXJ+yzijt44J5yOxAXkRZOUf4xn03zEnbeBdemMKfyU3csKzcOZj/9maIedr8Siny/+f+u9hIv8veCbG0oZwQ/yLPLPBzpaTKGd/yZ/duS/f2Cfbza96+IfzQvHOfuOMQs+xxTv0yP7tt+r3ahzg4j6I3F0hL5qdJcUX4/PijoDJrw3PEnp1+PzjR3FdRi8cM50fWxR4CNfofS+95yG3ZRa9wwtfzMjZg2Cl4xDBeJTdY1mBvspuhvSQmM9wYJ1+UTgqXV7tHXRo+zH5npLJnsK3PQoUh1xS0nsL/+BhX7fOSoXkSjEovn48a4Ij9JvLj5KruTs9iM5KO3r/UkKVBemDoKxj5rd+5AqPE2rMU43jFI57ZvhnhqszDKPRaNhOGAFKq3C/uDi18rs/ksn8qu8TS+/nS6Nw7ezo5Z+JHZR923vxDwCnfEYojM53/5l2WH0n96nZDUxwd+55WqGaTXSR5egfZn32LwfZjPf3UrbCs4Hf/3gvZehKTpJyS/a2uhLmybnWPeXsQg4//wEAAP//AwAuUAC/MiEAAA== + http_version: + recorded_at: Fri, 22 Aug 2025 22:04:02 GMT +recorded_with: VCR 3.0.3 diff --git a/spec/requests/metadata_spec.rb b/spec/requests/metadata_spec.rb index 460766d..d4c616c 100644 --- a/spec/requests/metadata_spec.rb +++ b/spec/requests/metadata_spec.rb @@ -527,4 +527,71 @@ end end + + describe "metadata geolocation", type: :request do + let(:doi_id) { "10.14454/fdsrf-232" } + let(:data) { file_fixture("datacite-geolocation.xml").read } + let(:headers) { { "CONTENT_TYPE" => "application/xml;charset=UTF-8", "HTTP_AUTHORIZATION" => "Basic " + credentials } } + + it "put metadata for doi" do + put "/metadata/#{doi_id}", data, headers + + expect(last_response.status).to eq(201) + expect(last_response.body).to eq("OK (#{doi_id.upcase})") + end + + it "get doi for doi" do + get "/doi/#{doi_id}", nil, headers + + expect(last_response.status).to eq(204) + expect(last_response.body).to be_blank + end + + it "get metadata for doi" do + get "/metadata/#{doi_id}", nil, headers + + expect(last_response.status).to eq(200) + + metadata = Maremma.from_xml(last_response.body).fetch("resource", {}) + + expect(metadata.dig("titles", "title")).to eq("Eating your own Dog Food") + # expect(metadata.dig("geoLocations", 0, "geoLocationPolygon", "inPolygonPoint", "pointLatitude")).to eq(42.2195267) + expect(metadata.dig("geoLocations", "geoLocation", "geoLocationPlace")).to eq("New York, NY") + expect(metadata.dig("geoLocations", "geoLocation", "geoLocationPoint", "pointLatitude")).to eq("31.233") + expect(metadata.dig("geoLocations", "geoLocation", "geoLocationPoint", "pointLongitude")).to eq("-67.302") + expect(metadata.dig("geoLocations", "geoLocation", "geoLocationBox", "westBoundLongitude")).to eq("-123.0") + expect(metadata.dig("geoLocations", "geoLocation", "geoLocationBox", "eastBoundLongitude")).to eq("+123.") + expect(metadata.dig("geoLocations", "geoLocation", "geoLocationBox", "southBoundLatitude")).to eq("-40") + expect(metadata.dig("geoLocations", "geoLocation", "geoLocationBox", "northBoundLatitude")).to eq("60.2312") + expect(metadata.dig("geoLocations", "geoLocation", "geoLocationPolygon", "inPolygonPoint", "pointLatitude")).to eq("42.2195267") + expect(metadata.dig("geoLocations", "geoLocation", "geoLocationPolygon", "inPolygonPoint", "pointLongitude")).to eq("-88.2960624") + expect(metadata.dig("geoLocations", "geoLocation", "geoLocationPolygon", "polygonPoint", 0, "pointLatitude")).to eq("42.4935265") + expect(metadata.dig("geoLocations", "geoLocation", "geoLocationPolygon", "polygonPoint", 0, "pointLongitude")).to eq("-87.812664") + expect(metadata.dig("geoLocations", "geoLocation", "geoLocationPolygon", "polygonPoint", 1, "pointLatitude")).to eq("42.4975767") + expect(metadata.dig("geoLocations", "geoLocation", "geoLocationPolygon", "polygonPoint", 1, "pointLongitude")).to eq("-88.5872001") + expect(metadata.dig("geoLocations", "geoLocation", "geoLocationPolygon", "polygonPoint", 2, "pointLatitude")).to eq("41.5550023") + expect(metadata.dig("geoLocations", "geoLocation", "geoLocationPolygon", "polygonPoint", 2, "pointLongitude")).to eq("-88.6915703") + expect(metadata.dig("geoLocations", "geoLocation", "geoLocationPolygon", "polygonPoint", 3, "pointLatitude")).to eq("41.4624467") + expect(metadata.dig("geoLocations", "geoLocation", "geoLocationPolygon", "polygonPoint", 3, "pointLongitude")).to eq("-87.5270195") + expect(metadata.dig("geoLocations", "geoLocation", "geoLocationPolygon", "polygonPoint", 4, "pointLatitude")).to eq("41.46244679") + expect(metadata.dig("geoLocations", "geoLocation", "geoLocationPolygon", "polygonPoint", 4, "pointLongitude")).to eq("-87.51054") + expect(metadata.dig("geoLocations", "geoLocation", "geoLocationPolygon", "polygonPoint", 5, "pointLatitude")).to eq("42.2012176") + expect(metadata.dig("geoLocations", "geoLocation", "geoLocationPolygon", "polygonPoint", 5, "pointLongitude")).to eq("-87.812664") + end + + it "delete metadata for doi" do + delete "/metadata/#{doi_id}", nil, headers + + expect(last_response.status).to eq(200) + expect(last_response.body).to eq("OK") + end + + it "delete doi" do + delete "/doi/#{doi_id}", nil, headers + + expect(last_response.status).to eq(200) + expect(last_response.body).to eq("OK") + end + end + end From 191f84f961d910ca935da0e89c6b1170606eee1c Mon Sep 17 00:00:00 2001 From: Suzanne Vogt Date: Sat, 23 Aug 2025 12:13:24 -0400 Subject: [PATCH 3/7] Fix syntax error in vcr_cassettes. --- .../metadata/metadata_geolocation/get_doi_for_doi.yml | 2 +- .../metadata/metadata_geolocation/get_metadata_for_doi.yml | 2 +- .../metadata/metadata_geolocation/put_metadata_for_doi.yml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/spec/fixtures/vcr_cassettes/metadata/metadata_geolocation/get_doi_for_doi.yml b/spec/fixtures/vcr_cassettes/metadata/metadata_geolocation/get_doi_for_doi.yml index 1165d07..c8f81f9 100644 --- a/spec/fixtures/vcr_cassettes/metadata/metadata_geolocation/get_doi_for_doi.yml +++ b/spec/fixtures/vcr_cassettes/metadata/metadata_geolocation/get_doi_for_doi.yml @@ -2,7 +2,7 @@ http_interactions: - request: method: get - uri: http:///api.stage.datacite.org/dois/10.14454/fdsrf-232/get-url + uri: http://api.stage.datacite.org/dois/10.14454/fdsrf-232/get-url body: encoding: US-ASCII string: '' diff --git a/spec/fixtures/vcr_cassettes/metadata/metadata_geolocation/get_metadata_for_doi.yml b/spec/fixtures/vcr_cassettes/metadata/metadata_geolocation/get_metadata_for_doi.yml index 264106a..c8908e7 100644 --- a/spec/fixtures/vcr_cassettes/metadata/metadata_geolocation/get_metadata_for_doi.yml +++ b/spec/fixtures/vcr_cassettes/metadata/metadata_geolocation/get_metadata_for_doi.yml @@ -2,7 +2,7 @@ http_interactions: - request: method: get - uri: http:///api.stage.datacite.org/dois/10.14454/fdsrf-232 + uri: http://api.stage.datacite.org/dois/10.14454/fdsrf-232 body: encoding: US-ASCII string: '' diff --git a/spec/fixtures/vcr_cassettes/metadata/metadata_geolocation/put_metadata_for_doi.yml b/spec/fixtures/vcr_cassettes/metadata/metadata_geolocation/put_metadata_for_doi.yml index 29be4e0..1518628 100644 --- a/spec/fixtures/vcr_cassettes/metadata/metadata_geolocation/put_metadata_for_doi.yml +++ b/spec/fixtures/vcr_cassettes/metadata/metadata_geolocation/put_metadata_for_doi.yml @@ -2,7 +2,7 @@ http_interactions: - request: method: put - uri: http:///api.stage.datacite.org/dois/10.14454/fdsrf-232 + uri: http://api.stage.datacite.org/dois/10.14454/fdsrf-232 body: encoding: UTF-8 string: '{"data":{"type":"dois","attributes":{"doi":"10.14454/fdsrf-232","xml":"PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHJlc291cmNlIHhtbG5zOnhzaT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2UiIHhtbG5zPSJodHRwOi8vZGF0YWNpdGUub3JnL3NjaGVtYS9rZXJuZWwtNCIgeHNpOnNjaGVtYUxvY2F0aW9uPSJodHRwOi8vZGF0YWNpdGUub3JnL3NjaGVtYS9rZXJuZWwtNCBodHRwOi8vc2NoZW1hLmRhdGFjaXRlLm9yZy9tZXRhL2tlcm5lbC00L21ldGFkYXRhLnhzZCI+CiAgPGlkZW50aWZpZXIgaWRlbnRpZmllclR5cGU9IkRPSSI+MTAuMTQ0NTQvZXkyeC01dzE3PC9pZGVudGlmaWVyPgogIDxjcmVhdG9ycz4KICAgIDxjcmVhdG9yPgogICAgICA8Y3JlYXRvck5hbWU+RmVubmVyLCBNYXJ0aW48L2NyZWF0b3JOYW1lPgogICAgICA8Z2l2ZW5OYW1lPk1hcnRpbjwvZ2l2ZW5OYW1lPgogICAgICA8ZmFtaWx5TmFtZT5GZW5uZXI8L2ZhbWlseU5hbWU+CiAgICAgIDxuYW1lSWRlbnRpZmllciBzY2hlbWVVUkk9Imh0dHA6Ly9vcmNpZC5vcmcvIiBuYW1lSWRlbnRpZmllclNjaGVtZT0iT1JDSUQiPjAwMDAtMDAwMy0xNDE5LTI0MDU8L25hbWVJZGVudGlmaWVyPgogICAgPC9jcmVhdG9yPgogIDwvY3JlYXRvcnM+CiAgPHRpdGxlcz4KICAgIDx0aXRsZT5FYXRpbmcgeW91ciBvd24gRG9nIEZvb2Q8L3RpdGxlPgogIDwvdGl0bGVzPgogIDxwdWJsaXNoZXI+RGF0YUNpdGU8L3B1Ymxpc2hlcj4KICA8cHVibGljYXRpb25ZZWFyPjIwMTY8L3B1YmxpY2F0aW9uWWVhcj4KICA8cmVzb3VyY2VUeXBlIHJlc291cmNlVHlwZUdlbmVyYWw9IlRleHQiPkJsb2dQb3N0aW5nPC9yZXNvdXJjZVR5cGU+CiAgPGFsdGVybmF0ZUlkZW50aWZpZXJzPgogICAgPGFsdGVybmF0ZUlkZW50aWZpZXIgYWx0ZXJuYXRlSWRlbnRpZmllclR5cGU9IkxvY2FsIGFjY2Vzc2lvbiBudW1iZXIiPk1TLTQ5LTM2MzItNTA4MzwvYWx0ZXJuYXRlSWRlbnRpZmllcj4KICA8L2FsdGVybmF0ZUlkZW50aWZpZXJzPgogIDxzdWJqZWN0cz4KICAgIDxzdWJqZWN0PmRhdGFjaXRlPC9zdWJqZWN0PgogICAgPHN1YmplY3Q+ZG9pPC9zdWJqZWN0PgogICAgPHN1YmplY3Q+bWV0YWRhdGE8L3N1YmplY3Q+CiAgPC9zdWJqZWN0cz4KICA8ZGF0ZXM+CiAgICA8ZGF0ZSBkYXRlVHlwZT0iQ3JlYXRlZCI+MjAxNi0xMi0yMDwvZGF0ZT4KICAgIDxkYXRlIGRhdGVUeXBlPSJJc3N1ZWQiPjIwMTYtMTItMjA8L2RhdGU+CiAgICA8ZGF0ZSBkYXRlVHlwZT0iVXBkYXRlZCI+MjAxNi0xMi0yMDwvZGF0ZT4KICA8L2RhdGVzPgogIDxyZWxhdGVkSWRlbnRpZmllcnM+CiAgICA8cmVsYXRlZElkZW50aWZpZXIgcmVsYXRlZElkZW50aWZpZXJUeXBlPSJET0kiIHJlbGF0aW9uVHlwZT0iUmVmZXJlbmNlcyI+MTAuNTQzOC8wMDEyPC9yZWxhdGVkSWRlbnRpZmllcj4KICAgIDxyZWxhdGVkSWRlbnRpZmllciByZWxhdGVkSWRlbnRpZmllclR5cGU9IkRPSSIgcmVsYXRpb25UeXBlPSJSZWZlcmVuY2VzIj4xMC41NDM4LzU1RTUtVDVDMDwvcmVsYXRlZElkZW50aWZpZXI+CiAgICA8cmVsYXRlZElkZW50aWZpZXIgcmVsYXRlZElkZW50aWZpZXJUeXBlPSJET0kiIHJlbGF0aW9uVHlwZT0iSXNQYXJ0T2YiPjEwLjU0MzgvMDAwMC0wMFNTPC9yZWxhdGVkSWRlbnRpZmllcj4KICA8L3JlbGF0ZWRJZGVudGlmaWVycz4KICA8dmVyc2lvbj4xLjA8L3ZlcnNpb24+CiAgPGRlc2NyaXB0aW9ucz4KICAgIDxkZXNjcmlwdGlvbiBkZXNjcmlwdGlvblR5cGU9IkFic3RyYWN0Ij5FYXRpbmcgeW91ciBvd24gZG9nIGZvb2QgaXMgYSBzbGFuZyB0ZXJtIHRvIGRlc2NyaWJlIHRoYXQgYW4gb3JnYW5pemF0aW9uIHNob3VsZCBpdHNlbGYgdXNlIHRoZSBwcm9kdWN0cyBhbmQgc2VydmljZXMgaXQgcHJvdmlkZXMuIEZvciBEYXRhQ2l0ZSB0aGlzIG1lYW5zIHRoYXQgd2Ugc2hvdWxkIHVzZSBET0lzIHdpdGggYXBwcm9wcmlhdGUgbWV0YWRhdGEgYW5kIHN0cmF0ZWdpZXMgZm9yIGxvbmctdGVybSBwcmVzZXJ2YXRpb24gZm9yLi4uPC9kZXNjcmlwdGlvbj4KICA8L2Rlc2NyaXB0aW9ucz4KICA8Z2VvTG9jYXRpb25zPgogICAgPGdlb0xvY2F0aW9uPgogICAgICA8Z2VvTG9jYXRpb25QbGFjZT5OZXcgWW9yaywgTlk8L2dlb0xvY2F0aW9uUGxhY2U+CiAgICAgIDxnZW9Mb2NhdGlvblBvaW50PgogICAgICAgIDxwb2ludExhdGl0dWRlPjMxLjIzMzwvcG9pbnRMYXRpdHVkZT4KICAgICAgICA8cG9pbnRMb25naXR1ZGU+LTY3LjMwMjwvcG9pbnRMb25naXR1ZGU+CiAgICAgIDwvZ2VvTG9jYXRpb25Qb2ludD4KICAgICAgPGdlb0xvY2F0aW9uQm94PgogICAgICAgIDx3ZXN0Qm91bmRMb25naXR1ZGU+LTEyMy4wPC93ZXN0Qm91bmRMb25naXR1ZGU+CiAgICAgICAgPGVhc3RCb3VuZExvbmdpdHVkZT4rMTIzLjwvZWFzdEJvdW5kTG9uZ2l0dWRlPgogICAgICAgIDxzb3V0aEJvdW5kTGF0aXR1ZGU+LTQwPC9zb3V0aEJvdW5kTGF0aXR1ZGU+CiAgICAgICAgPG5vcnRoQm91bmRMYXRpdHVkZT42MC4yMzEyPC9ub3J0aEJvdW5kTGF0aXR1ZGU+CiAgICAgIDwvZ2VvTG9jYXRpb25Cb3g+CiAgICAgIDxnZW9Mb2NhdGlvblBvbHlnb24+CiAgICAgICAgPHBvbHlnb25Qb2ludD4KICAgICAgICAgIDxwb2ludExhdGl0dWRlPjQyLjQ5MzUyNjU8L3BvaW50TGF0aXR1ZGU+CiAgICAgICAgICA8cG9pbnRMb25naXR1ZGU+LTg3LjgxMjY2NDwvcG9pbnRMb25naXR1ZGU+CiAgICAgICAgPC9wb2x5Z29uUG9pbnQ+CiAgICAgICAgPHBvbHlnb25Qb2ludD4KICAgICAgICAgIDxwb2ludExhdGl0dWRlPjQyLjQ5NzU3Njc8L3BvaW50TGF0aXR1ZGU+CiAgICAgICAgICA8cG9pbnRMb25naXR1ZGU+LTg4LjU4NzIwMDE8L3BvaW50TG9uZ2l0dWRlPgogICAgICAgIDwvcG9seWdvblBvaW50PgogICAgICAgIDxwb2x5Z29uUG9pbnQ+CiAgICAgICAgICA8cG9pbnRMYXRpdHVkZT40MS41NTUwMDIzPC9wb2ludExhdGl0dWRlPgogICAgICAgICAgPHBvaW50TG9uZ2l0dWRlPi04OC42OTE1NzAzPC9wb2ludExvbmdpdHVkZT4KICAgICAgICA8L3BvbHlnb25Qb2ludD4KICAgICAgICA8cG9seWdvblBvaW50PgogICAgICAgICAgPHBvaW50TGF0aXR1ZGU+NDEuNDYyNDQ2NzwvcG9pbnRMYXRpdHVkZT4KICAgICAgICAgIDxwb2ludExvbmdpdHVkZT4tODcuNTI3MDE5NTwvcG9pbnRMb25naXR1ZGU+CiAgICAgICAgPC9wb2x5Z29uUG9pbnQ+CiAgICAgICAgPHBvbHlnb25Qb2ludD4KICAgICAgICAgIDxwb2ludExhdGl0dWRlPjQxLjQ2MjQ0Njc5PC9wb2ludExhdGl0dWRlPgogICAgICAgICAgPHBvaW50TG9uZ2l0dWRlPi04Ny41MTA1NDwvcG9pbnRMb25naXR1ZGU+CiAgICAgICAgPC9wb2x5Z29uUG9pbnQ+CiAgICAgICAgPHBvbHlnb25Qb2ludD4KICAgICAgICAgIDxwb2ludExhdGl0dWRlPjQyLjIwMTIxNzY8L3BvaW50TGF0aXR1ZGU+CiAgICAgICAgICA8cG9pbnRMb25naXR1ZGU+LTg3LjgxMjY2NDwvcG9pbnRMb25naXR1ZGU+CiAgICAgICAgPC9wb2x5Z29uUG9pbnQ+CiAgICAgICAgPGluUG9seWdvblBvaW50PgogICAgICAgICAgPHBvaW50TGF0aXR1ZGU+NDIuMjE5NTI2NzwvcG9pbnRMYXRpdHVkZT4KICAgICAgICAgIDxwb2ludExvbmdpdHVkZT4tODguMjk2MDYyNDwvcG9pbnRMb25naXR1ZGU+CiAgICAgICAgPC9pblBvbHlnb25Qb2ludD4KICAgICAgPC9nZW9Mb2NhdGlvblBvbHlnb24+CiAgICA8L2dlb0xvY2F0aW9uPgogIDwvZ2VvTG9jYXRpb25zPgo8L3Jlc291cmNlPgo=","should_validate":"true","source":"mds","event":"show"},"relationships":{"client":{"data":{"type":"clients","id":"datacite.test"}}}}}' From 5f1540857606fc773229b4bfcfbc9167d9103adb Mon Sep 17 00:00:00 2001 From: Suzanne Vogt Date: Thu, 9 Oct 2025 14:12:49 -0400 Subject: [PATCH 4/7] Update bolognese gem. --- Gemfile.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Gemfile.lock b/Gemfile.lock index 520c06f..e8a59ca 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -1,9 +1,9 @@ GIT remote: https://github.com/datacite/bolognese.git - revision: 94f1d01422afb53d66a395a18fb47a65409ff0ab + revision: 875adfac2414f2555b5fb4a82f30abf840f2e56d branch: pb88-geolocation specs: - bolognese (2.3.5) + bolognese (2.3.8) activesupport (>= 4.2.5) benchmark_methods (~> 0.7) bibtex-ruby (>= 5.1.0) @@ -449,7 +449,7 @@ GEM tzinfo-data (1.2021.5) tzinfo (>= 1.0.0) unicode-display_width (1.6.1) - unicode-types (1.10.0) + unicode-types (1.11.0) unicode_utils (1.4.0) uri (0.13.1) useragent (0.16.10) From 0e88bdafc3827d2b58c748421a0e92dd290c3895 Mon Sep 17 00:00:00 2001 From: Suzanne Vogt Date: Thu, 9 Oct 2025 16:35:57 -0400 Subject: [PATCH 5/7] testing --- .../metadata_geolocation/delete_doi.yml | 18 +++++++------- .../delete_metadata_for_doi.yml | 24 +++++++++---------- .../metadata_geolocation/get_doi_for_doi.yml | 18 +++++++------- .../get_metadata_for_doi.yml | 22 ++++++++--------- .../put_metadata_for_doi.yml | 24 +++++++++---------- spec/requests/metadata_spec.rb | 3 ++- 6 files changed, 55 insertions(+), 54 deletions(-) diff --git a/spec/fixtures/vcr_cassettes/metadata/metadata_geolocation/delete_doi.yml b/spec/fixtures/vcr_cassettes/metadata/metadata_geolocation/delete_doi.yml index 1e2d43b..225b878 100644 --- a/spec/fixtures/vcr_cassettes/metadata/metadata_geolocation/delete_doi.yml +++ b/spec/fixtures/vcr_cassettes/metadata/metadata_geolocation/delete_doi.yml @@ -2,7 +2,7 @@ http_interactions: - request: method: delete - uri: http://api.stage.datacite.org/dois/10.14454/fdsrf-232 + uri: https://api.stage.datacite.org/dois/10.82523/fdsrf-232 body: encoding: US-ASCII string: '' @@ -20,6 +20,8 @@ http_interactions: code: 204 message: '' headers: + Date: + - Thu, 09 Oct 2025 20:31:52 GMT Connection: - keep-alive Status: @@ -33,21 +35,19 @@ http_interactions: X-Xss-Protection: - '0' X-Credential-Username: - - datacite.test + - skvdmee.skv00001 X-Request-Id: - - 6b912073-6993-4a71-b708-bae71ce6d9ca + - 02ef5038-6aaa-49ac-aed8-7f6cc4d58977 X-Runtime: - - '0.059250' + - '0.178801' X-Frame-Options: - SAMEORIGIN X-Content-Type-Options: - nosniff - Date: - - Fri, 22 Aug 2025 22:04:03 GMT X-Powered-By: - - Phusion Passenger(R) 6.0.27 + - Phusion Passenger(R) 6.1.0 Server: - - nginx/1.18.0 + Phusion Passenger(R) 6.0.27 + - nginx/1.18.0 + Phusion Passenger(R) 6.1.0 Access-Control-Allow-Credentials: - 'true' Access-Control-Allow-Methods: @@ -60,5 +60,5 @@ http_interactions: encoding: ASCII-8BIT string: '' http_version: - recorded_at: Fri, 22 Aug 2025 22:04:03 GMT + recorded_at: Thu, 09 Oct 2025 20:31:52 GMT recorded_with: VCR 3.0.3 diff --git a/spec/fixtures/vcr_cassettes/metadata/metadata_geolocation/delete_metadata_for_doi.yml b/spec/fixtures/vcr_cassettes/metadata/metadata_geolocation/delete_metadata_for_doi.yml index 0aa3b49..2dcf071 100644 --- a/spec/fixtures/vcr_cassettes/metadata/metadata_geolocation/delete_metadata_for_doi.yml +++ b/spec/fixtures/vcr_cassettes/metadata/metadata_geolocation/delete_metadata_for_doi.yml @@ -2,10 +2,10 @@ http_interactions: - request: method: patch - uri: http://api.stage.datacite.org/dois/10.14454/fdsrf-232 + uri: https://api.stage.datacite.org/dois/10.82523/fdsrf-232 body: encoding: UTF-8 - string: '{"data":{"type":"dois","attributes":{"event":"hide"},"relationships":{"client":{"data":{"type":"clients","id":"datacite.test"}}}}}' + string: '{"data":{"type":"dois","attributes":{"event":"hide"},"relationships":{"client":{"data":{"type":"clients","id":"SKVDMEE.SKV00001"}}}}}' headers: User-Agent: - Mozilla/5.0 (compatible; Maremma/5.0.0; mailto:info@datacite.org) @@ -22,6 +22,8 @@ http_interactions: code: 200 message: '' headers: + Date: + - Thu, 09 Oct 2025 20:31:51 GMT Content-Type: - application/json; charset=utf-8 Connection: @@ -41,23 +43,21 @@ http_interactions: X-Xss-Protection: - '0' X-Credential-Username: - - datacite.test + - skvdmee.skv00001 X-Request-Id: - - a00371be-d7d0-46ad-95c5-f8bdd827ae22 + - 0cb3218c-233b-4692-9baf-961d347694a4 Etag: - - W/"de05cf711f33e6c0cb38ff4ce31841c0" + - W/"706b5b46e8bd8bfb9c17f3f31f02b775" X-Frame-Options: - SAMEORIGIN X-Runtime: - - '0.056895' + - '0.117803' X-Content-Type-Options: - nosniff - Date: - - Fri, 22 Aug 2025 22:04:03 GMT X-Powered-By: - - Phusion Passenger(R) 6.0.27 + - Phusion Passenger(R) 6.1.0 Server: - - nginx/1.18.0 + Phusion Passenger(R) 6.0.27 + - nginx/1.18.0 + Phusion Passenger(R) 6.1.0 Access-Control-Allow-Credentials: - 'true' Access-Control-Allow-Methods: @@ -69,7 +69,7 @@ http_interactions: body: encoding: ASCII-8BIT string: !binary |- - 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 http_version: - recorded_at: Fri, 22 Aug 2025 22:04:03 GMT + recorded_at: Thu, 09 Oct 2025 20:31:51 GMT recorded_with: VCR 3.0.3 diff --git a/spec/fixtures/vcr_cassettes/metadata/metadata_geolocation/get_doi_for_doi.yml b/spec/fixtures/vcr_cassettes/metadata/metadata_geolocation/get_doi_for_doi.yml index c8f81f9..1fe9d20 100644 --- a/spec/fixtures/vcr_cassettes/metadata/metadata_geolocation/get_doi_for_doi.yml +++ b/spec/fixtures/vcr_cassettes/metadata/metadata_geolocation/get_doi_for_doi.yml @@ -2,7 +2,7 @@ http_interactions: - request: method: get - uri: http://api.stage.datacite.org/dois/10.14454/fdsrf-232/get-url + uri: https://api.stage.datacite.org/dois/10.82523/fdsrf-232/get-url body: encoding: US-ASCII string: '' @@ -20,6 +20,8 @@ http_interactions: code: 204 message: '' headers: + Date: + - Thu, 09 Oct 2025 20:31:50 GMT Connection: - keep-alive Status: @@ -33,21 +35,19 @@ http_interactions: X-Xss-Protection: - '0' X-Credential-Username: - - datacite.test + - skvdmee.skv00001 X-Request-Id: - - e2daf37a-dac1-436a-85b1-d3c3aafc70f0 + - 227827a0-cece-414c-a9cb-5126b78e0fa9 X-Runtime: - - '0.011961' + - '0.021052' X-Frame-Options: - SAMEORIGIN X-Content-Type-Options: - nosniff - Date: - - Fri, 22 Aug 2025 22:04:02 GMT X-Powered-By: - - Phusion Passenger(R) 6.0.27 + - Phusion Passenger(R) 6.1.0 Server: - - nginx/1.18.0 + Phusion Passenger(R) 6.0.27 + - nginx/1.18.0 + Phusion Passenger(R) 6.1.0 Access-Control-Allow-Credentials: - 'true' Access-Control-Allow-Methods: @@ -60,5 +60,5 @@ http_interactions: encoding: ASCII-8BIT string: '' http_version: - recorded_at: Fri, 22 Aug 2025 22:04:02 GMT + recorded_at: Thu, 09 Oct 2025 20:31:50 GMT recorded_with: VCR 3.0.3 diff --git a/spec/fixtures/vcr_cassettes/metadata/metadata_geolocation/get_metadata_for_doi.yml b/spec/fixtures/vcr_cassettes/metadata/metadata_geolocation/get_metadata_for_doi.yml index c8908e7..f6e17bb 100644 --- a/spec/fixtures/vcr_cassettes/metadata/metadata_geolocation/get_metadata_for_doi.yml +++ b/spec/fixtures/vcr_cassettes/metadata/metadata_geolocation/get_metadata_for_doi.yml @@ -2,7 +2,7 @@ http_interactions: - request: method: get - uri: http://api.stage.datacite.org/dois/10.14454/fdsrf-232 + uri: https://api.stage.datacite.org/dois/10.82523/fdsrf-232 body: encoding: US-ASCII string: '' @@ -20,6 +20,8 @@ http_interactions: code: 200 message: '' headers: + Date: + - Thu, 09 Oct 2025 20:31:51 GMT Content-Type: - application/vnd.datacite.datacite+xml; charset=utf-8 Connection: @@ -39,23 +41,21 @@ http_interactions: X-Xss-Protection: - '0' X-Credential-Username: - - datacite.test + - skvdmee.skv00001 X-Request-Id: - - fc3ffda7-2584-4e81-86fc-2afbd2ad81d5 + - fcef7fb3-ef3b-4855-b2f7-7fccc7230722 Etag: - - W/"9c1835b1eebbf6fc52f76005a057dad9" + - W/"5d49b7bc699c1a8801a1db24739098e5" X-Frame-Options: - SAMEORIGIN X-Runtime: - - '0.010460' + - '0.018008' X-Content-Type-Options: - nosniff - Date: - - Fri, 22 Aug 2025 22:04:02 GMT X-Powered-By: - - Phusion Passenger(R) 6.0.27 + - Phusion Passenger(R) 6.1.0 Server: - - nginx/1.18.0 + Phusion Passenger(R) 6.0.27 + - nginx/1.18.0 + Phusion Passenger(R) 6.1.0 Access-Control-Allow-Credentials: - 'true' Access-Control-Allow-Methods: @@ -67,7 +67,7 @@ http_interactions: body: encoding: ASCII-8BIT string: !binary |- - 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 http_version: - recorded_at: Fri, 22 Aug 2025 22:04:02 GMT + recorded_at: Thu, 09 Oct 2025 20:31:51 GMT recorded_with: VCR 3.0.3 diff --git a/spec/fixtures/vcr_cassettes/metadata/metadata_geolocation/put_metadata_for_doi.yml b/spec/fixtures/vcr_cassettes/metadata/metadata_geolocation/put_metadata_for_doi.yml index 1518628..c96dac2 100644 --- a/spec/fixtures/vcr_cassettes/metadata/metadata_geolocation/put_metadata_for_doi.yml +++ b/spec/fixtures/vcr_cassettes/metadata/metadata_geolocation/put_metadata_for_doi.yml @@ -2,10 +2,10 @@ http_interactions: - request: method: put - uri: http://api.stage.datacite.org/dois/10.14454/fdsrf-232 + uri: https://api.stage.datacite.org/dois/10.82523/fdsrf-232 body: encoding: UTF-8 - string: '{"data":{"type":"dois","attributes":{"doi":"10.14454/fdsrf-232","xml":"PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHJlc291cmNlIHhtbG5zOnhzaT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2UiIHhtbG5zPSJodHRwOi8vZGF0YWNpdGUub3JnL3NjaGVtYS9rZXJuZWwtNCIgeHNpOnNjaGVtYUxvY2F0aW9uPSJodHRwOi8vZGF0YWNpdGUub3JnL3NjaGVtYS9rZXJuZWwtNCBodHRwOi8vc2NoZW1hLmRhdGFjaXRlLm9yZy9tZXRhL2tlcm5lbC00L21ldGFkYXRhLnhzZCI+CiAgPGlkZW50aWZpZXIgaWRlbnRpZmllclR5cGU9IkRPSSI+MTAuMTQ0NTQvZXkyeC01dzE3PC9pZGVudGlmaWVyPgogIDxjcmVhdG9ycz4KICAgIDxjcmVhdG9yPgogICAgICA8Y3JlYXRvck5hbWU+RmVubmVyLCBNYXJ0aW48L2NyZWF0b3JOYW1lPgogICAgICA8Z2l2ZW5OYW1lPk1hcnRpbjwvZ2l2ZW5OYW1lPgogICAgICA8ZmFtaWx5TmFtZT5GZW5uZXI8L2ZhbWlseU5hbWU+CiAgICAgIDxuYW1lSWRlbnRpZmllciBzY2hlbWVVUkk9Imh0dHA6Ly9vcmNpZC5vcmcvIiBuYW1lSWRlbnRpZmllclNjaGVtZT0iT1JDSUQiPjAwMDAtMDAwMy0xNDE5LTI0MDU8L25hbWVJZGVudGlmaWVyPgogICAgPC9jcmVhdG9yPgogIDwvY3JlYXRvcnM+CiAgPHRpdGxlcz4KICAgIDx0aXRsZT5FYXRpbmcgeW91ciBvd24gRG9nIEZvb2Q8L3RpdGxlPgogIDwvdGl0bGVzPgogIDxwdWJsaXNoZXI+RGF0YUNpdGU8L3B1Ymxpc2hlcj4KICA8cHVibGljYXRpb25ZZWFyPjIwMTY8L3B1YmxpY2F0aW9uWWVhcj4KICA8cmVzb3VyY2VUeXBlIHJlc291cmNlVHlwZUdlbmVyYWw9IlRleHQiPkJsb2dQb3N0aW5nPC9yZXNvdXJjZVR5cGU+CiAgPGFsdGVybmF0ZUlkZW50aWZpZXJzPgogICAgPGFsdGVybmF0ZUlkZW50aWZpZXIgYWx0ZXJuYXRlSWRlbnRpZmllclR5cGU9IkxvY2FsIGFjY2Vzc2lvbiBudW1iZXIiPk1TLTQ5LTM2MzItNTA4MzwvYWx0ZXJuYXRlSWRlbnRpZmllcj4KICA8L2FsdGVybmF0ZUlkZW50aWZpZXJzPgogIDxzdWJqZWN0cz4KICAgIDxzdWJqZWN0PmRhdGFjaXRlPC9zdWJqZWN0PgogICAgPHN1YmplY3Q+ZG9pPC9zdWJqZWN0PgogICAgPHN1YmplY3Q+bWV0YWRhdGE8L3N1YmplY3Q+CiAgPC9zdWJqZWN0cz4KICA8ZGF0ZXM+CiAgICA8ZGF0ZSBkYXRlVHlwZT0iQ3JlYXRlZCI+MjAxNi0xMi0yMDwvZGF0ZT4KICAgIDxkYXRlIGRhdGVUeXBlPSJJc3N1ZWQiPjIwMTYtMTItMjA8L2RhdGU+CiAgICA8ZGF0ZSBkYXRlVHlwZT0iVXBkYXRlZCI+MjAxNi0xMi0yMDwvZGF0ZT4KICA8L2RhdGVzPgogIDxyZWxhdGVkSWRlbnRpZmllcnM+CiAgICA8cmVsYXRlZElkZW50aWZpZXIgcmVsYXRlZElkZW50aWZpZXJUeXBlPSJET0kiIHJlbGF0aW9uVHlwZT0iUmVmZXJlbmNlcyI+MTAuNTQzOC8wMDEyPC9yZWxhdGVkSWRlbnRpZmllcj4KICAgIDxyZWxhdGVkSWRlbnRpZmllciByZWxhdGVkSWRlbnRpZmllclR5cGU9IkRPSSIgcmVsYXRpb25UeXBlPSJSZWZlcmVuY2VzIj4xMC41NDM4LzU1RTUtVDVDMDwvcmVsYXRlZElkZW50aWZpZXI+CiAgICA8cmVsYXRlZElkZW50aWZpZXIgcmVsYXRlZElkZW50aWZpZXJUeXBlPSJET0kiIHJlbGF0aW9uVHlwZT0iSXNQYXJ0T2YiPjEwLjU0MzgvMDAwMC0wMFNTPC9yZWxhdGVkSWRlbnRpZmllcj4KICA8L3JlbGF0ZWRJZGVudGlmaWVycz4KICA8dmVyc2lvbj4xLjA8L3ZlcnNpb24+CiAgPGRlc2NyaXB0aW9ucz4KICAgIDxkZXNjcmlwdGlvbiBkZXNjcmlwdGlvblR5cGU9IkFic3RyYWN0Ij5FYXRpbmcgeW91ciBvd24gZG9nIGZvb2QgaXMgYSBzbGFuZyB0ZXJtIHRvIGRlc2NyaWJlIHRoYXQgYW4gb3JnYW5pemF0aW9uIHNob3VsZCBpdHNlbGYgdXNlIHRoZSBwcm9kdWN0cyBhbmQgc2VydmljZXMgaXQgcHJvdmlkZXMuIEZvciBEYXRhQ2l0ZSB0aGlzIG1lYW5zIHRoYXQgd2Ugc2hvdWxkIHVzZSBET0lzIHdpdGggYXBwcm9wcmlhdGUgbWV0YWRhdGEgYW5kIHN0cmF0ZWdpZXMgZm9yIGxvbmctdGVybSBwcmVzZXJ2YXRpb24gZm9yLi4uPC9kZXNjcmlwdGlvbj4KICA8L2Rlc2NyaXB0aW9ucz4KICA8Z2VvTG9jYXRpb25zPgogICAgPGdlb0xvY2F0aW9uPgogICAgICA8Z2VvTG9jYXRpb25QbGFjZT5OZXcgWW9yaywgTlk8L2dlb0xvY2F0aW9uUGxhY2U+CiAgICAgIDxnZW9Mb2NhdGlvblBvaW50PgogICAgICAgIDxwb2ludExhdGl0dWRlPjMxLjIzMzwvcG9pbnRMYXRpdHVkZT4KICAgICAgICA8cG9pbnRMb25naXR1ZGU+LTY3LjMwMjwvcG9pbnRMb25naXR1ZGU+CiAgICAgIDwvZ2VvTG9jYXRpb25Qb2ludD4KICAgICAgPGdlb0xvY2F0aW9uQm94PgogICAgICAgIDx3ZXN0Qm91bmRMb25naXR1ZGU+LTEyMy4wPC93ZXN0Qm91bmRMb25naXR1ZGU+CiAgICAgICAgPGVhc3RCb3VuZExvbmdpdHVkZT4rMTIzLjwvZWFzdEJvdW5kTG9uZ2l0dWRlPgogICAgICAgIDxzb3V0aEJvdW5kTGF0aXR1ZGU+LTQwPC9zb3V0aEJvdW5kTGF0aXR1ZGU+CiAgICAgICAgPG5vcnRoQm91bmRMYXRpdHVkZT42MC4yMzEyPC9ub3J0aEJvdW5kTGF0aXR1ZGU+CiAgICAgIDwvZ2VvTG9jYXRpb25Cb3g+CiAgICAgIDxnZW9Mb2NhdGlvblBvbHlnb24+CiAgICAgICAgPHBvbHlnb25Qb2ludD4KICAgICAgICAgIDxwb2ludExhdGl0dWRlPjQyLjQ5MzUyNjU8L3BvaW50TGF0aXR1ZGU+CiAgICAgICAgICA8cG9pbnRMb25naXR1ZGU+LTg3LjgxMjY2NDwvcG9pbnRMb25naXR1ZGU+CiAgICAgICAgPC9wb2x5Z29uUG9pbnQ+CiAgICAgICAgPHBvbHlnb25Qb2ludD4KICAgICAgICAgIDxwb2ludExhdGl0dWRlPjQyLjQ5NzU3Njc8L3BvaW50TGF0aXR1ZGU+CiAgICAgICAgICA8cG9pbnRMb25naXR1ZGU+LTg4LjU4NzIwMDE8L3BvaW50TG9uZ2l0dWRlPgogICAgICAgIDwvcG9seWdvblBvaW50PgogICAgICAgIDxwb2x5Z29uUG9pbnQ+CiAgICAgICAgICA8cG9pbnRMYXRpdHVkZT40MS41NTUwMDIzPC9wb2ludExhdGl0dWRlPgogICAgICAgICAgPHBvaW50TG9uZ2l0dWRlPi04OC42OTE1NzAzPC9wb2ludExvbmdpdHVkZT4KICAgICAgICA8L3BvbHlnb25Qb2ludD4KICAgICAgICA8cG9seWdvblBvaW50PgogICAgICAgICAgPHBvaW50TGF0aXR1ZGU+NDEuNDYyNDQ2NzwvcG9pbnRMYXRpdHVkZT4KICAgICAgICAgIDxwb2ludExvbmdpdHVkZT4tODcuNTI3MDE5NTwvcG9pbnRMb25naXR1ZGU+CiAgICAgICAgPC9wb2x5Z29uUG9pbnQ+CiAgICAgICAgPHBvbHlnb25Qb2ludD4KICAgICAgICAgIDxwb2ludExhdGl0dWRlPjQxLjQ2MjQ0Njc5PC9wb2ludExhdGl0dWRlPgogICAgICAgICAgPHBvaW50TG9uZ2l0dWRlPi04Ny41MTA1NDwvcG9pbnRMb25naXR1ZGU+CiAgICAgICAgPC9wb2x5Z29uUG9pbnQ+CiAgICAgICAgPHBvbHlnb25Qb2ludD4KICAgICAgICAgIDxwb2ludExhdGl0dWRlPjQyLjIwMTIxNzY8L3BvaW50TGF0aXR1ZGU+CiAgICAgICAgICA8cG9pbnRMb25naXR1ZGU+LTg3LjgxMjY2NDwvcG9pbnRMb25naXR1ZGU+CiAgICAgICAgPC9wb2x5Z29uUG9pbnQ+CiAgICAgICAgPGluUG9seWdvblBvaW50PgogICAgICAgICAgPHBvaW50TGF0aXR1ZGU+NDIuMjE5NTI2NzwvcG9pbnRMYXRpdHVkZT4KICAgICAgICAgIDxwb2ludExvbmdpdHVkZT4tODguMjk2MDYyNDwvcG9pbnRMb25naXR1ZGU+CiAgICAgICAgPC9pblBvbHlnb25Qb2ludD4KICAgICAgPC9nZW9Mb2NhdGlvblBvbHlnb24+CiAgICA8L2dlb0xvY2F0aW9uPgogIDwvZ2VvTG9jYXRpb25zPgo8L3Jlc291cmNlPgo=","should_validate":"true","source":"mds","event":"show"},"relationships":{"client":{"data":{"type":"clients","id":"datacite.test"}}}}}' + string: '{"data":{"type":"dois","attributes":{"doi":"10.82523/fdsrf-232","xml":"PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHJlc291cmNlIHhtbG5zOnhzaT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2UiIHhtbG5zPSJodHRwOi8vZGF0YWNpdGUub3JnL3NjaGVtYS9rZXJuZWwtNCIgeHNpOnNjaGVtYUxvY2F0aW9uPSJodHRwOi8vZGF0YWNpdGUub3JnL3NjaGVtYS9rZXJuZWwtNCBodHRwOi8vc2NoZW1hLmRhdGFjaXRlLm9yZy9tZXRhL2tlcm5lbC00L21ldGFkYXRhLnhzZCI+CiAgPGlkZW50aWZpZXIgaWRlbnRpZmllclR5cGU9IkRPSSI+MTAuMTQ0NTQvZXkyeC01dzE3PC9pZGVudGlmaWVyPgogIDxjcmVhdG9ycz4KICAgIDxjcmVhdG9yPgogICAgICA8Y3JlYXRvck5hbWU+RmVubmVyLCBNYXJ0aW48L2NyZWF0b3JOYW1lPgogICAgICA8Z2l2ZW5OYW1lPk1hcnRpbjwvZ2l2ZW5OYW1lPgogICAgICA8ZmFtaWx5TmFtZT5GZW5uZXI8L2ZhbWlseU5hbWU+CiAgICAgIDxuYW1lSWRlbnRpZmllciBzY2hlbWVVUkk9Imh0dHA6Ly9vcmNpZC5vcmcvIiBuYW1lSWRlbnRpZmllclNjaGVtZT0iT1JDSUQiPjAwMDAtMDAwMy0xNDE5LTI0MDU8L25hbWVJZGVudGlmaWVyPgogICAgPC9jcmVhdG9yPgogIDwvY3JlYXRvcnM+CiAgPHRpdGxlcz4KICAgIDx0aXRsZT5FYXRpbmcgeW91ciBvd24gRG9nIEZvb2Q8L3RpdGxlPgogIDwvdGl0bGVzPgogIDxwdWJsaXNoZXI+RGF0YUNpdGU8L3B1Ymxpc2hlcj4KICA8cHVibGljYXRpb25ZZWFyPjIwMTY8L3B1YmxpY2F0aW9uWWVhcj4KICA8cmVzb3VyY2VUeXBlIHJlc291cmNlVHlwZUdlbmVyYWw9IlRleHQiPkJsb2dQb3N0aW5nPC9yZXNvdXJjZVR5cGU+CiAgPGFsdGVybmF0ZUlkZW50aWZpZXJzPgogICAgPGFsdGVybmF0ZUlkZW50aWZpZXIgYWx0ZXJuYXRlSWRlbnRpZmllclR5cGU9IkxvY2FsIGFjY2Vzc2lvbiBudW1iZXIiPk1TLTQ5LTM2MzItNTA4MzwvYWx0ZXJuYXRlSWRlbnRpZmllcj4KICA8L2FsdGVybmF0ZUlkZW50aWZpZXJzPgogIDxzdWJqZWN0cz4KICAgIDxzdWJqZWN0PmRhdGFjaXRlPC9zdWJqZWN0PgogICAgPHN1YmplY3Q+ZG9pPC9zdWJqZWN0PgogICAgPHN1YmplY3Q+bWV0YWRhdGE8L3N1YmplY3Q+CiAgPC9zdWJqZWN0cz4KICA8ZGF0ZXM+CiAgICA8ZGF0ZSBkYXRlVHlwZT0iQ3JlYXRlZCI+MjAxNi0xMi0yMDwvZGF0ZT4KICAgIDxkYXRlIGRhdGVUeXBlPSJJc3N1ZWQiPjIwMTYtMTItMjA8L2RhdGU+CiAgICA8ZGF0ZSBkYXRlVHlwZT0iVXBkYXRlZCI+MjAxNi0xMi0yMDwvZGF0ZT4KICA8L2RhdGVzPgogIDxyZWxhdGVkSWRlbnRpZmllcnM+CiAgICA8cmVsYXRlZElkZW50aWZpZXIgcmVsYXRlZElkZW50aWZpZXJUeXBlPSJET0kiIHJlbGF0aW9uVHlwZT0iUmVmZXJlbmNlcyI+MTAuNTQzOC8wMDEyPC9yZWxhdGVkSWRlbnRpZmllcj4KICAgIDxyZWxhdGVkSWRlbnRpZmllciByZWxhdGVkSWRlbnRpZmllclR5cGU9IkRPSSIgcmVsYXRpb25UeXBlPSJSZWZlcmVuY2VzIj4xMC41NDM4LzU1RTUtVDVDMDwvcmVsYXRlZElkZW50aWZpZXI+CiAgICA8cmVsYXRlZElkZW50aWZpZXIgcmVsYXRlZElkZW50aWZpZXJUeXBlPSJET0kiIHJlbGF0aW9uVHlwZT0iSXNQYXJ0T2YiPjEwLjU0MzgvMDAwMC0wMFNTPC9yZWxhdGVkSWRlbnRpZmllcj4KICA8L3JlbGF0ZWRJZGVudGlmaWVycz4KICA8dmVyc2lvbj4xLjA8L3ZlcnNpb24+CiAgPGRlc2NyaXB0aW9ucz4KICAgIDxkZXNjcmlwdGlvbiBkZXNjcmlwdGlvblR5cGU9IkFic3RyYWN0Ij5FYXRpbmcgeW91ciBvd24gZG9nIGZvb2QgaXMgYSBzbGFuZyB0ZXJtIHRvIGRlc2NyaWJlIHRoYXQgYW4gb3JnYW5pemF0aW9uIHNob3VsZCBpdHNlbGYgdXNlIHRoZSBwcm9kdWN0cyBhbmQgc2VydmljZXMgaXQgcHJvdmlkZXMuIEZvciBEYXRhQ2l0ZSB0aGlzIG1lYW5zIHRoYXQgd2Ugc2hvdWxkIHVzZSBET0lzIHdpdGggYXBwcm9wcmlhdGUgbWV0YWRhdGEgYW5kIHN0cmF0ZWdpZXMgZm9yIGxvbmctdGVybSBwcmVzZXJ2YXRpb24gZm9yLi4uPC9kZXNjcmlwdGlvbj4KICA8L2Rlc2NyaXB0aW9ucz4KICA8Z2VvTG9jYXRpb25zPgogICAgPGdlb0xvY2F0aW9uPgogICAgICA8Z2VvTG9jYXRpb25QbGFjZT5OZXcgWW9yaywgTlk8L2dlb0xvY2F0aW9uUGxhY2U+CiAgICAgIDxnZW9Mb2NhdGlvblBvaW50PgogICAgICAgIDxwb2ludExhdGl0dWRlPjMxLjIzMzwvcG9pbnRMYXRpdHVkZT4KICAgICAgICA8cG9pbnRMb25naXR1ZGU+LTY3LjMwMjwvcG9pbnRMb25naXR1ZGU+CiAgICAgIDwvZ2VvTG9jYXRpb25Qb2ludD4KICAgICAgPGdlb0xvY2F0aW9uQm94PgogICAgICAgIDx3ZXN0Qm91bmRMb25naXR1ZGU+LTEyMy4wPC93ZXN0Qm91bmRMb25naXR1ZGU+CiAgICAgICAgPGVhc3RCb3VuZExvbmdpdHVkZT4rMTIzLjwvZWFzdEJvdW5kTG9uZ2l0dWRlPgogICAgICAgIDxzb3V0aEJvdW5kTGF0aXR1ZGU+LTQwPC9zb3V0aEJvdW5kTGF0aXR1ZGU+CiAgICAgICAgPG5vcnRoQm91bmRMYXRpdHVkZT42MC4yMzEyPC9ub3J0aEJvdW5kTGF0aXR1ZGU+CiAgICAgIDwvZ2VvTG9jYXRpb25Cb3g+CiAgICAgIDxnZW9Mb2NhdGlvblBvbHlnb24+CiAgICAgICAgPHBvbHlnb25Qb2ludD4KICAgICAgICAgIDxwb2ludExhdGl0dWRlPjQyLjQ5MzUyNjU8L3BvaW50TGF0aXR1ZGU+CiAgICAgICAgICA8cG9pbnRMb25naXR1ZGU+LTg3LjgxMjY2NDwvcG9pbnRMb25naXR1ZGU+CiAgICAgICAgPC9wb2x5Z29uUG9pbnQ+CiAgICAgICAgPHBvbHlnb25Qb2ludD4KICAgICAgICAgIDxwb2ludExhdGl0dWRlPjQyLjQ5NzU3Njc8L3BvaW50TGF0aXR1ZGU+CiAgICAgICAgICA8cG9pbnRMb25naXR1ZGU+LTg4LjU4NzIwMDE8L3BvaW50TG9uZ2l0dWRlPgogICAgICAgIDwvcG9seWdvblBvaW50PgogICAgICAgIDxwb2x5Z29uUG9pbnQ+CiAgICAgICAgICA8cG9pbnRMYXRpdHVkZT40MS41NTUwMDIzPC9wb2ludExhdGl0dWRlPgogICAgICAgICAgPHBvaW50TG9uZ2l0dWRlPi04OC42OTE1NzAzPC9wb2ludExvbmdpdHVkZT4KICAgICAgICA8L3BvbHlnb25Qb2ludD4KICAgICAgICA8cG9seWdvblBvaW50PgogICAgICAgICAgPHBvaW50TGF0aXR1ZGU+NDEuNDYyNDQ2NzwvcG9pbnRMYXRpdHVkZT4KICAgICAgICAgIDxwb2ludExvbmdpdHVkZT4tODcuNTI3MDE5NTwvcG9pbnRMb25naXR1ZGU+CiAgICAgICAgPC9wb2x5Z29uUG9pbnQ+CiAgICAgICAgPHBvbHlnb25Qb2ludD4KICAgICAgICAgIDxwb2ludExhdGl0dWRlPjQxLjQ2MjQ0Njc5PC9wb2ludExhdGl0dWRlPgogICAgICAgICAgPHBvaW50TG9uZ2l0dWRlPi04Ny41MTA1NDwvcG9pbnRMb25naXR1ZGU+CiAgICAgICAgPC9wb2x5Z29uUG9pbnQ+CiAgICAgICAgPHBvbHlnb25Qb2ludD4KICAgICAgICAgIDxwb2ludExhdGl0dWRlPjQyLjIwMTIxNzY8L3BvaW50TGF0aXR1ZGU+CiAgICAgICAgICA8cG9pbnRMb25naXR1ZGU+LTg3LjgxMjY2NDwvcG9pbnRMb25naXR1ZGU+CiAgICAgICAgPC9wb2x5Z29uUG9pbnQ+CiAgICAgICAgPGluUG9seWdvblBvaW50PgogICAgICAgICAgPHBvaW50TGF0aXR1ZGU+NDIuMjE5NTI2NzwvcG9pbnRMYXRpdHVkZT4KICAgICAgICAgIDxwb2ludExvbmdpdHVkZT4tODguMjk2MDYyNDwvcG9pbnRMb25naXR1ZGU+CiAgICAgICAgPC9pblBvbHlnb25Qb2ludD4KICAgICAgPC9nZW9Mb2NhdGlvblBvbHlnb24+CiAgICA8L2dlb0xvY2F0aW9uPgogIDwvZ2VvTG9jYXRpb25zPgo8L3Jlc291cmNlPgo=","should_validate":"true","source":"mds","event":"show"},"relationships":{"client":{"data":{"type":"clients","id":"SKVDMEE.SKV00001"}}}}}' headers: User-Agent: - Mozilla/5.0 (compatible; Maremma/5.0.0; mailto:info@datacite.org) @@ -22,6 +22,8 @@ http_interactions: code: 201 message: '' headers: + Date: + - Thu, 09 Oct 2025 20:31:50 GMT Content-Type: - application/json; charset=utf-8 Connection: @@ -41,23 +43,21 @@ http_interactions: X-Xss-Protection: - '0' X-Credential-Username: - - datacite.test + - skvdmee.skv00001 X-Request-Id: - - 0dc10847-44ba-4356-9464-4c8e2840e9ab + - 7b373e33-d828-4342-a304-ae9400619bd8 Etag: - - W/"d96d276ba841483f9cb396b7c5f09f96" + - W/"69f67bb8925e61d29e3ccd91f3bebb5d" X-Frame-Options: - SAMEORIGIN X-Runtime: - - '0.094844' + - '0.233140' X-Content-Type-Options: - nosniff - Date: - - Fri, 22 Aug 2025 22:04:02 GMT X-Powered-By: - - Phusion Passenger(R) 6.0.27 + - Phusion Passenger(R) 6.1.0 Server: - - nginx/1.18.0 + Phusion Passenger(R) 6.0.27 + - nginx/1.18.0 + Phusion Passenger(R) 6.1.0 Access-Control-Allow-Credentials: - 'true' Access-Control-Allow-Methods: @@ -69,7 +69,7 @@ http_interactions: body: encoding: ASCII-8BIT string: !binary |- - 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 http_version: - recorded_at: Fri, 22 Aug 2025 22:04:02 GMT + recorded_at: Thu, 09 Oct 2025 20:31:50 GMT recorded_with: VCR 3.0.3 diff --git a/spec/requests/metadata_spec.rb b/spec/requests/metadata_spec.rb index d4c616c..23f4a9b 100644 --- a/spec/requests/metadata_spec.rb +++ b/spec/requests/metadata_spec.rb @@ -529,7 +529,8 @@ end describe "metadata geolocation", type: :request do - let(:doi_id) { "10.14454/fdsrf-232" } + # let(:doi_id) { "10.80225/fdsrf-232" } + let(:doi_id) { "10.82523/fdsrf-232" } let(:data) { file_fixture("datacite-geolocation.xml").read } let(:headers) { { "CONTENT_TYPE" => "application/xml;charset=UTF-8", "HTTP_AUTHORIZATION" => "Basic " + credentials } } From a42d4fa0d760f17727f3cf27efc1b1b7b5eef17c Mon Sep 17 00:00:00 2001 From: Suzanne Vogt Date: Fri, 10 Oct 2025 09:08:25 -0400 Subject: [PATCH 6/7] Remove deprecated codeclimate. --- .github/workflows/ci.yml | 6 ------ 1 file changed, 6 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 9822735..ebc6b93 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -6,8 +6,6 @@ on: required: true MDS_PASSWORD: required: true - CC_TEST_REPORTER_ID: - required: true jobs: test: runs-on: ubuntu-latest @@ -46,7 +44,3 @@ jobs: # bundle exec rubocop bundle exec rspec echo $? - - name: Publish code coverage - uses: paambaati/codeclimate-action@v3.1.1 - env: - CC_TEST_REPORTER_ID: ${{ secrets.CC_TEST_REPORTER_ID }} \ No newline at end of file From d078d7f999b272ad99b5409b78a2b29cdde1899d Mon Sep 17 00:00:00 2001 From: Suzanne Vogt Date: Wed, 15 Oct 2025 15:47:15 -0400 Subject: [PATCH 7/7] Use latest released version of bolognese --- Gemfile | 3 +-- Gemfile.lock | 56 +++++++++++++++++++++++----------------------------- 2 files changed, 26 insertions(+), 33 deletions(-) diff --git a/Gemfile b/Gemfile index 2afd941..4c8f176 100644 --- a/Gemfile +++ b/Gemfile @@ -9,8 +9,7 @@ gem "oj_mimic_json", "~> 1.0", ">= 1.0.1" gem "equivalent-xml", "~> 0.6.0" gem "nokogiri", ">= 1.10.4" gem "iso8601", "~> 0.9.0" -# gem "bolognese", "~> 2.3.2" -gem 'bolognese', git: 'https://github.com/datacite/bolognese.git', branch: 'pb88-geolocation' +gem "bolognese", "~> 2.3.9" gem "maremma", ">= 4.9.8" gem "faraday", ">= 2.0", "< 3.0.0" gem "base32-url", "~> 0.5" diff --git a/Gemfile.lock b/Gemfile.lock index e8a59ca..e4f6a50 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -1,33 +1,3 @@ -GIT - remote: https://github.com/datacite/bolognese.git - revision: 875adfac2414f2555b5fb4a82f30abf840f2e56d - branch: pb88-geolocation - specs: - bolognese (2.3.8) - activesupport (>= 4.2.5) - benchmark_methods (~> 0.7) - bibtex-ruby (>= 5.1.0) - builder (~> 3.2, >= 3.2.2) - citeproc-ruby (~> 1.1, >= 1.1.12) - colorize (~> 0.8.1) - concurrent-ruby (~> 1.1, >= 1.1.5) - csl-styles (~> 1.0, >= 1.0.1.10) - edtf (~> 3.0, >= 3.0.4) - gender_detector (~> 0.1.2) - iso8601 (~> 0.9.1) - json-ld-preloaded (~> 3.1, >= 3.1.3) - jsonlint (~> 0.3.0) - loofah (~> 2.0, >= 2.0.3) - maremma (~> 5.0) - namae (~> 1.0) - nokogiri (~> 1.16, >= 1.16.2) - oj (~> 3.10) - oj_mimic_json (~> 1.0, >= 1.0.1) - postrank-uri (~> 1.0, >= 1.0.18) - rdf-rdfxml (~> 3.1) - rdf-turtle (~> 3.1) - thor (>= 0.19) - GEM remote: https://rubygems.org/ specs: @@ -119,6 +89,30 @@ GEM bigdecimal (3.1.8) binding_of_caller (1.0.0) debug_inspector (>= 0.0.1) + bolognese (2.3.9) + activesupport (>= 4.2.5) + benchmark_methods (~> 0.7) + bibtex-ruby (>= 5.1.0) + builder (~> 3.2, >= 3.2.2) + citeproc-ruby (~> 1.1, >= 1.1.12) + colorize (~> 0.8.1) + concurrent-ruby (~> 1.1, >= 1.1.5) + csl-styles (~> 1.0, >= 1.0.1.10) + edtf (~> 3.0, >= 3.0.4) + gender_detector (~> 0.1.2) + iso8601 (~> 0.9.1) + json-ld-preloaded (~> 3.1, >= 3.1.3) + jsonlint (~> 0.3.0) + loofah (~> 2.0, >= 2.0.3) + maremma (~> 5.0) + namae (~> 1.0) + nokogiri (~> 1.16, >= 1.16.2) + oj (~> 3.10) + oj_mimic_json (~> 1.0, >= 1.0.1) + postrank-uri (~> 1.0, >= 1.0.18) + rdf-rdfxml (~> 3.1) + rdf-turtle (~> 3.1) + thor (>= 0.19) bootsnap (1.7.7) msgpack (~> 1.0) builder (3.2.4) @@ -476,7 +470,7 @@ DEPENDENCIES base64 (~> 0.2.0) better_errors binding_of_caller - bolognese! + bolognese (~> 2.3.9) bootsnap (>= 1.1.0) byebug cancancan (~> 2.0)