From 93ed110e6e5df5430362127797087a5431c9d363 Mon Sep 17 00:00:00 2001 From: Steve Sullivan Date: Fri, 10 Jan 2025 12:40:43 -0800 Subject: [PATCH 1/5] AP-282: fix token expiration issue --- .../location/world_cat/oclc_auth.rb | 8 +-- .../libraries_request/execute_holdings_1.yml | 38 ++++++------ .../libraries_request/execute_holdings_2.yml | 36 ++++++------ .../libraries_request/execute_holdings_3.yml | 38 ++++++------ .../libraries_request/execute_holdings_4.yml | 38 ++++++------ spec/cassettes/oclc_auth/refresh_token.yml | 58 +++++++++++++++++++ 6 files changed, 135 insertions(+), 81 deletions(-) create mode 100644 spec/cassettes/oclc_auth/refresh_token.yml diff --git a/lib/berkeley_library/location/world_cat/oclc_auth.rb b/lib/berkeley_library/location/world_cat/oclc_auth.rb index 95aed84..2aab315 100644 --- a/lib/berkeley_library/location/world_cat/oclc_auth.rb +++ b/lib/berkeley_library/location/world_cat/oclc_auth.rb @@ -10,6 +10,7 @@ class OCLCAuth attr_accessor :token def initialize + # Sorry Rubocop - needs to be ||= because we're dealing with a singleton # rubocop:disable Lint/DisjunctiveAssignmentInConstructor @token ||= fetch_token # rubocop:enable Lint/DisjunctiveAssignmentInConstructor: @@ -29,18 +30,13 @@ def fetch_token JSON.parse(response.body, symbolize_names: true) end - # def token - # @token = get_token if token_expired? - # @token - # end - def oclc_token_url URI.parse("#{Config.token_uri}?#{URI.encode_www_form(token_params)}") end # Before every request check if the token is expired (OCLC tokens expire after 20 minutes) def access_token - @token = token if token_expired? + @token = fetch_token if token_expired? @token[:access_token] end diff --git a/spec/cassettes/libraries_request/execute_holdings_1.yml b/spec/cassettes/libraries_request/execute_holdings_1.yml index 5755489..bb05a92 100644 --- a/spec/cassettes/libraries_request/execute_holdings_1.yml +++ b/spec/cassettes/libraries_request/execute_holdings_1.yml @@ -23,7 +23,7 @@ http_interactions: message: '' headers: Date: - - Tue, 07 Jan 2025 23:01:08 GMT + - Fri, 10 Jan 2025 20:39:28 GMT Content-Type: - application/json;charset=UTF-8 Transfer-Encoding: @@ -31,52 +31,52 @@ http_interactions: Connection: - keep-alive X-Ratelimit-Remaining-Day: - - '149987' + - '149991' Ratelimit-Reset: - - '349132' - Ratelimit-Limit: + - '98432' + X-Ratelimit-Limit-Month: - '150000' - Ratelimit-Remaining: - - '149942' X-Ratelimit-Remaining-Month: - - '149942' - X-Ratelimit-Limit-Month: + - '149886' + Ratelimit-Remaining: + - '149886' + Ratelimit-Limit: - '150000' X-Ratelimit-Limit-Day: - '150000' X-Oclc-Requestid: - - a062aace-ab26-4b9c-a6e3-7d771e999109 + - caba566e-567a-4d03-8979-ef50d589a0d9 X-Oclc-Selfid: - - d31de33f-dbb7-4fd5-872a-735b4edf2d81 + - 99fd5f0d-3e90-456d-814e-370338b2a636 Cache-Control: - max-age=3600 Kong-Request-Id: - - 7dc290f2-87f5-4e2f-81ca-094a9706b8e7#9337598 + - 7dc290f2-87f5-4e2f-81ca-094a9706b8e7#10934042 X-Kong-Upstream-Latency: - - '398' + - '14' X-Kong-Proxy-Latency: - - '43' + - '23' Via: - 1.1 kong/3.8.0.0-enterprise-edition X-Kong-Request-Id: - - f3e16f310fe30b6629416b1f34784544 + - 1c4a69444d087368ac640a5d13d26b46 Strict-Transport-Security: - max-age=31536000; includeSubDomains Cf-Cache-Status: - DYNAMIC Set-Cookie: - - __cf_bm=kenfR_c7QHh79juoV.79IGtcF06i84rZDUoE2IMPDhw-1736290868-1.0.1.1-9Meyw_ExEXnF3K3KFB.GDW0SJjMTwzsUTJD92jB4qwKn2nPTZvN.MjUxiXohAP2rvklVMjqhRvDN7HsHIUWFLw; - path=/; expires=Tue, 07-Jan-25 23:31:08 GMT; domain=.oclc.org; HttpOnly; Secure; + - __cf_bm=gpK7vmqta5or1fVL2zB.s3nbbPTPDzFh5yDys9uRkNY-1736541568-1.0.1.1-4ZifsLfZ5NnPSc6h6CFUsqhskH5T.blqYm7kTsefJWly5J34rG3WG8HNqQLA5aX7T0leNFR14dvRiYrfVfoodA; + path=/; expires=Fri, 10-Jan-25 21:09:28 GMT; domain=.oclc.org; HttpOnly; Secure; SameSite=None - - _cfuvid=iaAhvllttb35avPAbwMTC0WxDhOsbjp6CrW64Ri6VsU-1736290868688-0.0.1.1-604800000; + - _cfuvid=fqI9APAmKDLaVcY2Nd2I3JUP9rTKaVB1vqXt0gwWGcg-1736541568147-0.0.1.1-604800000; path=/; domain=.oclc.org; HttpOnly; Secure; SameSite=None Server: - cloudflare Cf-Ray: - - 8fe79164ee4f1510-LAX + - 8fff79feeed7f20b-LAX body: encoding: ASCII-8BIT string: !binary |- eyJudW1iZXJPZlJlY29yZHMiOjEsImJyaWVmUmVjb3JkcyI6W3sib2NsY051bWJlciI6Ijg1ODMzMjg1IiwidGl0bGUiOiJUaGUgcXVpZXQgZ2lybCIsImNyZWF0b3IiOiJQZXRlciBIw7hlZyIsImRhdGUiOiLCqTIwMDciLCJtYWNoaW5lUmVhZGFibGVEYXRlIjoiMjAwNyIsImxhbmd1YWdlIjoiZW5nIiwiZ2VuZXJhbEZvcm1hdCI6IkJvb2siLCJzcGVjaWZpY0Zvcm1hdCI6IlByaW50Qm9vayIsImVkaXRpb24iOiIxc3QgQW1lcmljYW4gZWQiLCJwdWJsaXNoZXIiOiJGYXJyYXIsIFN0cmF1cywgYW5kIEdpcm91eCIsInB1YmxpY2F0aW9uUGxhY2UiOiJOZXcgWW9yayIsImlzYm5zIjpbIjk3ODAzNzQyNjM2OTAiLCIwMzc0MjYzNjk4Il0sIm1lcmdlZE9jbGNOdW1iZXJzIjpbIjk2NjQ5Mzg4NiIsIjk2Nzg0MjE0OSIsIjEwMjI3MTU1MzAiLCIxMDYwNjk1OTE0IiwiMTIwMTQ2NDAzNiIsIjEyMzAzNzE4ODYiLCIxMzAzODAxODEyIl0sImNhdGFsb2dpbmdJbmZvIjp7ImNhdGFsb2dpbmdBZ2VuY3kiOiJETEMiLCJjYXRhbG9naW5nTGFuZ3VhZ2UiOiJlbmciLCJsZXZlbE9mQ2F0YWxvZ2luZyI6IiAiLCJ0cmFuc2NyaWJpbmdBZ2VuY3kiOiJETEMifSwiaW5zdGl0dXRpb25Ib2xkaW5nIjp7InRvdGFsSG9sZGluZ0NvdW50Ijo0LCJicmllZkhvbGRpbmdzIjpbeyJjb3VudHJ5IjoiVVMiLCJzdGF0ZSI6IlVTLUNBIiwib2NsY1N5bWJvbCI6Ik1FUlVDIiwicmVnaXN0cnlJZCI6NDY5MSwiaW5zdGl0dXRpb25OdW1iZXIiOjM2MjEzLCJpbnN0aXR1dGlvbk5hbWUiOiJVbml2ZXJzaXR5IG9mIENhbGlmb3JuaWEsIE1lcmNlZCIsImFsc29DYWxsZWQiOiJVQyBNZXJjZWQgTGlicmFyeSIsImhhc09QQUNMaW5rIjp0cnVlLCJzZWxmIjoiaHR0cHM6Ly93b3JsZGNhdC5vcmcvb2NsYy1jb25maWcvaW5zdGl0dXRpb24vZGF0YS80NjkxIiwiYWRkcmVzcyI6eyJzdHJlZXQxIjoiTGVvICZhbXA7IERvdHRpZSBLb2xsaWdpYW4gTGlicmFyeSIsInN0cmVldDIiOiI1MjAwIE4gTGFrZSBSb2FkIiwiY2l0eSI6Ik1lcmNlZCIsInN0YXRlIjoiVVMtQ0EiLCJwb3N0YWxDb2RlIjoiOTUzNDMiLCJjb3VudHJ5IjoiVVMiLCJsYXQiOjM3LjM2NjI1NywibG9uIjotMTIwLjQyNDU3fSwiaW5zdGl0dXRpb25UeXBlIjoiQUNBREVNSUMifSx7ImNvdW50cnkiOiJVUyIsInN0YXRlIjoiVVMtQ0EiLCJvY2xjU3ltYm9sIjoiWkFQIiwicmVnaXN0cnlJZCI6NTY5MCwiaW5zdGl0dXRpb25OdW1iZXIiOjQyMTgsImluc3RpdHV0aW9uTmFtZSI6IlVuaXZlcnNpdHkgb2YgQ2FsaWZvcm5pYSwgTlJMRiIsImFsc29DYWxsZWQiOiJOb3J0aGVybiBSZWdpb25hbCBMaWJyYXJ5IEZhY2lsaXR5IiwiaGFzT1BBQ0xpbmsiOnRydWUsInNlbGYiOiJodHRwczovL3dvcmxkY2F0Lm9yZy9vY2xjLWNvbmZpZy9pbnN0aXR1dGlvbi9kYXRhLzU2OTAiLCJhZGRyZXNzIjp7InN0cmVldDEiOiJSaWNobW9uZCBGaWVsZCBTdGF0aW9uIEJsZGcuIDQwMCIsInN0cmVldDIiOiJNZWFkZSBhbmQgU291dGggNDd0aCBTdC4iLCJjaXR5IjoiUmljaG1vbmQiLCJzdGF0ZSI6IlVTLUNBIiwicG9zdGFsQ29kZSI6Ijk0ODA0LTQ2OTgiLCJjb3VudHJ5IjoiVVMiLCJsYXQiOjM3LjkxNzY3LCJsb24iOi0xMjIuMzMxNjh9LCJpbnN0aXR1dGlvblR5cGUiOiJBQ0FERU1JQyJ9LHsiY291bnRyeSI6IlVTIiwic3RhdGUiOiJVUy1DQSIsIm9jbGNTeW1ib2wiOiJDVUkiLCJyZWdpc3RyeUlkIjo1NjU2LCJpbnN0aXR1dGlvbk51bWJlciI6MTEwMSwiaW5zdGl0dXRpb25OYW1lIjoiVW5pdmVyc2l0eSBvZiBDYWxpZm9ybmlhLCBJcnZpbmUiLCJhbHNvQ2FsbGVkIjoiTGFuZ3NvbiBMaWJyYXJ5IiwiaGFzT1BBQ0xpbmsiOnRydWUsInNlbGYiOiJodHRwczovL3dvcmxkY2F0Lm9yZy9vY2xjLWNvbmZpZy9pbnN0aXR1dGlvbi9kYXRhLzU2NTYiLCJhZGRyZXNzIjp7InN0cmVldDEiOiJVbml2IG9mIENhbGlmb3JuaWEgSXJ2aW5lIiwiY2l0eSI6IklydmluZSIsInN0YXRlIjoiVVMtQ0EiLCJwb3N0YWxDb2RlIjoiOTI2OTciLCJjb3VudHJ5IjoiVVMiLCJsYXQiOjMzLjY0NzI2NiwibG9uIjotMTE3Ljg0MTAzNH0sImluc3RpdHV0aW9uVHlwZSI6IkFDQURFTUlDIn0seyJjb3VudHJ5IjoiVVMiLCJzdGF0ZSI6IlVTLUNBIiwib2NsY1N5bWJvbCI6IkNVWSIsInJlZ2lzdHJ5SWQiOjU2ODksImluc3RpdHV0aW9uTnVtYmVyIjoxOTkzLCJpbnN0aXR1dGlvbk5hbWUiOiJVQyBCZXJrZWxleSBMaWJyYXJpZXMiLCJoYXNPUEFDTGluayI6dHJ1ZSwic2VsZiI6Imh0dHBzOi8vd29ybGRjYXQub3JnL29jbGMtY29uZmlnL2luc3RpdHV0aW9uL2RhdGEvNTY4OSIsImFkZHJlc3MiOnsic3RyZWV0MSI6IjEzMyBEb2UgTGlicmFyeSIsInN0cmVldDIiOiJVbml2ZXJzaXR5IG9mIENhbGlmb3JuaWEiLCJjaXR5IjoiQmVya2VsZXkiLCJzdGF0ZSI6IlVTLUNBIiwicG9zdGFsQ29kZSI6Ijk0NzIwLTYwMDAiLCJjb3VudHJ5IjoiVVMiLCJsYXQiOjM3Ljg3NTc1LCJsb24iOi0xMjIuMjQzNDF9LCJpbnN0aXR1dGlvblR5cGUiOiJBQ0FERU1JQyJ9XX19XX0= - recorded_at: Tue, 07 Jan 2025 23:01:08 GMT + recorded_at: Fri, 10 Jan 2025 20:39:28 GMT recorded_with: VCR 6.3.1 diff --git a/spec/cassettes/libraries_request/execute_holdings_2.yml b/spec/cassettes/libraries_request/execute_holdings_2.yml index 0feb99d..940261c 100644 --- a/spec/cassettes/libraries_request/execute_holdings_2.yml +++ b/spec/cassettes/libraries_request/execute_holdings_2.yml @@ -23,7 +23,7 @@ http_interactions: message: '' headers: Date: - - Tue, 07 Jan 2025 23:01:09 GMT + - Fri, 10 Jan 2025 20:39:28 GMT Content-Type: - application/json;charset=UTF-8 Transfer-Encoding: @@ -31,52 +31,52 @@ http_interactions: Connection: - keep-alive X-Ratelimit-Remaining-Day: - - '149986' + - '149990' Ratelimit-Reset: - - '349131' - Ratelimit-Limit: + - '98432' + X-Ratelimit-Limit-Month: - '150000' - Ratelimit-Remaining: - - '149941' X-Ratelimit-Remaining-Month: - - '149941' - X-Ratelimit-Limit-Month: + - '149885' + Ratelimit-Remaining: + - '149885' + Ratelimit-Limit: - '150000' X-Ratelimit-Limit-Day: - '150000' X-Oclc-Requestid: - - da247e04-f561-45b0-bb30-b983c095af44 + - 6d4aca90-e156-4ce0-9a61-86f88d0f2592 X-Oclc-Selfid: - - 13bcfcf8-8bb1-427c-823b-d3ac418af368 + - 51a1aea4-1c0c-49e0-8d17-11afdb97747d Cache-Control: - max-age=3600 Kong-Request-Id: - - 7dc290f2-87f5-4e2f-81ca-094a9706b8e7#9337606 + - 7dc290f2-87f5-4e2f-81ca-094a9706b8e7#10934049 X-Kong-Upstream-Latency: - - '101' + - '55' X-Kong-Proxy-Latency: - '1' Via: - 1.1 kong/3.8.0.0-enterprise-edition X-Kong-Request-Id: - - 98eef44e0830d5567b07fb3d38ecff0a + - bc3ebf275b6e53052effd334d888286c Strict-Transport-Security: - max-age=31536000; includeSubDomains Cf-Cache-Status: - DYNAMIC Set-Cookie: - - __cf_bm=4GS_FLWe.bI_.8ZWGDaatJAyarhnNiJwhV8Vqyji5Ow-1736290869-1.0.1.1-Blgh2Y3z53SyWn99TdoUnytdauoVpttvnhN90YkSakbpevoRuVAlEPaPYwC.ODWv9vAw.YcDkEzsAyL.wyAM_A; - path=/; expires=Tue, 07-Jan-25 23:31:09 GMT; domain=.oclc.org; HttpOnly; Secure; + - __cf_bm=.6BgzPjw1Z4kvMxnC8O62TXVZ3v6.oIopdtjD5J6lxE-1736541568-1.0.1.1-1O4iwYsftlOWd2rSR46FCfqt0FaWBjxMfBn5281hhncCT0xF0gM1z4KXbFcFEa7ZX312NYXvIdW54pqUt5yDzg; + path=/; expires=Fri, 10-Jan-25 21:09:28 GMT; domain=.oclc.org; HttpOnly; Secure; SameSite=None - - _cfuvid=I5j8K_bc10wLE7w08c5eh7QGDG3pLebr485txpupiVI-1736290869313-0.0.1.1-604800000; + - _cfuvid=fjaLixOCX0VBvy4FKGNIgpDg3fnooTgv.r8bOcP2xyw-1736541568663-0.0.1.1-604800000; path=/; domain=.oclc.org; HttpOnly; Secure; SameSite=None Server: - cloudflare Cf-Ray: - - 8fe7916aae28101f-LAX + - 8fff7a020d191502-LAX body: encoding: ASCII-8BIT string: !binary |- eyJudW1iZXJPZlJlY29yZHMiOjEsImJyaWVmUmVjb3JkcyI6W3sib2NsY051bWJlciI6Ijg1ODMzMjg1IiwidGl0bGUiOiJUaGUgcXVpZXQgZ2lybCIsImNyZWF0b3IiOiJQZXRlciBIw7hlZyIsImRhdGUiOiLCqTIwMDciLCJtYWNoaW5lUmVhZGFibGVEYXRlIjoiMjAwNyIsImxhbmd1YWdlIjoiZW5nIiwiZ2VuZXJhbEZvcm1hdCI6IkJvb2siLCJzcGVjaWZpY0Zvcm1hdCI6IlByaW50Qm9vayIsImVkaXRpb24iOiIxc3QgQW1lcmljYW4gZWQiLCJwdWJsaXNoZXIiOiJGYXJyYXIsIFN0cmF1cywgYW5kIEdpcm91eCIsInB1YmxpY2F0aW9uUGxhY2UiOiJOZXcgWW9yayIsImlzYm5zIjpbIjk3ODAzNzQyNjM2OTAiLCIwMzc0MjYzNjk4Il0sIm1lcmdlZE9jbGNOdW1iZXJzIjpbIjk2NjQ5Mzg4NiIsIjk2Nzg0MjE0OSIsIjEwMjI3MTU1MzAiLCIxMDYwNjk1OTE0IiwiMTIwMTQ2NDAzNiIsIjEyMzAzNzE4ODYiLCIxMzAzODAxODEyIl0sImNhdGFsb2dpbmdJbmZvIjp7ImNhdGFsb2dpbmdBZ2VuY3kiOiJETEMiLCJjYXRhbG9naW5nTGFuZ3VhZ2UiOiJlbmciLCJsZXZlbE9mQ2F0YWxvZ2luZyI6IiAiLCJ0cmFuc2NyaWJpbmdBZ2VuY3kiOiJETEMifSwiaW5zdGl0dXRpb25Ib2xkaW5nIjp7InRvdGFsSG9sZGluZ0NvdW50IjoxLCJicmllZkhvbGRpbmdzIjpbeyJjb3VudHJ5IjoiVVMiLCJzdGF0ZSI6IlVTLUNBIiwib2NsY1N5bWJvbCI6IlpBUCIsInJlZ2lzdHJ5SWQiOjU2OTAsImluc3RpdHV0aW9uTnVtYmVyIjo0MjE4LCJpbnN0aXR1dGlvbk5hbWUiOiJVbml2ZXJzaXR5IG9mIENhbGlmb3JuaWEsIE5STEYiLCJhbHNvQ2FsbGVkIjoiTm9ydGhlcm4gUmVnaW9uYWwgTGlicmFyeSBGYWNpbGl0eSIsImhhc09QQUNMaW5rIjp0cnVlLCJzZWxmIjoiaHR0cHM6Ly93b3JsZGNhdC5vcmcvb2NsYy1jb25maWcvaW5zdGl0dXRpb24vZGF0YS81NjkwIiwiYWRkcmVzcyI6eyJzdHJlZXQxIjoiUmljaG1vbmQgRmllbGQgU3RhdGlvbiBCbGRnLiA0MDAiLCJzdHJlZXQyIjoiTWVhZGUgYW5kIFNvdXRoIDQ3dGggU3QuIiwiY2l0eSI6IlJpY2htb25kIiwic3RhdGUiOiJVUy1DQSIsInBvc3RhbENvZGUiOiI5NDgwNC00Njk4IiwiY291bnRyeSI6IlVTIiwibGF0IjozNy45MTc2NywibG9uIjotMTIyLjMzMTY4fSwiaW5zdGl0dXRpb25UeXBlIjoiQUNBREVNSUMifV19fV19 - recorded_at: Tue, 07 Jan 2025 23:01:09 GMT + recorded_at: Fri, 10 Jan 2025 20:39:28 GMT recorded_with: VCR 6.3.1 diff --git a/spec/cassettes/libraries_request/execute_holdings_3.yml b/spec/cassettes/libraries_request/execute_holdings_3.yml index 8392587..db6f332 100644 --- a/spec/cassettes/libraries_request/execute_holdings_3.yml +++ b/spec/cassettes/libraries_request/execute_holdings_3.yml @@ -23,7 +23,7 @@ http_interactions: message: '' headers: Date: - - Tue, 07 Jan 2025 23:01:09 GMT + - Fri, 10 Jan 2025 20:39:29 GMT Content-Type: - application/json;charset=UTF-8 Transfer-Encoding: @@ -31,52 +31,52 @@ http_interactions: Connection: - keep-alive X-Ratelimit-Remaining-Day: - - '149985' + - '149989' Ratelimit-Reset: - - '349131' - Ratelimit-Limit: + - '98431' + X-Ratelimit-Limit-Month: - '150000' - Ratelimit-Remaining: - - '149940' X-Ratelimit-Remaining-Month: - - '149940' - X-Ratelimit-Limit-Month: + - '149884' + Ratelimit-Remaining: + - '149884' + Ratelimit-Limit: - '150000' X-Ratelimit-Limit-Day: - '150000' X-Oclc-Requestid: - - 18270473-aa58-4240-b6fb-ca27060d6026 + - 047b89fb-b6c5-44bf-9634-f0f07450e8cb X-Oclc-Selfid: - - 5aaaa264-a1cf-4a23-8c44-bfc5df2eb264 + - d21778c6-e642-48c6-bc11-5796ab429f77 Cache-Control: - max-age=3600 Kong-Request-Id: - - 7dc290f2-87f5-4e2f-81ca-094a9706b8e7#9337611 + - 7dc290f2-87f5-4e2f-81ca-094a9706b8e7#10934061 X-Kong-Upstream-Latency: - - '67' + - '10' X-Kong-Proxy-Latency: - - '2' + - '1' Via: - 1.1 kong/3.8.0.0-enterprise-edition X-Kong-Request-Id: - - f2da9b21eb18203b70288c02375eb42c + - 6f17826248a7364597391e5b4b81ab53 Strict-Transport-Security: - max-age=31536000; includeSubDomains Cf-Cache-Status: - DYNAMIC Set-Cookie: - - __cf_bm=pkZyzlIsu44s3J8uEFfQLZG96nyB38kADbk58EweVg8-1736290869-1.0.1.1-k_5cYJ2fKL6WE1EtmDFL7vCpAOf82twuICpLFkGz6HjOfL2D7mbQX8i1dFRIlFLwljBbkVl0CJt3.hbY9ZT_DQ; - path=/; expires=Tue, 07-Jan-25 23:31:09 GMT; domain=.oclc.org; HttpOnly; Secure; + - __cf_bm=oxGBLsppi11NUcst7YBw7q2tkPoSkhWEk978tTMBJXM-1736541569-1.0.1.1-gcXmEPrhTEBbVJQrIITULpPrVv2_0ENpvQHvXNplk9RRQiLsLBxA04WUWMzkCDP5KMR.82IE9SBgJNg.GH2pTg; + path=/; expires=Fri, 10-Jan-25 21:09:29 GMT; domain=.oclc.org; HttpOnly; Secure; SameSite=None - - _cfuvid=Wyvt_0JQhrkunbgPxSDnVEo8k5KurYZt1F1Dd5RFOT8-1736290869753-0.0.1.1-604800000; + - _cfuvid=6edYRnYB3nZJkVfdmLjQI5TgY5D2Pua0vakmMB.8ciA-1736541569118-0.0.1.1-604800000; path=/; domain=.oclc.org; HttpOnly; Secure; SameSite=None Server: - cloudflare Cf-Ray: - - 8fe7916def047d5c-LAX + - 8fff7a053ab9cb8a-LAX body: encoding: ASCII-8BIT string: !binary |- eyJudW1iZXJPZlJlY29yZHMiOjEsImJyaWVmUmVjb3JkcyI6W3sib2NsY051bWJlciI6Ijg1ODMzMjg1IiwidGl0bGUiOiJUaGUgcXVpZXQgZ2lybCIsImNyZWF0b3IiOiJQZXRlciBIw7hlZyIsImRhdGUiOiLCqTIwMDciLCJtYWNoaW5lUmVhZGFibGVEYXRlIjoiMjAwNyIsImxhbmd1YWdlIjoiZW5nIiwiZ2VuZXJhbEZvcm1hdCI6IkJvb2siLCJzcGVjaWZpY0Zvcm1hdCI6IlByaW50Qm9vayIsImVkaXRpb24iOiIxc3QgQW1lcmljYW4gZWQiLCJwdWJsaXNoZXIiOiJGYXJyYXIsIFN0cmF1cywgYW5kIEdpcm91eCIsInB1YmxpY2F0aW9uUGxhY2UiOiJOZXcgWW9yayIsImlzYm5zIjpbIjk3ODAzNzQyNjM2OTAiLCIwMzc0MjYzNjk4Il0sIm1lcmdlZE9jbGNOdW1iZXJzIjpbIjk2NjQ5Mzg4NiIsIjk2Nzg0MjE0OSIsIjEwMjI3MTU1MzAiLCIxMDYwNjk1OTE0IiwiMTIwMTQ2NDAzNiIsIjEyMzAzNzE4ODYiLCIxMzAzODAxODEyIl0sImNhdGFsb2dpbmdJbmZvIjp7ImNhdGFsb2dpbmdBZ2VuY3kiOiJETEMiLCJjYXRhbG9naW5nTGFuZ3VhZ2UiOiJlbmciLCJsZXZlbE9mQ2F0YWxvZ2luZyI6IiAiLCJ0cmFuc2NyaWJpbmdBZ2VuY3kiOiJETEMifSwiaW5zdGl0dXRpb25Ib2xkaW5nIjp7InRvdGFsSG9sZGluZ0NvdW50IjozLCJicmllZkhvbGRpbmdzIjpbeyJjb3VudHJ5IjoiVVMiLCJzdGF0ZSI6IlVTLUNBIiwib2NsY1N5bWJvbCI6Ik1FUlVDIiwicmVnaXN0cnlJZCI6NDY5MSwiaW5zdGl0dXRpb25OdW1iZXIiOjM2MjEzLCJpbnN0aXR1dGlvbk5hbWUiOiJVbml2ZXJzaXR5IG9mIENhbGlmb3JuaWEsIE1lcmNlZCIsImFsc29DYWxsZWQiOiJVQyBNZXJjZWQgTGlicmFyeSIsImhhc09QQUNMaW5rIjp0cnVlLCJzZWxmIjoiaHR0cHM6Ly93b3JsZGNhdC5vcmcvb2NsYy1jb25maWcvaW5zdGl0dXRpb24vZGF0YS80NjkxIiwiYWRkcmVzcyI6eyJzdHJlZXQxIjoiTGVvICZhbXA7IERvdHRpZSBLb2xsaWdpYW4gTGlicmFyeSIsInN0cmVldDIiOiI1MjAwIE4gTGFrZSBSb2FkIiwiY2l0eSI6Ik1lcmNlZCIsInN0YXRlIjoiVVMtQ0EiLCJwb3N0YWxDb2RlIjoiOTUzNDMiLCJjb3VudHJ5IjoiVVMiLCJsYXQiOjM3LjM2NjI1NywibG9uIjotMTIwLjQyNDU3fSwiaW5zdGl0dXRpb25UeXBlIjoiQUNBREVNSUMifSx7ImNvdW50cnkiOiJVUyIsInN0YXRlIjoiVVMtQ0EiLCJvY2xjU3ltYm9sIjoiQ1VJIiwicmVnaXN0cnlJZCI6NTY1NiwiaW5zdGl0dXRpb25OdW1iZXIiOjExMDEsImluc3RpdHV0aW9uTmFtZSI6IlVuaXZlcnNpdHkgb2YgQ2FsaWZvcm5pYSwgSXJ2aW5lIiwiYWxzb0NhbGxlZCI6Ikxhbmdzb24gTGlicmFyeSIsImhhc09QQUNMaW5rIjp0cnVlLCJzZWxmIjoiaHR0cHM6Ly93b3JsZGNhdC5vcmcvb2NsYy1jb25maWcvaW5zdGl0dXRpb24vZGF0YS81NjU2IiwiYWRkcmVzcyI6eyJzdHJlZXQxIjoiVW5pdiBvZiBDYWxpZm9ybmlhIElydmluZSIsImNpdHkiOiJJcnZpbmUiLCJzdGF0ZSI6IlVTLUNBIiwicG9zdGFsQ29kZSI6IjkyNjk3IiwiY291bnRyeSI6IlVTIiwibGF0IjozMy42NDcyNjYsImxvbiI6LTExNy44NDEwMzR9LCJpbnN0aXR1dGlvblR5cGUiOiJBQ0FERU1JQyJ9LHsiY291bnRyeSI6IlVTIiwic3RhdGUiOiJVUy1DQSIsIm9jbGNTeW1ib2wiOiJDVVkiLCJyZWdpc3RyeUlkIjo1Njg5LCJpbnN0aXR1dGlvbk51bWJlciI6MTk5MywiaW5zdGl0dXRpb25OYW1lIjoiVUMgQmVya2VsZXkgTGlicmFyaWVzIiwiaGFzT1BBQ0xpbmsiOnRydWUsInNlbGYiOiJodHRwczovL3dvcmxkY2F0Lm9yZy9vY2xjLWNvbmZpZy9pbnN0aXR1dGlvbi9kYXRhLzU2ODkiLCJhZGRyZXNzIjp7InN0cmVldDEiOiIxMzMgRG9lIExpYnJhcnkiLCJzdHJlZXQyIjoiVW5pdmVyc2l0eSBvZiBDYWxpZm9ybmlhIiwiY2l0eSI6IkJlcmtlbGV5Iiwic3RhdGUiOiJVUy1DQSIsInBvc3RhbENvZGUiOiI5NDcyMC02MDAwIiwiY291bnRyeSI6IlVTIiwibGF0IjozNy44NzU3NSwibG9uIjotMTIyLjI0MzQxfSwiaW5zdGl0dXRpb25UeXBlIjoiQUNBREVNSUMifV19fV19 - recorded_at: Tue, 07 Jan 2025 23:01:09 GMT + recorded_at: Fri, 10 Jan 2025 20:39:29 GMT recorded_with: VCR 6.3.1 diff --git a/spec/cassettes/libraries_request/execute_holdings_4.yml b/spec/cassettes/libraries_request/execute_holdings_4.yml index 18c0d90..77b05e1 100644 --- a/spec/cassettes/libraries_request/execute_holdings_4.yml +++ b/spec/cassettes/libraries_request/execute_holdings_4.yml @@ -23,7 +23,7 @@ http_interactions: message: '' headers: Date: - - Tue, 07 Jan 2025 23:01:10 GMT + - Fri, 10 Jan 2025 20:39:29 GMT Content-Type: - application/json;charset=UTF-8 Transfer-Encoding: @@ -31,52 +31,52 @@ http_interactions: Connection: - keep-alive X-Ratelimit-Remaining-Day: - - '149984' + - '149988' Ratelimit-Reset: - - '349130' - Ratelimit-Limit: + - '98431' + X-Ratelimit-Limit-Month: - '150000' - Ratelimit-Remaining: - - '149939' X-Ratelimit-Remaining-Month: - - '149939' - X-Ratelimit-Limit-Month: + - '149883' + Ratelimit-Remaining: + - '149883' + Ratelimit-Limit: - '150000' X-Ratelimit-Limit-Day: - '150000' X-Oclc-Requestid: - - 18d86ace-2856-42ee-a167-0914f256aaf9 + - f3a678ce-2003-43de-b608-0b44ef3503fe X-Oclc-Selfid: - - 7ca5538a-26fa-424d-9439-c245e4a3cb64 + - 94171b70-bd39-4f6b-970f-acce4c0a9e8b Cache-Control: - max-age=3600 Kong-Request-Id: - - 7dc290f2-87f5-4e2f-81ca-094a9706b8e7#9337615 + - 7dc290f2-87f5-4e2f-81ca-094a9706b8e7#10934069 X-Kong-Upstream-Latency: - - '21' + - '20' X-Kong-Proxy-Latency: - - '2' + - '1' Via: - 1.1 kong/3.8.0.0-enterprise-edition X-Kong-Request-Id: - - 50c70a3968e43e0628e70a293ca58939 + - 31670633bf5dea5e0919773f34425304 Strict-Transport-Security: - max-age=31536000; includeSubDomains Cf-Cache-Status: - DYNAMIC Set-Cookie: - - __cf_bm=EcJrMGZHWcR2qFk1t2cn0kzJ2_2k8n.1f73xNTAzDts-1736290870-1.0.1.1-81sIheAg2TEkFlNN05mnwcgnhXeqslV5tjV0_9lwB2Up7jxwUZ8OPyZoduT0ABmtKoDBBOH6weQ1oRNCLvFWAw; - path=/; expires=Tue, 07-Jan-25 23:31:10 GMT; domain=.oclc.org; HttpOnly; Secure; + - __cf_bm=PKEMgxlVHzpHH.M4JVx6j3AaRTNP7eUqlUPZn0lBA9o-1736541569-1.0.1.1-9R1IuCNAYVICpOObm3OlOnPj7Tzpm.TOJ4OHXGOqAhUl_vc9dl01ZM_hXFn1SmvW27OzCjOsfG6wwguMBWo5Cg; + path=/; expires=Fri, 10-Jan-25 21:09:29 GMT; domain=.oclc.org; HttpOnly; Secure; SameSite=None - - _cfuvid=VvwCiq3xtZgjwjSI12oasOYzKOJg9XAE7Q3JREBqB70-1736290870173-0.0.1.1-604800000; + - _cfuvid=ZmEpoK9tMyU5pilLpdXVOvkSOR4XEKeWXc8F6NV.mKM-1736541569626-0.0.1.1-604800000; path=/; domain=.oclc.org; HttpOnly; Secure; SameSite=None Server: - cloudflare Cf-Ray: - - 8fe79170beb42b72-LAX + - 8fff7a085f0b2b8e-LAX body: encoding: ASCII-8BIT string: !binary |- eyJudW1iZXJPZlJlY29yZHMiOjEsImJyaWVmUmVjb3JkcyI6W3sib2NsY051bWJlciI6IjEwMDQ1MTkzIiwidGl0bGUiOiJEZSBTYWludC1Mb3VpcyBhIFRyaXBvbGkgcGFyIGxlIExhYyBUY2hhZCA6IHZveWFnZSBhdSB0cmF2ZXJzIGR1IFNvdWRhbiBldCBkdSBTYWhhcmEgYWNjb21wbGkgcGVuZGFudCBsZXMgYW5uZcyBZXMgMTg5MC05MS05MiIsImNyZWF0b3IiOiJQLi1MLiBNb250ZWlsIiwiZGF0ZSI6IlsxODk1P10iLCJtYWNoaW5lUmVhZGFibGVEYXRlIjoiMTg5NSIsImxhbmd1YWdlIjoiZnJlIiwiZ2VuZXJhbEZvcm1hdCI6IkJvb2siLCJzcGVjaWZpY0Zvcm1hdCI6IlByaW50Qm9vayIsInB1Ymxpc2hlciI6IkYuIEFsY2FuIiwicHVibGljYXRpb25QbGFjZSI6IlBhcmlzIiwibWVyZ2VkT2NsY051bWJlcnMiOlsiMTAwNzQ3MDU4MiJdLCJjYXRhbG9naW5nSW5mbyI6eyJjYXRhbG9naW5nQWdlbmN5IjoiQ1VGIiwiY2F0YWxvZ2luZ0xhbmd1YWdlIjoiZW5nIiwibGV2ZWxPZkNhdGFsb2dpbmciOiIgIiwidHJhbnNjcmliaW5nQWdlbmN5IjoiQ1VGIn0sImluc3RpdHV0aW9uSG9sZGluZyI6eyJ0b3RhbEhvbGRpbmdDb3VudCI6MH19XX0= - recorded_at: Tue, 07 Jan 2025 23:01:10 GMT + recorded_at: Fri, 10 Jan 2025 20:39:29 GMT recorded_with: VCR 6.3.1 diff --git a/spec/cassettes/oclc_auth/refresh_token.yml b/spec/cassettes/oclc_auth/refresh_token.yml new file mode 100644 index 0000000..0bb5b4b --- /dev/null +++ b/spec/cassettes/oclc_auth/refresh_token.yml @@ -0,0 +1,58 @@ +--- +http_interactions: +- request: + method: post + uri: https://oauth.oclc.org/token?grant_type=client_credentials&scope=wcapi:view_institution_holdings + body: + encoding: UTF-8 + string: '' + headers: + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - application/json + User-Agent: + - Ruby + Authorization: + - "" + response: + status: + code: 200 + message: '' + headers: + X-Oclc-Requestid: + - 51138ff0-3921-451a-bbd2-3ea5d2a41975 + X-Oclc-Selfid: + - d1dfe09e-bd7c-4651-883d-a38eedcf2f94 + Set-Cookie: + - BIGipServermdc1_prdctn_p_oauth-m1-wskeyv3ws-443_8443=3643927050.64288.0000; + expires=Fri, 10-Jan-2025 21:39:30 GMT; path=/; Httponly; Secure + - JSESSIONID=21C2CF25F4144FFF589006B1308C2456; Path=/; Secure; HttpOnly; SameSite=None + Vary: + - Access-Control-Request-Headers + - Access-Control-Request-Method + - Origin + Cache-Control: + - no-store + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 ; includeSubDomains + X-Xss-Protection: + - '0' + X-Frame-Options: + - DENY + X-Content-Type-Options: + - nosniff + Content-Type: + - application/json;charset=UTF-8 + Transfer-Encoding: + - chunked + Date: + - Fri, 10 Jan 2025 20:39:29 GMT + body: + encoding: UTF-8 + string: '{"access_token":"tk_QbVm2TGjT0JoSmrBMyLbp0Zqbd0mE5lVjUs4","expires_at":"2025-01-10 + 20:59:30Z","authenticating_institution_id":"5689","scope":"wcapi:view_institution_holdings","principalID":"","context_institution_id":"5689","scopes":"wcapi:view_institution_holdings","token_type":"bearer","expires_in":1199,"principalIDNS":""}' + recorded_at: Fri, 10 Jan 2025 20:39:30 GMT +recorded_with: VCR 6.3.1 From 7b5862a1c6d09df9d1691d79322852d8c6fc9f16 Mon Sep 17 00:00:00 2001 From: Steve Sullivan Date: Fri, 10 Jan 2025 12:43:32 -0800 Subject: [PATCH 2/5] bumping version --- lib/berkeley_library/location/module_info.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/berkeley_library/location/module_info.rb b/lib/berkeley_library/location/module_info.rb index 5f101b6..bd88838 100644 --- a/lib/berkeley_library/location/module_info.rb +++ b/lib/berkeley_library/location/module_info.rb @@ -7,7 +7,7 @@ module ModuleInfo SUMMARY = 'Locaton-related utilities for the UC Berkeley Library'.freeze DESCRIPTION = 'A collection of location-related utilities for the UC Berkeley Library'.freeze LICENSE = 'MIT'.freeze - VERSION = '4.0.0'.freeze + VERSION = '4.1.0'.freeze HOMEPAGE = 'https://github.com/BerkeleyLibrary/location'.freeze end end From 599d1b890dd6da80dd3c7080f89ee3ce0999f9f9 Mon Sep 17 00:00:00 2001 From: Steve Sullivan Date: Fri, 10 Jan 2025 15:16:51 -0800 Subject: [PATCH 3/5] Fix bad expired token test! --- .../location/world_cat/oclc_auth_spec.rb | 16 ++++- .../libraries_request/execute_holdings_1.yml | 36 ++++++------ .../libraries_request/execute_holdings_2.yml | 36 ++++++------ .../libraries_request/execute_holdings_3.yml | 36 ++++++------ .../libraries_request/execute_holdings_4.yml | 36 ++++++------ spec/cassettes/oclc_auth/fetch_token.yml | 58 +++++++++++++++++++ spec/cassettes/oclc_auth/refresh_token.yml | 18 +++--- 7 files changed, 152 insertions(+), 84 deletions(-) create mode 100644 spec/cassettes/oclc_auth/fetch_token.yml diff --git a/spec/berkeley_library/location/world_cat/oclc_auth_spec.rb b/spec/berkeley_library/location/world_cat/oclc_auth_spec.rb index 058df5b..74d1823 100644 --- a/spec/berkeley_library/location/world_cat/oclc_auth_spec.rb +++ b/spec/berkeley_library/location/world_cat/oclc_auth_spec.rb @@ -1,4 +1,5 @@ require 'spec_helper' +require 'time' module BerkeleyLibrary module Location @@ -12,17 +13,26 @@ module WorldCat end end - it 'refreshes a token' do + it 'refreshes an expired token' do VCR.use_cassette('oclc_auth/refresh_token') do + # First get a token.... token = OCLCAuth.instance.token # Need to set the token expiration to a time in the past - token[:expires_at] = (Time.now - 1).to_s + token[:expires_at] = (Time.now - 60).to_s + token[:access_token] = 'expired_token' + + # Now we need to set the token instance to the token with the updated expiration OCLCAuth.instance.token = token + # Trigger a refresh by calling access_token OCLCAuth.instance.access_token - expect(OCLCAuth.instance.token[:access_token]).to be_a(String) + # Now check that the token has been refreshed + token = OCLCAuth.instance.token + + expect(token[:access_token]).not_to eq('expired_token') + expect(Time.parse(token[:expires_at])).to be >= Time.now end end diff --git a/spec/cassettes/libraries_request/execute_holdings_1.yml b/spec/cassettes/libraries_request/execute_holdings_1.yml index bb05a92..1931257 100644 --- a/spec/cassettes/libraries_request/execute_holdings_1.yml +++ b/spec/cassettes/libraries_request/execute_holdings_1.yml @@ -23,7 +23,7 @@ http_interactions: message: '' headers: Date: - - Fri, 10 Jan 2025 20:39:28 GMT + - Fri, 10 Jan 2025 23:16:00 GMT Content-Type: - application/json;charset=UTF-8 Transfer-Encoding: @@ -31,52 +31,52 @@ http_interactions: Connection: - keep-alive X-Ratelimit-Remaining-Day: - - '149991' + - '149978' Ratelimit-Reset: - - '98432' + - '89040' + Ratelimit-Limit: + - '150000' X-Ratelimit-Limit-Month: - '150000' X-Ratelimit-Remaining-Month: - - '149886' + - '149873' Ratelimit-Remaining: - - '149886' - Ratelimit-Limit: - - '150000' + - '149873' X-Ratelimit-Limit-Day: - '150000' X-Oclc-Requestid: - - caba566e-567a-4d03-8979-ef50d589a0d9 + - 715e2ff7-aeb1-4022-a917-d98a31fa7c05 X-Oclc-Selfid: - - 99fd5f0d-3e90-456d-814e-370338b2a636 + - 007c1df3-f945-4fc5-8383-ff763196dcf8 Cache-Control: - max-age=3600 Kong-Request-Id: - - 7dc290f2-87f5-4e2f-81ca-094a9706b8e7#10934042 + - 7dc290f2-87f5-4e2f-81ca-094a9706b8e7#11054745 X-Kong-Upstream-Latency: - - '14' + - '442' X-Kong-Proxy-Latency: - - '23' + - '33' Via: - 1.1 kong/3.8.0.0-enterprise-edition X-Kong-Request-Id: - - 1c4a69444d087368ac640a5d13d26b46 + - 3520b44d579a5f21e109e44013c98b55 Strict-Transport-Security: - max-age=31536000; includeSubDomains Cf-Cache-Status: - DYNAMIC Set-Cookie: - - __cf_bm=gpK7vmqta5or1fVL2zB.s3nbbPTPDzFh5yDys9uRkNY-1736541568-1.0.1.1-4ZifsLfZ5NnPSc6h6CFUsqhskH5T.blqYm7kTsefJWly5J34rG3WG8HNqQLA5aX7T0leNFR14dvRiYrfVfoodA; - path=/; expires=Fri, 10-Jan-25 21:09:28 GMT; domain=.oclc.org; HttpOnly; Secure; + - __cf_bm=axuSNCAS7tBUyWjFBc7BYJJsAUvEmWWUWxDtXbMsd3w-1736550960-1.0.1.1-anfpl99zeDioxw2T7TvBClkxmTy0YOcXmiE5Qksku62XM6EG3PblyTgRhKlOKRZNDw3pLAguTDNSKFTYD73OVg; + path=/; expires=Fri, 10-Jan-25 23:46:00 GMT; domain=.oclc.org; HttpOnly; Secure; SameSite=None - - _cfuvid=fqI9APAmKDLaVcY2Nd2I3JUP9rTKaVB1vqXt0gwWGcg-1736541568147-0.0.1.1-604800000; + - _cfuvid=8tN879tMDcy4gWRXftqWFFe6WiVpB67F9CNuSojOqC0-1736550960834-0.0.1.1-604800000; path=/; domain=.oclc.org; HttpOnly; Secure; SameSite=None Server: - cloudflare Cf-Ray: - - 8fff79feeed7f20b-LAX + - 90005f4cab02cba6-LAX body: encoding: ASCII-8BIT string: !binary |- eyJudW1iZXJPZlJlY29yZHMiOjEsImJyaWVmUmVjb3JkcyI6W3sib2NsY051bWJlciI6Ijg1ODMzMjg1IiwidGl0bGUiOiJUaGUgcXVpZXQgZ2lybCIsImNyZWF0b3IiOiJQZXRlciBIw7hlZyIsImRhdGUiOiLCqTIwMDciLCJtYWNoaW5lUmVhZGFibGVEYXRlIjoiMjAwNyIsImxhbmd1YWdlIjoiZW5nIiwiZ2VuZXJhbEZvcm1hdCI6IkJvb2siLCJzcGVjaWZpY0Zvcm1hdCI6IlByaW50Qm9vayIsImVkaXRpb24iOiIxc3QgQW1lcmljYW4gZWQiLCJwdWJsaXNoZXIiOiJGYXJyYXIsIFN0cmF1cywgYW5kIEdpcm91eCIsInB1YmxpY2F0aW9uUGxhY2UiOiJOZXcgWW9yayIsImlzYm5zIjpbIjk3ODAzNzQyNjM2OTAiLCIwMzc0MjYzNjk4Il0sIm1lcmdlZE9jbGNOdW1iZXJzIjpbIjk2NjQ5Mzg4NiIsIjk2Nzg0MjE0OSIsIjEwMjI3MTU1MzAiLCIxMDYwNjk1OTE0IiwiMTIwMTQ2NDAzNiIsIjEyMzAzNzE4ODYiLCIxMzAzODAxODEyIl0sImNhdGFsb2dpbmdJbmZvIjp7ImNhdGFsb2dpbmdBZ2VuY3kiOiJETEMiLCJjYXRhbG9naW5nTGFuZ3VhZ2UiOiJlbmciLCJsZXZlbE9mQ2F0YWxvZ2luZyI6IiAiLCJ0cmFuc2NyaWJpbmdBZ2VuY3kiOiJETEMifSwiaW5zdGl0dXRpb25Ib2xkaW5nIjp7InRvdGFsSG9sZGluZ0NvdW50Ijo0LCJicmllZkhvbGRpbmdzIjpbeyJjb3VudHJ5IjoiVVMiLCJzdGF0ZSI6IlVTLUNBIiwib2NsY1N5bWJvbCI6Ik1FUlVDIiwicmVnaXN0cnlJZCI6NDY5MSwiaW5zdGl0dXRpb25OdW1iZXIiOjM2MjEzLCJpbnN0aXR1dGlvbk5hbWUiOiJVbml2ZXJzaXR5IG9mIENhbGlmb3JuaWEsIE1lcmNlZCIsImFsc29DYWxsZWQiOiJVQyBNZXJjZWQgTGlicmFyeSIsImhhc09QQUNMaW5rIjp0cnVlLCJzZWxmIjoiaHR0cHM6Ly93b3JsZGNhdC5vcmcvb2NsYy1jb25maWcvaW5zdGl0dXRpb24vZGF0YS80NjkxIiwiYWRkcmVzcyI6eyJzdHJlZXQxIjoiTGVvICZhbXA7IERvdHRpZSBLb2xsaWdpYW4gTGlicmFyeSIsInN0cmVldDIiOiI1MjAwIE4gTGFrZSBSb2FkIiwiY2l0eSI6Ik1lcmNlZCIsInN0YXRlIjoiVVMtQ0EiLCJwb3N0YWxDb2RlIjoiOTUzNDMiLCJjb3VudHJ5IjoiVVMiLCJsYXQiOjM3LjM2NjI1NywibG9uIjotMTIwLjQyNDU3fSwiaW5zdGl0dXRpb25UeXBlIjoiQUNBREVNSUMifSx7ImNvdW50cnkiOiJVUyIsInN0YXRlIjoiVVMtQ0EiLCJvY2xjU3ltYm9sIjoiWkFQIiwicmVnaXN0cnlJZCI6NTY5MCwiaW5zdGl0dXRpb25OdW1iZXIiOjQyMTgsImluc3RpdHV0aW9uTmFtZSI6IlVuaXZlcnNpdHkgb2YgQ2FsaWZvcm5pYSwgTlJMRiIsImFsc29DYWxsZWQiOiJOb3J0aGVybiBSZWdpb25hbCBMaWJyYXJ5IEZhY2lsaXR5IiwiaGFzT1BBQ0xpbmsiOnRydWUsInNlbGYiOiJodHRwczovL3dvcmxkY2F0Lm9yZy9vY2xjLWNvbmZpZy9pbnN0aXR1dGlvbi9kYXRhLzU2OTAiLCJhZGRyZXNzIjp7InN0cmVldDEiOiJSaWNobW9uZCBGaWVsZCBTdGF0aW9uIEJsZGcuIDQwMCIsInN0cmVldDIiOiJNZWFkZSBhbmQgU291dGggNDd0aCBTdC4iLCJjaXR5IjoiUmljaG1vbmQiLCJzdGF0ZSI6IlVTLUNBIiwicG9zdGFsQ29kZSI6Ijk0ODA0LTQ2OTgiLCJjb3VudHJ5IjoiVVMiLCJsYXQiOjM3LjkxNzY3LCJsb24iOi0xMjIuMzMxNjh9LCJpbnN0aXR1dGlvblR5cGUiOiJBQ0FERU1JQyJ9LHsiY291bnRyeSI6IlVTIiwic3RhdGUiOiJVUy1DQSIsIm9jbGNTeW1ib2wiOiJDVUkiLCJyZWdpc3RyeUlkIjo1NjU2LCJpbnN0aXR1dGlvbk51bWJlciI6MTEwMSwiaW5zdGl0dXRpb25OYW1lIjoiVW5pdmVyc2l0eSBvZiBDYWxpZm9ybmlhLCBJcnZpbmUiLCJhbHNvQ2FsbGVkIjoiTGFuZ3NvbiBMaWJyYXJ5IiwiaGFzT1BBQ0xpbmsiOnRydWUsInNlbGYiOiJodHRwczovL3dvcmxkY2F0Lm9yZy9vY2xjLWNvbmZpZy9pbnN0aXR1dGlvbi9kYXRhLzU2NTYiLCJhZGRyZXNzIjp7InN0cmVldDEiOiJVbml2IG9mIENhbGlmb3JuaWEgSXJ2aW5lIiwiY2l0eSI6IklydmluZSIsInN0YXRlIjoiVVMtQ0EiLCJwb3N0YWxDb2RlIjoiOTI2OTciLCJjb3VudHJ5IjoiVVMiLCJsYXQiOjMzLjY0NzI2NiwibG9uIjotMTE3Ljg0MTAzNH0sImluc3RpdHV0aW9uVHlwZSI6IkFDQURFTUlDIn0seyJjb3VudHJ5IjoiVVMiLCJzdGF0ZSI6IlVTLUNBIiwib2NsY1N5bWJvbCI6IkNVWSIsInJlZ2lzdHJ5SWQiOjU2ODksImluc3RpdHV0aW9uTnVtYmVyIjoxOTkzLCJpbnN0aXR1dGlvbk5hbWUiOiJVQyBCZXJrZWxleSBMaWJyYXJpZXMiLCJoYXNPUEFDTGluayI6dHJ1ZSwic2VsZiI6Imh0dHBzOi8vd29ybGRjYXQub3JnL29jbGMtY29uZmlnL2luc3RpdHV0aW9uL2RhdGEvNTY4OSIsImFkZHJlc3MiOnsic3RyZWV0MSI6IjEzMyBEb2UgTGlicmFyeSIsInN0cmVldDIiOiJVbml2ZXJzaXR5IG9mIENhbGlmb3JuaWEiLCJjaXR5IjoiQmVya2VsZXkiLCJzdGF0ZSI6IlVTLUNBIiwicG9zdGFsQ29kZSI6Ijk0NzIwLTYwMDAiLCJjb3VudHJ5IjoiVVMiLCJsYXQiOjM3Ljg3NTc1LCJsb24iOi0xMjIuMjQzNDF9LCJpbnN0aXR1dGlvblR5cGUiOiJBQ0FERU1JQyJ9XX19XX0= - recorded_at: Fri, 10 Jan 2025 20:39:28 GMT + recorded_at: Fri, 10 Jan 2025 23:16:00 GMT recorded_with: VCR 6.3.1 diff --git a/spec/cassettes/libraries_request/execute_holdings_2.yml b/spec/cassettes/libraries_request/execute_holdings_2.yml index 940261c..5a9e348 100644 --- a/spec/cassettes/libraries_request/execute_holdings_2.yml +++ b/spec/cassettes/libraries_request/execute_holdings_2.yml @@ -23,7 +23,7 @@ http_interactions: message: '' headers: Date: - - Fri, 10 Jan 2025 20:39:28 GMT + - Fri, 10 Jan 2025 23:16:01 GMT Content-Type: - application/json;charset=UTF-8 Transfer-Encoding: @@ -31,52 +31,52 @@ http_interactions: Connection: - keep-alive X-Ratelimit-Remaining-Day: - - '149990' + - '149977' Ratelimit-Reset: - - '98432' + - '89039' + Ratelimit-Limit: + - '150000' X-Ratelimit-Limit-Month: - '150000' X-Ratelimit-Remaining-Month: - - '149885' + - '149872' Ratelimit-Remaining: - - '149885' - Ratelimit-Limit: - - '150000' + - '149872' X-Ratelimit-Limit-Day: - '150000' X-Oclc-Requestid: - - 6d4aca90-e156-4ce0-9a61-86f88d0f2592 + - abeeaa01-dc3e-4c33-9a22-780d3dc2fba5 X-Oclc-Selfid: - - 51a1aea4-1c0c-49e0-8d17-11afdb97747d + - 882831f7-0bb9-4a0c-a096-196e7756600a Cache-Control: - max-age=3600 Kong-Request-Id: - - 7dc290f2-87f5-4e2f-81ca-094a9706b8e7#10934049 + - 7dc290f2-87f5-4e2f-81ca-094a9706b8e7#11054751 X-Kong-Upstream-Latency: - - '55' + - '61' X-Kong-Proxy-Latency: - - '1' + - '2' Via: - 1.1 kong/3.8.0.0-enterprise-edition X-Kong-Request-Id: - - bc3ebf275b6e53052effd334d888286c + - df61985951ce062ffcec740f1219100a Strict-Transport-Security: - max-age=31536000; includeSubDomains Cf-Cache-Status: - DYNAMIC Set-Cookie: - - __cf_bm=.6BgzPjw1Z4kvMxnC8O62TXVZ3v6.oIopdtjD5J6lxE-1736541568-1.0.1.1-1O4iwYsftlOWd2rSR46FCfqt0FaWBjxMfBn5281hhncCT0xF0gM1z4KXbFcFEa7ZX312NYXvIdW54pqUt5yDzg; - path=/; expires=Fri, 10-Jan-25 21:09:28 GMT; domain=.oclc.org; HttpOnly; Secure; + - __cf_bm=NBa0fKnDvjvCLnWOUH2nrK6a8KwLaC7KVRetttLRaAw-1736550961-1.0.1.1-N.B1piMN6RJ6uSxdKnqgri2QVgj7nk1QrBVoS3seo.Tg_f65gIKmN.zViDEqEm.qwWHGXaPCgnd3MQuCdFAgzA; + path=/; expires=Fri, 10-Jan-25 23:46:01 GMT; domain=.oclc.org; HttpOnly; Secure; SameSite=None - - _cfuvid=fjaLixOCX0VBvy4FKGNIgpDg3fnooTgv.r8bOcP2xyw-1736541568663-0.0.1.1-604800000; + - _cfuvid=6qV5yqvyV8XfxxXXBhllXpGSzNOLovJOBG470tiEx4o-1736550961313-0.0.1.1-604800000; path=/; domain=.oclc.org; HttpOnly; Secure; SameSite=None Server: - cloudflare Cf-Ray: - - 8fff7a020d191502-LAX + - 90005f51fbd6f7ad-LAX body: encoding: ASCII-8BIT string: !binary |- eyJudW1iZXJPZlJlY29yZHMiOjEsImJyaWVmUmVjb3JkcyI6W3sib2NsY051bWJlciI6Ijg1ODMzMjg1IiwidGl0bGUiOiJUaGUgcXVpZXQgZ2lybCIsImNyZWF0b3IiOiJQZXRlciBIw7hlZyIsImRhdGUiOiLCqTIwMDciLCJtYWNoaW5lUmVhZGFibGVEYXRlIjoiMjAwNyIsImxhbmd1YWdlIjoiZW5nIiwiZ2VuZXJhbEZvcm1hdCI6IkJvb2siLCJzcGVjaWZpY0Zvcm1hdCI6IlByaW50Qm9vayIsImVkaXRpb24iOiIxc3QgQW1lcmljYW4gZWQiLCJwdWJsaXNoZXIiOiJGYXJyYXIsIFN0cmF1cywgYW5kIEdpcm91eCIsInB1YmxpY2F0aW9uUGxhY2UiOiJOZXcgWW9yayIsImlzYm5zIjpbIjk3ODAzNzQyNjM2OTAiLCIwMzc0MjYzNjk4Il0sIm1lcmdlZE9jbGNOdW1iZXJzIjpbIjk2NjQ5Mzg4NiIsIjk2Nzg0MjE0OSIsIjEwMjI3MTU1MzAiLCIxMDYwNjk1OTE0IiwiMTIwMTQ2NDAzNiIsIjEyMzAzNzE4ODYiLCIxMzAzODAxODEyIl0sImNhdGFsb2dpbmdJbmZvIjp7ImNhdGFsb2dpbmdBZ2VuY3kiOiJETEMiLCJjYXRhbG9naW5nTGFuZ3VhZ2UiOiJlbmciLCJsZXZlbE9mQ2F0YWxvZ2luZyI6IiAiLCJ0cmFuc2NyaWJpbmdBZ2VuY3kiOiJETEMifSwiaW5zdGl0dXRpb25Ib2xkaW5nIjp7InRvdGFsSG9sZGluZ0NvdW50IjoxLCJicmllZkhvbGRpbmdzIjpbeyJjb3VudHJ5IjoiVVMiLCJzdGF0ZSI6IlVTLUNBIiwib2NsY1N5bWJvbCI6IlpBUCIsInJlZ2lzdHJ5SWQiOjU2OTAsImluc3RpdHV0aW9uTnVtYmVyIjo0MjE4LCJpbnN0aXR1dGlvbk5hbWUiOiJVbml2ZXJzaXR5IG9mIENhbGlmb3JuaWEsIE5STEYiLCJhbHNvQ2FsbGVkIjoiTm9ydGhlcm4gUmVnaW9uYWwgTGlicmFyeSBGYWNpbGl0eSIsImhhc09QQUNMaW5rIjp0cnVlLCJzZWxmIjoiaHR0cHM6Ly93b3JsZGNhdC5vcmcvb2NsYy1jb25maWcvaW5zdGl0dXRpb24vZGF0YS81NjkwIiwiYWRkcmVzcyI6eyJzdHJlZXQxIjoiUmljaG1vbmQgRmllbGQgU3RhdGlvbiBCbGRnLiA0MDAiLCJzdHJlZXQyIjoiTWVhZGUgYW5kIFNvdXRoIDQ3dGggU3QuIiwiY2l0eSI6IlJpY2htb25kIiwic3RhdGUiOiJVUy1DQSIsInBvc3RhbENvZGUiOiI5NDgwNC00Njk4IiwiY291bnRyeSI6IlVTIiwibGF0IjozNy45MTc2NywibG9uIjotMTIyLjMzMTY4fSwiaW5zdGl0dXRpb25UeXBlIjoiQUNBREVNSUMifV19fV19 - recorded_at: Fri, 10 Jan 2025 20:39:28 GMT + recorded_at: Fri, 10 Jan 2025 23:16:01 GMT recorded_with: VCR 6.3.1 diff --git a/spec/cassettes/libraries_request/execute_holdings_3.yml b/spec/cassettes/libraries_request/execute_holdings_3.yml index db6f332..3aea2f0 100644 --- a/spec/cassettes/libraries_request/execute_holdings_3.yml +++ b/spec/cassettes/libraries_request/execute_holdings_3.yml @@ -23,7 +23,7 @@ http_interactions: message: '' headers: Date: - - Fri, 10 Jan 2025 20:39:29 GMT + - Fri, 10 Jan 2025 23:16:01 GMT Content-Type: - application/json;charset=UTF-8 Transfer-Encoding: @@ -31,52 +31,52 @@ http_interactions: Connection: - keep-alive X-Ratelimit-Remaining-Day: - - '149989' + - '149976' Ratelimit-Reset: - - '98431' + - '89039' + Ratelimit-Limit: + - '150000' X-Ratelimit-Limit-Month: - '150000' X-Ratelimit-Remaining-Month: - - '149884' + - '149871' Ratelimit-Remaining: - - '149884' - Ratelimit-Limit: - - '150000' + - '149871' X-Ratelimit-Limit-Day: - '150000' X-Oclc-Requestid: - - 047b89fb-b6c5-44bf-9634-f0f07450e8cb + - 52d3598d-fbf7-49f9-81a8-fe4b3d45ec0c X-Oclc-Selfid: - - d21778c6-e642-48c6-bc11-5796ab429f77 + - e1e0b4a7-8816-4010-8c71-83e0c800e034 Cache-Control: - max-age=3600 Kong-Request-Id: - - 7dc290f2-87f5-4e2f-81ca-094a9706b8e7#10934061 + - 7dc290f2-87f5-4e2f-81ca-094a9706b8e7#11054752 X-Kong-Upstream-Latency: - - '10' + - '61' X-Kong-Proxy-Latency: - - '1' + - '2' Via: - 1.1 kong/3.8.0.0-enterprise-edition X-Kong-Request-Id: - - 6f17826248a7364597391e5b4b81ab53 + - 052c5438786a132749437e513a4c0806 Strict-Transport-Security: - max-age=31536000; includeSubDomains Cf-Cache-Status: - DYNAMIC Set-Cookie: - - __cf_bm=oxGBLsppi11NUcst7YBw7q2tkPoSkhWEk978tTMBJXM-1736541569-1.0.1.1-gcXmEPrhTEBbVJQrIITULpPrVv2_0ENpvQHvXNplk9RRQiLsLBxA04WUWMzkCDP5KMR.82IE9SBgJNg.GH2pTg; - path=/; expires=Fri, 10-Jan-25 21:09:29 GMT; domain=.oclc.org; HttpOnly; Secure; + - __cf_bm=.fshMty3AmupiZqWwt11fBHfw04ZW_zko4RAJJRAVK8-1736550961-1.0.1.1-vZKkvDpG44V75Hm7Cqsxbl_qpt3yCqOEk_IYAciwXbm9AcGtQnChyrmS2.AD1hQ5Zamxc2oVCVOYiGaAF.TNOQ; + path=/; expires=Fri, 10-Jan-25 23:46:01 GMT; domain=.oclc.org; HttpOnly; Secure; SameSite=None - - _cfuvid=6edYRnYB3nZJkVfdmLjQI5TgY5D2Pua0vakmMB.8ciA-1736541569118-0.0.1.1-604800000; + - _cfuvid=DhfLK37XT8pfChqD7kjZbVWa29txJj408eSMjg2jcE4-1736550961776-0.0.1.1-604800000; path=/; domain=.oclc.org; HttpOnly; Secure; SameSite=None Server: - cloudflare Cf-Ray: - - 8fff7a053ab9cb8a-LAX + - 90005f54fe502ec9-LAX body: encoding: ASCII-8BIT string: !binary |- eyJudW1iZXJPZlJlY29yZHMiOjEsImJyaWVmUmVjb3JkcyI6W3sib2NsY051bWJlciI6Ijg1ODMzMjg1IiwidGl0bGUiOiJUaGUgcXVpZXQgZ2lybCIsImNyZWF0b3IiOiJQZXRlciBIw7hlZyIsImRhdGUiOiLCqTIwMDciLCJtYWNoaW5lUmVhZGFibGVEYXRlIjoiMjAwNyIsImxhbmd1YWdlIjoiZW5nIiwiZ2VuZXJhbEZvcm1hdCI6IkJvb2siLCJzcGVjaWZpY0Zvcm1hdCI6IlByaW50Qm9vayIsImVkaXRpb24iOiIxc3QgQW1lcmljYW4gZWQiLCJwdWJsaXNoZXIiOiJGYXJyYXIsIFN0cmF1cywgYW5kIEdpcm91eCIsInB1YmxpY2F0aW9uUGxhY2UiOiJOZXcgWW9yayIsImlzYm5zIjpbIjk3ODAzNzQyNjM2OTAiLCIwMzc0MjYzNjk4Il0sIm1lcmdlZE9jbGNOdW1iZXJzIjpbIjk2NjQ5Mzg4NiIsIjk2Nzg0MjE0OSIsIjEwMjI3MTU1MzAiLCIxMDYwNjk1OTE0IiwiMTIwMTQ2NDAzNiIsIjEyMzAzNzE4ODYiLCIxMzAzODAxODEyIl0sImNhdGFsb2dpbmdJbmZvIjp7ImNhdGFsb2dpbmdBZ2VuY3kiOiJETEMiLCJjYXRhbG9naW5nTGFuZ3VhZ2UiOiJlbmciLCJsZXZlbE9mQ2F0YWxvZ2luZyI6IiAiLCJ0cmFuc2NyaWJpbmdBZ2VuY3kiOiJETEMifSwiaW5zdGl0dXRpb25Ib2xkaW5nIjp7InRvdGFsSG9sZGluZ0NvdW50IjozLCJicmllZkhvbGRpbmdzIjpbeyJjb3VudHJ5IjoiVVMiLCJzdGF0ZSI6IlVTLUNBIiwib2NsY1N5bWJvbCI6Ik1FUlVDIiwicmVnaXN0cnlJZCI6NDY5MSwiaW5zdGl0dXRpb25OdW1iZXIiOjM2MjEzLCJpbnN0aXR1dGlvbk5hbWUiOiJVbml2ZXJzaXR5IG9mIENhbGlmb3JuaWEsIE1lcmNlZCIsImFsc29DYWxsZWQiOiJVQyBNZXJjZWQgTGlicmFyeSIsImhhc09QQUNMaW5rIjp0cnVlLCJzZWxmIjoiaHR0cHM6Ly93b3JsZGNhdC5vcmcvb2NsYy1jb25maWcvaW5zdGl0dXRpb24vZGF0YS80NjkxIiwiYWRkcmVzcyI6eyJzdHJlZXQxIjoiTGVvICZhbXA7IERvdHRpZSBLb2xsaWdpYW4gTGlicmFyeSIsInN0cmVldDIiOiI1MjAwIE4gTGFrZSBSb2FkIiwiY2l0eSI6Ik1lcmNlZCIsInN0YXRlIjoiVVMtQ0EiLCJwb3N0YWxDb2RlIjoiOTUzNDMiLCJjb3VudHJ5IjoiVVMiLCJsYXQiOjM3LjM2NjI1NywibG9uIjotMTIwLjQyNDU3fSwiaW5zdGl0dXRpb25UeXBlIjoiQUNBREVNSUMifSx7ImNvdW50cnkiOiJVUyIsInN0YXRlIjoiVVMtQ0EiLCJvY2xjU3ltYm9sIjoiQ1VJIiwicmVnaXN0cnlJZCI6NTY1NiwiaW5zdGl0dXRpb25OdW1iZXIiOjExMDEsImluc3RpdHV0aW9uTmFtZSI6IlVuaXZlcnNpdHkgb2YgQ2FsaWZvcm5pYSwgSXJ2aW5lIiwiYWxzb0NhbGxlZCI6Ikxhbmdzb24gTGlicmFyeSIsImhhc09QQUNMaW5rIjp0cnVlLCJzZWxmIjoiaHR0cHM6Ly93b3JsZGNhdC5vcmcvb2NsYy1jb25maWcvaW5zdGl0dXRpb24vZGF0YS81NjU2IiwiYWRkcmVzcyI6eyJzdHJlZXQxIjoiVW5pdiBvZiBDYWxpZm9ybmlhIElydmluZSIsImNpdHkiOiJJcnZpbmUiLCJzdGF0ZSI6IlVTLUNBIiwicG9zdGFsQ29kZSI6IjkyNjk3IiwiY291bnRyeSI6IlVTIiwibGF0IjozMy42NDcyNjYsImxvbiI6LTExNy44NDEwMzR9LCJpbnN0aXR1dGlvblR5cGUiOiJBQ0FERU1JQyJ9LHsiY291bnRyeSI6IlVTIiwic3RhdGUiOiJVUy1DQSIsIm9jbGNTeW1ib2wiOiJDVVkiLCJyZWdpc3RyeUlkIjo1Njg5LCJpbnN0aXR1dGlvbk51bWJlciI6MTk5MywiaW5zdGl0dXRpb25OYW1lIjoiVUMgQmVya2VsZXkgTGlicmFyaWVzIiwiaGFzT1BBQ0xpbmsiOnRydWUsInNlbGYiOiJodHRwczovL3dvcmxkY2F0Lm9yZy9vY2xjLWNvbmZpZy9pbnN0aXR1dGlvbi9kYXRhLzU2ODkiLCJhZGRyZXNzIjp7InN0cmVldDEiOiIxMzMgRG9lIExpYnJhcnkiLCJzdHJlZXQyIjoiVW5pdmVyc2l0eSBvZiBDYWxpZm9ybmlhIiwiY2l0eSI6IkJlcmtlbGV5Iiwic3RhdGUiOiJVUy1DQSIsInBvc3RhbENvZGUiOiI5NDcyMC02MDAwIiwiY291bnRyeSI6IlVTIiwibGF0IjozNy44NzU3NSwibG9uIjotMTIyLjI0MzQxfSwiaW5zdGl0dXRpb25UeXBlIjoiQUNBREVNSUMifV19fV19 - recorded_at: Fri, 10 Jan 2025 20:39:29 GMT + recorded_at: Fri, 10 Jan 2025 23:16:01 GMT recorded_with: VCR 6.3.1 diff --git a/spec/cassettes/libraries_request/execute_holdings_4.yml b/spec/cassettes/libraries_request/execute_holdings_4.yml index 77b05e1..90f89bd 100644 --- a/spec/cassettes/libraries_request/execute_holdings_4.yml +++ b/spec/cassettes/libraries_request/execute_holdings_4.yml @@ -23,7 +23,7 @@ http_interactions: message: '' headers: Date: - - Fri, 10 Jan 2025 20:39:29 GMT + - Fri, 10 Jan 2025 23:16:02 GMT Content-Type: - application/json;charset=UTF-8 Transfer-Encoding: @@ -31,52 +31,52 @@ http_interactions: Connection: - keep-alive X-Ratelimit-Remaining-Day: - - '149988' + - '149975' Ratelimit-Reset: - - '98431' + - '89038' + Ratelimit-Limit: + - '150000' X-Ratelimit-Limit-Month: - '150000' X-Ratelimit-Remaining-Month: - - '149883' + - '149870' Ratelimit-Remaining: - - '149883' - Ratelimit-Limit: - - '150000' + - '149870' X-Ratelimit-Limit-Day: - '150000' X-Oclc-Requestid: - - f3a678ce-2003-43de-b608-0b44ef3503fe + - 47bc30e9-af32-41f7-af85-d1ec07de04bb X-Oclc-Selfid: - - 94171b70-bd39-4f6b-970f-acce4c0a9e8b + - 4064bbed-60c4-4027-a1cf-4fa05e45d453 Cache-Control: - max-age=3600 Kong-Request-Id: - - 7dc290f2-87f5-4e2f-81ca-094a9706b8e7#10934069 + - 7dc290f2-87f5-4e2f-81ca-094a9706b8e7#11054753 X-Kong-Upstream-Latency: - - '20' + - '21' X-Kong-Proxy-Latency: - - '1' + - '2' Via: - 1.1 kong/3.8.0.0-enterprise-edition X-Kong-Request-Id: - - 31670633bf5dea5e0919773f34425304 + - cf0473482b4d62124d15945b180e8a00 Strict-Transport-Security: - max-age=31536000; includeSubDomains Cf-Cache-Status: - DYNAMIC Set-Cookie: - - __cf_bm=PKEMgxlVHzpHH.M4JVx6j3AaRTNP7eUqlUPZn0lBA9o-1736541569-1.0.1.1-9R1IuCNAYVICpOObm3OlOnPj7Tzpm.TOJ4OHXGOqAhUl_vc9dl01ZM_hXFn1SmvW27OzCjOsfG6wwguMBWo5Cg; - path=/; expires=Fri, 10-Jan-25 21:09:29 GMT; domain=.oclc.org; HttpOnly; Secure; + - __cf_bm=HuN37aRM5zCo25DoMaG1_5j3z5L.UPbu0CRgBDc6Xzw-1736550962-1.0.1.1-blZHmHKvQ2JZVYXoVwQTazQD52bAInso9z_dSoif.x6HhzNXxDdT6f5WMYTPA677myFu8wADNb.ljP2DyMa9ow; + path=/; expires=Fri, 10-Jan-25 23:46:02 GMT; domain=.oclc.org; HttpOnly; Secure; SameSite=None - - _cfuvid=ZmEpoK9tMyU5pilLpdXVOvkSOR4XEKeWXc8F6NV.mKM-1736541569626-0.0.1.1-604800000; + - _cfuvid=JuXa6N1ddGHgq_Gi2hKUGAmrZZImweiUHnYvxODppbY-1736550962252-0.0.1.1-604800000; path=/; domain=.oclc.org; HttpOnly; Secure; SameSite=None Server: - cloudflare Cf-Ray: - - 8fff7a085f0b2b8e-LAX + - 90005f582c6f7c35-LAX body: encoding: ASCII-8BIT string: !binary |- eyJudW1iZXJPZlJlY29yZHMiOjEsImJyaWVmUmVjb3JkcyI6W3sib2NsY051bWJlciI6IjEwMDQ1MTkzIiwidGl0bGUiOiJEZSBTYWludC1Mb3VpcyBhIFRyaXBvbGkgcGFyIGxlIExhYyBUY2hhZCA6IHZveWFnZSBhdSB0cmF2ZXJzIGR1IFNvdWRhbiBldCBkdSBTYWhhcmEgYWNjb21wbGkgcGVuZGFudCBsZXMgYW5uZcyBZXMgMTg5MC05MS05MiIsImNyZWF0b3IiOiJQLi1MLiBNb250ZWlsIiwiZGF0ZSI6IlsxODk1P10iLCJtYWNoaW5lUmVhZGFibGVEYXRlIjoiMTg5NSIsImxhbmd1YWdlIjoiZnJlIiwiZ2VuZXJhbEZvcm1hdCI6IkJvb2siLCJzcGVjaWZpY0Zvcm1hdCI6IlByaW50Qm9vayIsInB1Ymxpc2hlciI6IkYuIEFsY2FuIiwicHVibGljYXRpb25QbGFjZSI6IlBhcmlzIiwibWVyZ2VkT2NsY051bWJlcnMiOlsiMTAwNzQ3MDU4MiJdLCJjYXRhbG9naW5nSW5mbyI6eyJjYXRhbG9naW5nQWdlbmN5IjoiQ1VGIiwiY2F0YWxvZ2luZ0xhbmd1YWdlIjoiZW5nIiwibGV2ZWxPZkNhdGFsb2dpbmciOiIgIiwidHJhbnNjcmliaW5nQWdlbmN5IjoiQ1VGIn0sImluc3RpdHV0aW9uSG9sZGluZyI6eyJ0b3RhbEhvbGRpbmdDb3VudCI6MH19XX0= - recorded_at: Fri, 10 Jan 2025 20:39:29 GMT + recorded_at: Fri, 10 Jan 2025 23:16:02 GMT recorded_with: VCR 6.3.1 diff --git a/spec/cassettes/oclc_auth/fetch_token.yml b/spec/cassettes/oclc_auth/fetch_token.yml new file mode 100644 index 0000000..cb3f456 --- /dev/null +++ b/spec/cassettes/oclc_auth/fetch_token.yml @@ -0,0 +1,58 @@ +--- +http_interactions: +- request: + method: post + uri: https://oauth.oclc.org/token?grant_type=client_credentials&scope=wcapi:view_institution_holdings + body: + encoding: UTF-8 + string: '' + headers: + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - application/json + User-Agent: + - Ruby + Authorization: + - "" + response: + status: + code: 200 + message: '' + headers: + X-Oclc-Requestid: + - 471bbf56-055b-4040-9c39-080ba32dabcd + X-Oclc-Selfid: + - a7a2a1c5-57b2-447f-8598-64e7ae7a7947 + Set-Cookie: + - BIGipServermdc1_prdctn_p_oauth-m1-wskeyv3ws-443_8443=3660704266.64288.0000; + expires=Sat, 11-Jan-2025 00:14:58 GMT; path=/; Httponly; Secure + - JSESSIONID=634BDBCD22463783C6634B41F69E7650; Path=/; Secure; HttpOnly; SameSite=None + Vary: + - Access-Control-Request-Headers + - Access-Control-Request-Method + - Origin + Cache-Control: + - no-store + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 ; includeSubDomains + X-Xss-Protection: + - '0' + X-Frame-Options: + - DENY + X-Content-Type-Options: + - nosniff + Content-Type: + - application/json;charset=UTF-8 + Transfer-Encoding: + - chunked + Date: + - Fri, 10 Jan 2025 23:14:57 GMT + body: + encoding: UTF-8 + string: '{"access_token":"tk_rqkymSEsOeMKWgexlfy1GrXu4NcPH2yI4ysU","expires_at":"2025-01-10 + 23:34:58Z","authenticating_institution_id":"5689","scope":"wcapi:view_institution_holdings","principalID":"","context_institution_id":"5689","scopes":"wcapi:view_institution_holdings","token_type":"bearer","expires_in":1199,"principalIDNS":""}' + recorded_at: Fri, 10 Jan 2025 23:14:58 GMT +recorded_with: VCR 6.3.1 diff --git a/spec/cassettes/oclc_auth/refresh_token.yml b/spec/cassettes/oclc_auth/refresh_token.yml index 0bb5b4b..f2dcf38 100644 --- a/spec/cassettes/oclc_auth/refresh_token.yml +++ b/spec/cassettes/oclc_auth/refresh_token.yml @@ -21,13 +21,13 @@ http_interactions: message: '' headers: X-Oclc-Requestid: - - 51138ff0-3921-451a-bbd2-3ea5d2a41975 + - 13435a19-9d7f-4b2c-84bd-29a875fdf192 X-Oclc-Selfid: - - d1dfe09e-bd7c-4651-883d-a38eedcf2f94 + - 6f7211ce-1941-4f5c-9f86-9c43fbe58fed Set-Cookie: - - BIGipServermdc1_prdctn_p_oauth-m1-wskeyv3ws-443_8443=3643927050.64288.0000; - expires=Fri, 10-Jan-2025 21:39:30 GMT; path=/; Httponly; Secure - - JSESSIONID=21C2CF25F4144FFF589006B1308C2456; Path=/; Secure; HttpOnly; SameSite=None + - BIGipServermdc1_prdctn_p_oauth-m1-wskeyv3ws-443_8443=3660704266.64288.0000; + expires=Sat, 11-Jan-2025 00:16:02 GMT; path=/; Httponly; Secure + - JSESSIONID=BE5DD29F9EC4744514E141DB0E966AB3; Path=/; Secure; HttpOnly; SameSite=None Vary: - Access-Control-Request-Headers - Access-Control-Request-Method @@ -49,10 +49,10 @@ http_interactions: Transfer-Encoding: - chunked Date: - - Fri, 10 Jan 2025 20:39:29 GMT + - Fri, 10 Jan 2025 23:16:02 GMT body: encoding: UTF-8 - string: '{"access_token":"tk_QbVm2TGjT0JoSmrBMyLbp0Zqbd0mE5lVjUs4","expires_at":"2025-01-10 - 20:59:30Z","authenticating_institution_id":"5689","scope":"wcapi:view_institution_holdings","principalID":"","context_institution_id":"5689","scopes":"wcapi:view_institution_holdings","token_type":"bearer","expires_in":1199,"principalIDNS":""}' - recorded_at: Fri, 10 Jan 2025 20:39:30 GMT + string: '{"access_token":"tk_dg769sDiFqb55scXXKt29opZbLZaPoI5V16r","expires_at":"2025-01-10 + 23:36:02Z","authenticating_institution_id":"5689","scope":"wcapi:view_institution_holdings","principalID":"","context_institution_id":"5689","scopes":"wcapi:view_institution_holdings","token_type":"bearer","expires_in":1199,"principalIDNS":""}' + recorded_at: Fri, 10 Jan 2025 23:16:02 GMT recorded_with: VCR 6.3.1 From 5d87b6b7eadcf4485c3d8c55f82501bc011784e0 Mon Sep 17 00:00:00 2001 From: Steve Sullivan Date: Mon, 13 Jan 2025 14:55:33 -0800 Subject: [PATCH 4/5] update changes doc --- CHANGES.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/CHANGES.md b/CHANGES.md index 6bf13ae..79f786a 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -1,3 +1,7 @@ +# 4.1.0 (2025-01-10) + +- Fixed token refresh function and test + # 4.0.0 (2025-01-08) - Update from Worldcat API v1 to API v2 From 7bed44e50c21bc6cec3663205861bcef1d7bbb81 Mon Sep 17 00:00:00 2001 From: Steve Sullivan Date: Mon, 13 Jan 2025 15:14:08 -0800 Subject: [PATCH 5/5] update cassettes --- .../libraries_request/execute_holdings_1.yml | 44 +++++++++---------- .../libraries_request/execute_holdings_2.yml | 42 +++++++++--------- .../libraries_request/execute_holdings_3.yml | 44 +++++++++---------- .../libraries_request/execute_holdings_4.yml | 40 ++++++++--------- spec/cassettes/oclc_auth/refresh_token.yml | 18 ++++---- 5 files changed, 94 insertions(+), 94 deletions(-) diff --git a/spec/cassettes/libraries_request/execute_holdings_1.yml b/spec/cassettes/libraries_request/execute_holdings_1.yml index 1931257..7725903 100644 --- a/spec/cassettes/libraries_request/execute_holdings_1.yml +++ b/spec/cassettes/libraries_request/execute_holdings_1.yml @@ -23,60 +23,60 @@ http_interactions: message: '' headers: Date: - - Fri, 10 Jan 2025 23:16:00 GMT + - Mon, 13 Jan 2025 23:13:44 GMT Content-Type: - application/json;charset=UTF-8 Transfer-Encoding: - chunked Connection: - keep-alive - X-Ratelimit-Remaining-Day: - - '149978' - Ratelimit-Reset: - - '89040' - Ratelimit-Limit: - - '150000' - X-Ratelimit-Limit-Month: - - '150000' X-Ratelimit-Remaining-Month: - - '149873' + - '149995' Ratelimit-Remaining: - - '149873' + - '149995' + X-Ratelimit-Limit-Month: + - '150000' X-Ratelimit-Limit-Day: - '150000' + X-Ratelimit-Remaining-Day: + - '149995' + Ratelimit-Limit: + - '150000' + Ratelimit-Reset: + - '2421977' X-Oclc-Requestid: - - 715e2ff7-aeb1-4022-a917-d98a31fa7c05 + - 02ac90aa-995c-4e46-8903-9699c67da4af X-Oclc-Selfid: - - 007c1df3-f945-4fc5-8383-ff763196dcf8 + - 18d1642c-e750-44ed-9f3c-d13b295ed46e Cache-Control: - max-age=3600 Kong-Request-Id: - - 7dc290f2-87f5-4e2f-81ca-094a9706b8e7#11054745 + - 7dc290f2-87f5-4e2f-81ca-094a9706b8e7#12758324 X-Kong-Upstream-Latency: - - '442' + - '1026' X-Kong-Proxy-Latency: - - '33' + - '42' Via: - 1.1 kong/3.8.0.0-enterprise-edition X-Kong-Request-Id: - - 3520b44d579a5f21e109e44013c98b55 + - de4481399d965a1f9fa509747fa17c39 Strict-Transport-Security: - max-age=31536000; includeSubDomains Cf-Cache-Status: - DYNAMIC Set-Cookie: - - __cf_bm=axuSNCAS7tBUyWjFBc7BYJJsAUvEmWWUWxDtXbMsd3w-1736550960-1.0.1.1-anfpl99zeDioxw2T7TvBClkxmTy0YOcXmiE5Qksku62XM6EG3PblyTgRhKlOKRZNDw3pLAguTDNSKFTYD73OVg; - path=/; expires=Fri, 10-Jan-25 23:46:00 GMT; domain=.oclc.org; HttpOnly; Secure; + - __cf_bm=Z1Vfe.6PiZieFpJgoNc3hFWRTR0ZRYfQZWQjkhK3hXA-1736810024-1.0.1.1-6pioyKOetbDIBcsg0tFfjf4CVSFqWS4pcr9dUkUMqTd_pld9eU6lFTMXF4Mkv3No5AlxfYMsz1QAuUUjjJKz1g; + path=/; expires=Mon, 13-Jan-25 23:43:44 GMT; domain=.oclc.org; HttpOnly; Secure; SameSite=None - - _cfuvid=8tN879tMDcy4gWRXftqWFFe6WiVpB67F9CNuSojOqC0-1736550960834-0.0.1.1-604800000; + - _cfuvid=ZJdwHkMRBf.CzVNCCIg1NhSEJdeJsli1rZe80WsnmZw-1736810024761-0.0.1.1-604800000; path=/; domain=.oclc.org; HttpOnly; Secure; SameSite=None Server: - cloudflare Cf-Ray: - - 90005f4cab02cba6-LAX + - 901914165abf2ee4-LAX body: encoding: ASCII-8BIT string: !binary |- eyJudW1iZXJPZlJlY29yZHMiOjEsImJyaWVmUmVjb3JkcyI6W3sib2NsY051bWJlciI6Ijg1ODMzMjg1IiwidGl0bGUiOiJUaGUgcXVpZXQgZ2lybCIsImNyZWF0b3IiOiJQZXRlciBIw7hlZyIsImRhdGUiOiLCqTIwMDciLCJtYWNoaW5lUmVhZGFibGVEYXRlIjoiMjAwNyIsImxhbmd1YWdlIjoiZW5nIiwiZ2VuZXJhbEZvcm1hdCI6IkJvb2siLCJzcGVjaWZpY0Zvcm1hdCI6IlByaW50Qm9vayIsImVkaXRpb24iOiIxc3QgQW1lcmljYW4gZWQiLCJwdWJsaXNoZXIiOiJGYXJyYXIsIFN0cmF1cywgYW5kIEdpcm91eCIsInB1YmxpY2F0aW9uUGxhY2UiOiJOZXcgWW9yayIsImlzYm5zIjpbIjk3ODAzNzQyNjM2OTAiLCIwMzc0MjYzNjk4Il0sIm1lcmdlZE9jbGNOdW1iZXJzIjpbIjk2NjQ5Mzg4NiIsIjk2Nzg0MjE0OSIsIjEwMjI3MTU1MzAiLCIxMDYwNjk1OTE0IiwiMTIwMTQ2NDAzNiIsIjEyMzAzNzE4ODYiLCIxMzAzODAxODEyIl0sImNhdGFsb2dpbmdJbmZvIjp7ImNhdGFsb2dpbmdBZ2VuY3kiOiJETEMiLCJjYXRhbG9naW5nTGFuZ3VhZ2UiOiJlbmciLCJsZXZlbE9mQ2F0YWxvZ2luZyI6IiAiLCJ0cmFuc2NyaWJpbmdBZ2VuY3kiOiJETEMifSwiaW5zdGl0dXRpb25Ib2xkaW5nIjp7InRvdGFsSG9sZGluZ0NvdW50Ijo0LCJicmllZkhvbGRpbmdzIjpbeyJjb3VudHJ5IjoiVVMiLCJzdGF0ZSI6IlVTLUNBIiwib2NsY1N5bWJvbCI6Ik1FUlVDIiwicmVnaXN0cnlJZCI6NDY5MSwiaW5zdGl0dXRpb25OdW1iZXIiOjM2MjEzLCJpbnN0aXR1dGlvbk5hbWUiOiJVbml2ZXJzaXR5IG9mIENhbGlmb3JuaWEsIE1lcmNlZCIsImFsc29DYWxsZWQiOiJVQyBNZXJjZWQgTGlicmFyeSIsImhhc09QQUNMaW5rIjp0cnVlLCJzZWxmIjoiaHR0cHM6Ly93b3JsZGNhdC5vcmcvb2NsYy1jb25maWcvaW5zdGl0dXRpb24vZGF0YS80NjkxIiwiYWRkcmVzcyI6eyJzdHJlZXQxIjoiTGVvICZhbXA7IERvdHRpZSBLb2xsaWdpYW4gTGlicmFyeSIsInN0cmVldDIiOiI1MjAwIE4gTGFrZSBSb2FkIiwiY2l0eSI6Ik1lcmNlZCIsInN0YXRlIjoiVVMtQ0EiLCJwb3N0YWxDb2RlIjoiOTUzNDMiLCJjb3VudHJ5IjoiVVMiLCJsYXQiOjM3LjM2NjI1NywibG9uIjotMTIwLjQyNDU3fSwiaW5zdGl0dXRpb25UeXBlIjoiQUNBREVNSUMifSx7ImNvdW50cnkiOiJVUyIsInN0YXRlIjoiVVMtQ0EiLCJvY2xjU3ltYm9sIjoiWkFQIiwicmVnaXN0cnlJZCI6NTY5MCwiaW5zdGl0dXRpb25OdW1iZXIiOjQyMTgsImluc3RpdHV0aW9uTmFtZSI6IlVuaXZlcnNpdHkgb2YgQ2FsaWZvcm5pYSwgTlJMRiIsImFsc29DYWxsZWQiOiJOb3J0aGVybiBSZWdpb25hbCBMaWJyYXJ5IEZhY2lsaXR5IiwiaGFzT1BBQ0xpbmsiOnRydWUsInNlbGYiOiJodHRwczovL3dvcmxkY2F0Lm9yZy9vY2xjLWNvbmZpZy9pbnN0aXR1dGlvbi9kYXRhLzU2OTAiLCJhZGRyZXNzIjp7InN0cmVldDEiOiJSaWNobW9uZCBGaWVsZCBTdGF0aW9uIEJsZGcuIDQwMCIsInN0cmVldDIiOiJNZWFkZSBhbmQgU291dGggNDd0aCBTdC4iLCJjaXR5IjoiUmljaG1vbmQiLCJzdGF0ZSI6IlVTLUNBIiwicG9zdGFsQ29kZSI6Ijk0ODA0LTQ2OTgiLCJjb3VudHJ5IjoiVVMiLCJsYXQiOjM3LjkxNzY3LCJsb24iOi0xMjIuMzMxNjh9LCJpbnN0aXR1dGlvblR5cGUiOiJBQ0FERU1JQyJ9LHsiY291bnRyeSI6IlVTIiwic3RhdGUiOiJVUy1DQSIsIm9jbGNTeW1ib2wiOiJDVUkiLCJyZWdpc3RyeUlkIjo1NjU2LCJpbnN0aXR1dGlvbk51bWJlciI6MTEwMSwiaW5zdGl0dXRpb25OYW1lIjoiVW5pdmVyc2l0eSBvZiBDYWxpZm9ybmlhLCBJcnZpbmUiLCJhbHNvQ2FsbGVkIjoiTGFuZ3NvbiBMaWJyYXJ5IiwiaGFzT1BBQ0xpbmsiOnRydWUsInNlbGYiOiJodHRwczovL3dvcmxkY2F0Lm9yZy9vY2xjLWNvbmZpZy9pbnN0aXR1dGlvbi9kYXRhLzU2NTYiLCJhZGRyZXNzIjp7InN0cmVldDEiOiJVbml2IG9mIENhbGlmb3JuaWEgSXJ2aW5lIiwiY2l0eSI6IklydmluZSIsInN0YXRlIjoiVVMtQ0EiLCJwb3N0YWxDb2RlIjoiOTI2OTciLCJjb3VudHJ5IjoiVVMiLCJsYXQiOjMzLjY0NzI2NiwibG9uIjotMTE3Ljg0MTAzNH0sImluc3RpdHV0aW9uVHlwZSI6IkFDQURFTUlDIn0seyJjb3VudHJ5IjoiVVMiLCJzdGF0ZSI6IlVTLUNBIiwib2NsY1N5bWJvbCI6IkNVWSIsInJlZ2lzdHJ5SWQiOjU2ODksImluc3RpdHV0aW9uTnVtYmVyIjoxOTkzLCJpbnN0aXR1dGlvbk5hbWUiOiJVQyBCZXJrZWxleSBMaWJyYXJpZXMiLCJoYXNPUEFDTGluayI6dHJ1ZSwic2VsZiI6Imh0dHBzOi8vd29ybGRjYXQub3JnL29jbGMtY29uZmlnL2luc3RpdHV0aW9uL2RhdGEvNTY4OSIsImFkZHJlc3MiOnsic3RyZWV0MSI6IjEzMyBEb2UgTGlicmFyeSIsInN0cmVldDIiOiJVbml2ZXJzaXR5IG9mIENhbGlmb3JuaWEiLCJjaXR5IjoiQmVya2VsZXkiLCJzdGF0ZSI6IlVTLUNBIiwicG9zdGFsQ29kZSI6Ijk0NzIwLTYwMDAiLCJjb3VudHJ5IjoiVVMiLCJsYXQiOjM3Ljg3NTc1LCJsb24iOi0xMjIuMjQzNDF9LCJpbnN0aXR1dGlvblR5cGUiOiJBQ0FERU1JQyJ9XX19XX0= - recorded_at: Fri, 10 Jan 2025 23:16:00 GMT + recorded_at: Mon, 13 Jan 2025 23:13:44 GMT recorded_with: VCR 6.3.1 diff --git a/spec/cassettes/libraries_request/execute_holdings_2.yml b/spec/cassettes/libraries_request/execute_holdings_2.yml index 5a9e348..d4041d9 100644 --- a/spec/cassettes/libraries_request/execute_holdings_2.yml +++ b/spec/cassettes/libraries_request/execute_holdings_2.yml @@ -23,60 +23,60 @@ http_interactions: message: '' headers: Date: - - Fri, 10 Jan 2025 23:16:01 GMT + - Mon, 13 Jan 2025 23:13:45 GMT Content-Type: - application/json;charset=UTF-8 Transfer-Encoding: - chunked Connection: - keep-alive - X-Ratelimit-Remaining-Day: - - '149977' - Ratelimit-Reset: - - '89039' - Ratelimit-Limit: - - '150000' - X-Ratelimit-Limit-Month: - - '150000' X-Ratelimit-Remaining-Month: - - '149872' + - '149994' Ratelimit-Remaining: - - '149872' + - '149994' + X-Ratelimit-Limit-Month: + - '150000' X-Ratelimit-Limit-Day: - '150000' + X-Ratelimit-Remaining-Day: + - '149994' + Ratelimit-Limit: + - '150000' + Ratelimit-Reset: + - '2421975' X-Oclc-Requestid: - - abeeaa01-dc3e-4c33-9a22-780d3dc2fba5 + - b09e9457-bad9-4d1a-a6c3-9d29e6a304e1 X-Oclc-Selfid: - - 882831f7-0bb9-4a0c-a096-196e7756600a + - f89f6389-35c9-4f33-8120-0adb77298526 Cache-Control: - max-age=3600 Kong-Request-Id: - - 7dc290f2-87f5-4e2f-81ca-094a9706b8e7#11054751 + - 7dc290f2-87f5-4e2f-81ca-094a9706b8e7#12758341 X-Kong-Upstream-Latency: - - '61' + - '59' X-Kong-Proxy-Latency: - '2' Via: - 1.1 kong/3.8.0.0-enterprise-edition X-Kong-Request-Id: - - df61985951ce062ffcec740f1219100a + - 261a904cbcbc0b7c0169ed7d79a59b38 Strict-Transport-Security: - max-age=31536000; includeSubDomains Cf-Cache-Status: - DYNAMIC Set-Cookie: - - __cf_bm=NBa0fKnDvjvCLnWOUH2nrK6a8KwLaC7KVRetttLRaAw-1736550961-1.0.1.1-N.B1piMN6RJ6uSxdKnqgri2QVgj7nk1QrBVoS3seo.Tg_f65gIKmN.zViDEqEm.qwWHGXaPCgnd3MQuCdFAgzA; - path=/; expires=Fri, 10-Jan-25 23:46:01 GMT; domain=.oclc.org; HttpOnly; Secure; + - __cf_bm=VafgAPnEMRdYBqbFx.wjCPjgqrHQcLtuYco1Z5sShWM-1736810025-1.0.1.1-tncICuQIzFn_DyXiAvzSpKC.CbgN4flE5_lFmSZQz6l4iTVrzZJ5rRV2r5G1YcpdPy0.ld4h63tzlp39O8khmQ; + path=/; expires=Mon, 13-Jan-25 23:43:45 GMT; domain=.oclc.org; HttpOnly; Secure; SameSite=None - - _cfuvid=6qV5yqvyV8XfxxXXBhllXpGSzNOLovJOBG470tiEx4o-1736550961313-0.0.1.1-604800000; + - _cfuvid=mx2c9QMr8MIE5uYOKAIEDutn_0v3uhOt9Z6un9ar2EA-1736810025210-0.0.1.1-604800000; path=/; domain=.oclc.org; HttpOnly; Secure; SameSite=None Server: - cloudflare Cf-Ray: - - 90005f51fbd6f7ad-LAX + - 9019141f8b650fba-LAX body: encoding: ASCII-8BIT string: !binary |- eyJudW1iZXJPZlJlY29yZHMiOjEsImJyaWVmUmVjb3JkcyI6W3sib2NsY051bWJlciI6Ijg1ODMzMjg1IiwidGl0bGUiOiJUaGUgcXVpZXQgZ2lybCIsImNyZWF0b3IiOiJQZXRlciBIw7hlZyIsImRhdGUiOiLCqTIwMDciLCJtYWNoaW5lUmVhZGFibGVEYXRlIjoiMjAwNyIsImxhbmd1YWdlIjoiZW5nIiwiZ2VuZXJhbEZvcm1hdCI6IkJvb2siLCJzcGVjaWZpY0Zvcm1hdCI6IlByaW50Qm9vayIsImVkaXRpb24iOiIxc3QgQW1lcmljYW4gZWQiLCJwdWJsaXNoZXIiOiJGYXJyYXIsIFN0cmF1cywgYW5kIEdpcm91eCIsInB1YmxpY2F0aW9uUGxhY2UiOiJOZXcgWW9yayIsImlzYm5zIjpbIjk3ODAzNzQyNjM2OTAiLCIwMzc0MjYzNjk4Il0sIm1lcmdlZE9jbGNOdW1iZXJzIjpbIjk2NjQ5Mzg4NiIsIjk2Nzg0MjE0OSIsIjEwMjI3MTU1MzAiLCIxMDYwNjk1OTE0IiwiMTIwMTQ2NDAzNiIsIjEyMzAzNzE4ODYiLCIxMzAzODAxODEyIl0sImNhdGFsb2dpbmdJbmZvIjp7ImNhdGFsb2dpbmdBZ2VuY3kiOiJETEMiLCJjYXRhbG9naW5nTGFuZ3VhZ2UiOiJlbmciLCJsZXZlbE9mQ2F0YWxvZ2luZyI6IiAiLCJ0cmFuc2NyaWJpbmdBZ2VuY3kiOiJETEMifSwiaW5zdGl0dXRpb25Ib2xkaW5nIjp7InRvdGFsSG9sZGluZ0NvdW50IjoxLCJicmllZkhvbGRpbmdzIjpbeyJjb3VudHJ5IjoiVVMiLCJzdGF0ZSI6IlVTLUNBIiwib2NsY1N5bWJvbCI6IlpBUCIsInJlZ2lzdHJ5SWQiOjU2OTAsImluc3RpdHV0aW9uTnVtYmVyIjo0MjE4LCJpbnN0aXR1dGlvbk5hbWUiOiJVbml2ZXJzaXR5IG9mIENhbGlmb3JuaWEsIE5STEYiLCJhbHNvQ2FsbGVkIjoiTm9ydGhlcm4gUmVnaW9uYWwgTGlicmFyeSBGYWNpbGl0eSIsImhhc09QQUNMaW5rIjp0cnVlLCJzZWxmIjoiaHR0cHM6Ly93b3JsZGNhdC5vcmcvb2NsYy1jb25maWcvaW5zdGl0dXRpb24vZGF0YS81NjkwIiwiYWRkcmVzcyI6eyJzdHJlZXQxIjoiUmljaG1vbmQgRmllbGQgU3RhdGlvbiBCbGRnLiA0MDAiLCJzdHJlZXQyIjoiTWVhZGUgYW5kIFNvdXRoIDQ3dGggU3QuIiwiY2l0eSI6IlJpY2htb25kIiwic3RhdGUiOiJVUy1DQSIsInBvc3RhbENvZGUiOiI5NDgwNC00Njk4IiwiY291bnRyeSI6IlVTIiwibGF0IjozNy45MTc2NywibG9uIjotMTIyLjMzMTY4fSwiaW5zdGl0dXRpb25UeXBlIjoiQUNBREVNSUMifV19fV19 - recorded_at: Fri, 10 Jan 2025 23:16:01 GMT + recorded_at: Mon, 13 Jan 2025 23:13:45 GMT recorded_with: VCR 6.3.1 diff --git a/spec/cassettes/libraries_request/execute_holdings_3.yml b/spec/cassettes/libraries_request/execute_holdings_3.yml index 3aea2f0..6699590 100644 --- a/spec/cassettes/libraries_request/execute_holdings_3.yml +++ b/spec/cassettes/libraries_request/execute_holdings_3.yml @@ -23,60 +23,60 @@ http_interactions: message: '' headers: Date: - - Fri, 10 Jan 2025 23:16:01 GMT + - Mon, 13 Jan 2025 23:13:46 GMT Content-Type: - application/json;charset=UTF-8 Transfer-Encoding: - chunked Connection: - keep-alive - X-Ratelimit-Remaining-Day: - - '149976' - Ratelimit-Reset: - - '89039' - Ratelimit-Limit: - - '150000' - X-Ratelimit-Limit-Month: - - '150000' X-Ratelimit-Remaining-Month: - - '149871' + - '149993' Ratelimit-Remaining: - - '149871' + - '149993' + X-Ratelimit-Limit-Month: + - '150000' X-Ratelimit-Limit-Day: - '150000' + X-Ratelimit-Remaining-Day: + - '149993' + Ratelimit-Limit: + - '150000' + Ratelimit-Reset: + - '2421975' X-Oclc-Requestid: - - 52d3598d-fbf7-49f9-81a8-fe4b3d45ec0c + - 561090c2-ced0-44b5-a7ae-d55d65d5921b X-Oclc-Selfid: - - e1e0b4a7-8816-4010-8c71-83e0c800e034 + - e3ede4d1-dc72-49e7-96da-c6102d7e4b4c Cache-Control: - max-age=3600 Kong-Request-Id: - - 7dc290f2-87f5-4e2f-81ca-094a9706b8e7#11054752 + - 7dc290f2-87f5-4e2f-81ca-094a9706b8e7#12758345 X-Kong-Upstream-Latency: - - '61' + - '693' X-Kong-Proxy-Latency: - - '2' + - '1' Via: - 1.1 kong/3.8.0.0-enterprise-edition X-Kong-Request-Id: - - 052c5438786a132749437e513a4c0806 + - 8492190bdc6b5f36311be84f868f5357 Strict-Transport-Security: - max-age=31536000; includeSubDomains Cf-Cache-Status: - DYNAMIC Set-Cookie: - - __cf_bm=.fshMty3AmupiZqWwt11fBHfw04ZW_zko4RAJJRAVK8-1736550961-1.0.1.1-vZKkvDpG44V75Hm7Cqsxbl_qpt3yCqOEk_IYAciwXbm9AcGtQnChyrmS2.AD1hQ5Zamxc2oVCVOYiGaAF.TNOQ; - path=/; expires=Fri, 10-Jan-25 23:46:01 GMT; domain=.oclc.org; HttpOnly; Secure; + - __cf_bm=W30ELwjVWhBnGA6cdQGbD0ua7VlMvjrN_FgPuLkb5g8-1736810026-1.0.1.1-2whzXAQq2OwaKSbAJKNw3VBK9H4d35OW9RQApR5o3qRllE40xTbFOmqv4SMrBtKpcMhiPvQNRxCnVqEd1DQs6g; + path=/; expires=Mon, 13-Jan-25 23:43:46 GMT; domain=.oclc.org; HttpOnly; Secure; SameSite=None - - _cfuvid=DhfLK37XT8pfChqD7kjZbVWa29txJj408eSMjg2jcE4-1736550961776-0.0.1.1-604800000; + - _cfuvid=NQvm4sTO9nwwUTIyhJ50vaTnhaxpiRs1pLh2S6jPLsQ-1736810026371-0.0.1.1-604800000; path=/; domain=.oclc.org; HttpOnly; Secure; SameSite=None Server: - cloudflare Cf-Ray: - - 90005f54fe502ec9-LAX + - 90191422befb2f03-LAX body: encoding: ASCII-8BIT string: !binary |- eyJudW1iZXJPZlJlY29yZHMiOjEsImJyaWVmUmVjb3JkcyI6W3sib2NsY051bWJlciI6Ijg1ODMzMjg1IiwidGl0bGUiOiJUaGUgcXVpZXQgZ2lybCIsImNyZWF0b3IiOiJQZXRlciBIw7hlZyIsImRhdGUiOiLCqTIwMDciLCJtYWNoaW5lUmVhZGFibGVEYXRlIjoiMjAwNyIsImxhbmd1YWdlIjoiZW5nIiwiZ2VuZXJhbEZvcm1hdCI6IkJvb2siLCJzcGVjaWZpY0Zvcm1hdCI6IlByaW50Qm9vayIsImVkaXRpb24iOiIxc3QgQW1lcmljYW4gZWQiLCJwdWJsaXNoZXIiOiJGYXJyYXIsIFN0cmF1cywgYW5kIEdpcm91eCIsInB1YmxpY2F0aW9uUGxhY2UiOiJOZXcgWW9yayIsImlzYm5zIjpbIjk3ODAzNzQyNjM2OTAiLCIwMzc0MjYzNjk4Il0sIm1lcmdlZE9jbGNOdW1iZXJzIjpbIjk2NjQ5Mzg4NiIsIjk2Nzg0MjE0OSIsIjEwMjI3MTU1MzAiLCIxMDYwNjk1OTE0IiwiMTIwMTQ2NDAzNiIsIjEyMzAzNzE4ODYiLCIxMzAzODAxODEyIl0sImNhdGFsb2dpbmdJbmZvIjp7ImNhdGFsb2dpbmdBZ2VuY3kiOiJETEMiLCJjYXRhbG9naW5nTGFuZ3VhZ2UiOiJlbmciLCJsZXZlbE9mQ2F0YWxvZ2luZyI6IiAiLCJ0cmFuc2NyaWJpbmdBZ2VuY3kiOiJETEMifSwiaW5zdGl0dXRpb25Ib2xkaW5nIjp7InRvdGFsSG9sZGluZ0NvdW50IjozLCJicmllZkhvbGRpbmdzIjpbeyJjb3VudHJ5IjoiVVMiLCJzdGF0ZSI6IlVTLUNBIiwib2NsY1N5bWJvbCI6Ik1FUlVDIiwicmVnaXN0cnlJZCI6NDY5MSwiaW5zdGl0dXRpb25OdW1iZXIiOjM2MjEzLCJpbnN0aXR1dGlvbk5hbWUiOiJVbml2ZXJzaXR5IG9mIENhbGlmb3JuaWEsIE1lcmNlZCIsImFsc29DYWxsZWQiOiJVQyBNZXJjZWQgTGlicmFyeSIsImhhc09QQUNMaW5rIjp0cnVlLCJzZWxmIjoiaHR0cHM6Ly93b3JsZGNhdC5vcmcvb2NsYy1jb25maWcvaW5zdGl0dXRpb24vZGF0YS80NjkxIiwiYWRkcmVzcyI6eyJzdHJlZXQxIjoiTGVvICZhbXA7IERvdHRpZSBLb2xsaWdpYW4gTGlicmFyeSIsInN0cmVldDIiOiI1MjAwIE4gTGFrZSBSb2FkIiwiY2l0eSI6Ik1lcmNlZCIsInN0YXRlIjoiVVMtQ0EiLCJwb3N0YWxDb2RlIjoiOTUzNDMiLCJjb3VudHJ5IjoiVVMiLCJsYXQiOjM3LjM2NjI1NywibG9uIjotMTIwLjQyNDU3fSwiaW5zdGl0dXRpb25UeXBlIjoiQUNBREVNSUMifSx7ImNvdW50cnkiOiJVUyIsInN0YXRlIjoiVVMtQ0EiLCJvY2xjU3ltYm9sIjoiQ1VJIiwicmVnaXN0cnlJZCI6NTY1NiwiaW5zdGl0dXRpb25OdW1iZXIiOjExMDEsImluc3RpdHV0aW9uTmFtZSI6IlVuaXZlcnNpdHkgb2YgQ2FsaWZvcm5pYSwgSXJ2aW5lIiwiYWxzb0NhbGxlZCI6Ikxhbmdzb24gTGlicmFyeSIsImhhc09QQUNMaW5rIjp0cnVlLCJzZWxmIjoiaHR0cHM6Ly93b3JsZGNhdC5vcmcvb2NsYy1jb25maWcvaW5zdGl0dXRpb24vZGF0YS81NjU2IiwiYWRkcmVzcyI6eyJzdHJlZXQxIjoiVW5pdiBvZiBDYWxpZm9ybmlhIElydmluZSIsImNpdHkiOiJJcnZpbmUiLCJzdGF0ZSI6IlVTLUNBIiwicG9zdGFsQ29kZSI6IjkyNjk3IiwiY291bnRyeSI6IlVTIiwibGF0IjozMy42NDcyNjYsImxvbiI6LTExNy44NDEwMzR9LCJpbnN0aXR1dGlvblR5cGUiOiJBQ0FERU1JQyJ9LHsiY291bnRyeSI6IlVTIiwic3RhdGUiOiJVUy1DQSIsIm9jbGNTeW1ib2wiOiJDVVkiLCJyZWdpc3RyeUlkIjo1Njg5LCJpbnN0aXR1dGlvbk51bWJlciI6MTk5MywiaW5zdGl0dXRpb25OYW1lIjoiVUMgQmVya2VsZXkgTGlicmFyaWVzIiwiaGFzT1BBQ0xpbmsiOnRydWUsInNlbGYiOiJodHRwczovL3dvcmxkY2F0Lm9yZy9vY2xjLWNvbmZpZy9pbnN0aXR1dGlvbi9kYXRhLzU2ODkiLCJhZGRyZXNzIjp7InN0cmVldDEiOiIxMzMgRG9lIExpYnJhcnkiLCJzdHJlZXQyIjoiVW5pdmVyc2l0eSBvZiBDYWxpZm9ybmlhIiwiY2l0eSI6IkJlcmtlbGV5Iiwic3RhdGUiOiJVUy1DQSIsInBvc3RhbENvZGUiOiI5NDcyMC02MDAwIiwiY291bnRyeSI6IlVTIiwibGF0IjozNy44NzU3NSwibG9uIjotMTIyLjI0MzQxfSwiaW5zdGl0dXRpb25UeXBlIjoiQUNBREVNSUMifV19fV19 - recorded_at: Fri, 10 Jan 2025 23:16:01 GMT + recorded_at: Mon, 13 Jan 2025 23:13:46 GMT recorded_with: VCR 6.3.1 diff --git a/spec/cassettes/libraries_request/execute_holdings_4.yml b/spec/cassettes/libraries_request/execute_holdings_4.yml index 90f89bd..876b644 100644 --- a/spec/cassettes/libraries_request/execute_holdings_4.yml +++ b/spec/cassettes/libraries_request/execute_holdings_4.yml @@ -23,60 +23,60 @@ http_interactions: message: '' headers: Date: - - Fri, 10 Jan 2025 23:16:02 GMT + - Mon, 13 Jan 2025 23:13:46 GMT Content-Type: - application/json;charset=UTF-8 Transfer-Encoding: - chunked Connection: - keep-alive - X-Ratelimit-Remaining-Day: - - '149975' - Ratelimit-Reset: - - '89038' - Ratelimit-Limit: - - '150000' X-Ratelimit-Limit-Month: - '150000' X-Ratelimit-Remaining-Month: - - '149870' - Ratelimit-Remaining: - - '149870' + - '149992' X-Ratelimit-Limit-Day: - '150000' + X-Ratelimit-Remaining-Day: + - '149992' + Ratelimit-Remaining: + - '149992' + Ratelimit-Limit: + - '150000' + Ratelimit-Reset: + - '2421974' X-Oclc-Requestid: - - 47bc30e9-af32-41f7-af85-d1ec07de04bb + - d4854fec-674b-488a-8fd0-1203a36034f7 X-Oclc-Selfid: - - 4064bbed-60c4-4027-a1cf-4fa05e45d453 + - 766664b8-e444-4217-9915-6c436b5c3bb4 Cache-Control: - max-age=3600 Kong-Request-Id: - - 7dc290f2-87f5-4e2f-81ca-094a9706b8e7#11054753 + - 27299ae4-e58f-4a3d-9c9d-1d539cf14d33#751811 X-Kong-Upstream-Latency: - - '21' + - '154' X-Kong-Proxy-Latency: - '2' Via: - 1.1 kong/3.8.0.0-enterprise-edition X-Kong-Request-Id: - - cf0473482b4d62124d15945b180e8a00 + - de5a2a307ad5855f3e0bb50dff3f2d1b Strict-Transport-Security: - max-age=31536000; includeSubDomains Cf-Cache-Status: - DYNAMIC Set-Cookie: - - __cf_bm=HuN37aRM5zCo25DoMaG1_5j3z5L.UPbu0CRgBDc6Xzw-1736550962-1.0.1.1-blZHmHKvQ2JZVYXoVwQTazQD52bAInso9z_dSoif.x6HhzNXxDdT6f5WMYTPA677myFu8wADNb.ljP2DyMa9ow; - path=/; expires=Fri, 10-Jan-25 23:46:02 GMT; domain=.oclc.org; HttpOnly; Secure; + - __cf_bm=ORttkfWGk90435YkLhbL200NZEj4jovFsomOl0XbP.w-1736810026-1.0.1.1-C4A0e4RlJghmgunm7gzZgh_dEzJohqZ6m9K6fFP4oeaLLZdR19rFHAKdW2YJb8wcU9m._uY3buBf_ekpJ8v3sA; + path=/; expires=Mon, 13-Jan-25 23:43:46 GMT; domain=.oclc.org; HttpOnly; Secure; SameSite=None - - _cfuvid=JuXa6N1ddGHgq_Gi2hKUGAmrZZImweiUHnYvxODppbY-1736550962252-0.0.1.1-604800000; + - _cfuvid=0bcUhvkERfqTTyzNzzvRDFCwOCPK2kAaMx6Jpl._5HQ-1736810026979-0.0.1.1-604800000; path=/; domain=.oclc.org; HttpOnly; Secure; SameSite=None Server: - cloudflare Cf-Ray: - - 90005f582c6f7c35-LAX + - 90191429bf400fd9-LAX body: encoding: ASCII-8BIT string: !binary |- eyJudW1iZXJPZlJlY29yZHMiOjEsImJyaWVmUmVjb3JkcyI6W3sib2NsY051bWJlciI6IjEwMDQ1MTkzIiwidGl0bGUiOiJEZSBTYWludC1Mb3VpcyBhIFRyaXBvbGkgcGFyIGxlIExhYyBUY2hhZCA6IHZveWFnZSBhdSB0cmF2ZXJzIGR1IFNvdWRhbiBldCBkdSBTYWhhcmEgYWNjb21wbGkgcGVuZGFudCBsZXMgYW5uZcyBZXMgMTg5MC05MS05MiIsImNyZWF0b3IiOiJQLi1MLiBNb250ZWlsIiwiZGF0ZSI6IlsxODk1P10iLCJtYWNoaW5lUmVhZGFibGVEYXRlIjoiMTg5NSIsImxhbmd1YWdlIjoiZnJlIiwiZ2VuZXJhbEZvcm1hdCI6IkJvb2siLCJzcGVjaWZpY0Zvcm1hdCI6IlByaW50Qm9vayIsInB1Ymxpc2hlciI6IkYuIEFsY2FuIiwicHVibGljYXRpb25QbGFjZSI6IlBhcmlzIiwibWVyZ2VkT2NsY051bWJlcnMiOlsiMTAwNzQ3MDU4MiJdLCJjYXRhbG9naW5nSW5mbyI6eyJjYXRhbG9naW5nQWdlbmN5IjoiQ1VGIiwiY2F0YWxvZ2luZ0xhbmd1YWdlIjoiZW5nIiwibGV2ZWxPZkNhdGFsb2dpbmciOiIgIiwidHJhbnNjcmliaW5nQWdlbmN5IjoiQ1VGIn0sImluc3RpdHV0aW9uSG9sZGluZyI6eyJ0b3RhbEhvbGRpbmdDb3VudCI6MH19XX0= - recorded_at: Fri, 10 Jan 2025 23:16:02 GMT + recorded_at: Mon, 13 Jan 2025 23:13:47 GMT recorded_with: VCR 6.3.1 diff --git a/spec/cassettes/oclc_auth/refresh_token.yml b/spec/cassettes/oclc_auth/refresh_token.yml index f2dcf38..02475ba 100644 --- a/spec/cassettes/oclc_auth/refresh_token.yml +++ b/spec/cassettes/oclc_auth/refresh_token.yml @@ -21,13 +21,13 @@ http_interactions: message: '' headers: X-Oclc-Requestid: - - 13435a19-9d7f-4b2c-84bd-29a875fdf192 + - 32040e79-4eb4-441c-b0b4-cd89c465fb14 X-Oclc-Selfid: - - 6f7211ce-1941-4f5c-9f86-9c43fbe58fed + - 5f76a91e-1a12-421c-91fb-ff0868d54de5 Set-Cookie: - - BIGipServermdc1_prdctn_p_oauth-m1-wskeyv3ws-443_8443=3660704266.64288.0000; - expires=Sat, 11-Jan-2025 00:16:02 GMT; path=/; Httponly; Secure - - JSESSIONID=BE5DD29F9EC4744514E141DB0E966AB3; Path=/; Secure; HttpOnly; SameSite=None + - BIGipServermdc1_prdctn_p_oauth-m1-wskeyv3ws-443_8443=3643927050.64288.0000; + expires=Tue, 14-Jan-2025 00:13:47 GMT; path=/; Httponly; Secure + - JSESSIONID=D3C312F07DAE52057E0C6A3B5F5CDDC0; Path=/; Secure; HttpOnly; SameSite=None Vary: - Access-Control-Request-Headers - Access-Control-Request-Method @@ -49,10 +49,10 @@ http_interactions: Transfer-Encoding: - chunked Date: - - Fri, 10 Jan 2025 23:16:02 GMT + - Mon, 13 Jan 2025 23:13:46 GMT body: encoding: UTF-8 - string: '{"access_token":"tk_dg769sDiFqb55scXXKt29opZbLZaPoI5V16r","expires_at":"2025-01-10 - 23:36:02Z","authenticating_institution_id":"5689","scope":"wcapi:view_institution_holdings","principalID":"","context_institution_id":"5689","scopes":"wcapi:view_institution_holdings","token_type":"bearer","expires_in":1199,"principalIDNS":""}' - recorded_at: Fri, 10 Jan 2025 23:16:02 GMT + string: '{"access_token":"tk_duMxBzoniydg88uTQYOaxP7YInAmKj46YNAW","expires_at":"2025-01-13 + 23:33:47Z","authenticating_institution_id":"5689","scope":"wcapi:view_institution_holdings","principalID":"","context_institution_id":"5689","scopes":"wcapi:view_institution_holdings","token_type":"bearer","expires_in":1199,"principalIDNS":""}' + recorded_at: Mon, 13 Jan 2025 23:13:47 GMT recorded_with: VCR 6.3.1