From fc7d6124ad3e31567430276159722ee272158793 Mon Sep 17 00:00:00 2001 From: Leonard Chin <3714+l15n@users.noreply.github.com> Date: Fri, 20 Sep 2024 15:50:21 +0900 Subject: [PATCH] Add Management API calls for refresh token API --- lib/auth0/api/v2.rb | 2 + lib/auth0/api/v2/refresh_tokens.rb | 34 +++++++++++++ spec/lib/auth0/api/v2/refresh_tokens_spec.rb | 51 ++++++++++++++++++++ 3 files changed, 87 insertions(+) create mode 100644 lib/auth0/api/v2/refresh_tokens.rb create mode 100644 spec/lib/auth0/api/v2/refresh_tokens_spec.rb diff --git a/lib/auth0/api/v2.rb b/lib/auth0/api/v2.rb index 52c4c56d..626dc21b 100644 --- a/lib/auth0/api/v2.rb +++ b/lib/auth0/api/v2.rb @@ -11,6 +11,7 @@ require 'auth0/api/v2/jobs' require 'auth0/api/v2/prompts' require 'auth0/api/v2/organizations' +require 'auth0/api/v2/refresh_tokens' require 'auth0/api/v2/rules' require 'auth0/api/v2/roles' require 'auth0/api/v2/stats' @@ -45,6 +46,7 @@ module V2 include Auth0::Api::V2::LogStreams include Auth0::Api::V2::Prompts include Auth0::Api::V2::Organizations + include Auth0::Api::V2::RefreshTokens include Auth0::Api::V2::Rules include Auth0::Api::V2::Roles include Auth0::Api::V2::Stats diff --git a/lib/auth0/api/v2/refresh_tokens.rb b/lib/auth0/api/v2/refresh_tokens.rb new file mode 100644 index 00000000..928492b8 --- /dev/null +++ b/lib/auth0/api/v2/refresh_tokens.rb @@ -0,0 +1,34 @@ +# frozen_string_literal: true + +module Auth0 + module Api + module V2 + # Methods to use the Refresh Token endpoints + module RefreshTokens + # Retrieve refresh token information. + # @see https://auth0.com/docs/api/management/v2/refresh-tokens/get-refresh-token + # @param id [string] The id of the refresh token to retrieve + def refresh_token(id) + raise Auth0::InvalidParameter, 'Must supply a valid id' if id.to_s.empty? + + get "#{resource_path}/#{id}" + end + + # Delete a refresh token by its ID. + # @see https://auth0.com/docs/api/management/v2/refresh-tokens/delete-refresh-token + # @param id [string] The id of the refresh token to delete + def delete_refresh_token(id) + raise Auth0::InvalidParameter, 'Must supply a valid id' if id.to_s.empty? + + delete "#{resource_path}/#{id}" + end + + private + + def resource_path + @resource_path ||= '/api/v2/refresh-tokens' + end + end + end + end +end diff --git a/spec/lib/auth0/api/v2/refresh_tokens_spec.rb b/spec/lib/auth0/api/v2/refresh_tokens_spec.rb new file mode 100644 index 00000000..04a574c5 --- /dev/null +++ b/spec/lib/auth0/api/v2/refresh_tokens_spec.rb @@ -0,0 +1,51 @@ +# frozen_string_literal: true + +require 'spec_helper' + +describe Auth0::Api::V2::RefreshTokens do + before :all do + dummy_instance = DummyClass.new + dummy_instance.extend(Auth0::Api::V2::RefreshTokens) + @instance = dummy_instance + end + + describe '.refresh_token' do + it 'is expected to respond to a refresh_token method' do + expect(@instance).to respond_to(:refresh_token) + end + + it 'is expected to GET a refresh_token' do + expect(@instance).to receive(:get).with( + '/api/v2/refresh-tokens/REFRESH_TOKEN_ID' + ) + + expect do + @instance.refresh_token('REFRESH_TOKEN_ID') + end.not_to raise_error + end + + it 'is expected to raise an exception when the id is empty' do + expect { @instance.refresh_token(nil) }.to raise_error('Must supply a valid id') + end + end + + describe '.delete_refresh_token' do + it 'is expected to respond to a delete_refresh_token method' do + expect(@instance).to respond_to(:delete_refresh_token) + end + + it 'is expected to DELETE a refresh_token' do + expect(@instance).to receive(:delete).with( + '/api/v2/refresh-tokens/REFRESH_TOKEN_ID' + ) + + expect do + @instance.delete_refresh_token('REFRESH_TOKEN_ID') + end.not_to raise_error + end + + it 'is expected to raise an exception when the id is empty' do + expect { @instance.delete_refresh_token(nil) }.to raise_error('Must supply a valid id') + end + end +end