Skip to content

Commit 7ede362

Browse files
Merge pull request #456 from Mr-Bally/feat/AddRevokeTokenEndpoint
Added revoke functionality ✨
2 parents 9472901 + 25e675b commit 7ede362

File tree

6 files changed

+59
-0
lines changed

6 files changed

+59
-0
lines changed

Src/Notion.Client/Api/ApiEndpoints.cs

+1
Original file line numberDiff line numberDiff line change
@@ -135,6 +135,7 @@ public static string Create()
135135
public static class AuthenticationUrls
136136
{
137137
public static string CreateToken() => "/v1/oauth/token";
138+
public static string RevokeToken() => "/v1/oauth/revoke";
138139
}
139140
}
140141
}

Src/Notion.Client/Api/Authentication/IAuthenticationClient.cs

+11
Original file line numberDiff line numberDiff line change
@@ -18,5 +18,16 @@ Task<CreateTokenResponse> CreateTokenAsync(
1818
CreateTokenRequest createTokenRequest,
1919
CancellationToken cancellationToken = default
2020
);
21+
22+
/// <summary>
23+
/// Revokes an access token.
24+
/// </summary>
25+
/// <param name="revokeTokenRequest"></param>
26+
/// <param name="cancellationToken"></param>
27+
/// <returns></returns>
28+
Task RevokeTokenAsync(
29+
RevokeTokenRequest revokeTokenRequest,
30+
CancellationToken cancellationToken = default
31+
);
2132
}
2233
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
using System.Threading;
2+
using System.Threading.Tasks;
3+
4+
namespace Notion.Client
5+
{
6+
public sealed partial class AuthenticationClient
7+
{
8+
public async Task RevokeTokenAsync(
9+
RevokeTokenRequest revokeTokenRequest,
10+
CancellationToken cancellationToken = default)
11+
{
12+
var body = (IRevokeTokenBodyParameters)revokeTokenRequest;
13+
14+
await _client.PostAsync<RevokeTokenResponse>(
15+
ApiEndpoints.AuthenticationUrls.RevokeToken(),
16+
body,
17+
cancellationToken: cancellationToken
18+
);
19+
}
20+
}
21+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
using Newtonsoft.Json;
2+
3+
namespace Notion.Client
4+
{
5+
public interface IRevokeTokenBodyParameters
6+
{
7+
/// <summary>
8+
/// The token to be revoked.
9+
/// </summary>
10+
[JsonProperty("token")]
11+
string Token { get; set; }
12+
}
13+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
namespace Notion.Client
2+
{
3+
public class RevokeTokenRequest : IRevokeTokenBodyParameters
4+
{
5+
public string Token { get; set; }
6+
}
7+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
namespace Notion.Client
2+
{
3+
internal class RevokeTokenResponse
4+
{
5+
}
6+
}

0 commit comments

Comments
 (0)