Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

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

Lines changed: 1 addition & 0 deletions
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

Lines changed: 11 additions & 0 deletions
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
}
Lines changed: 21 additions & 0 deletions
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+
}
Lines changed: 13 additions & 0 deletions
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+
}
Lines changed: 7 additions & 0 deletions
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+
}
Lines changed: 6 additions & 0 deletions
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)

AltStyle によって変換されたページ (->オリジナル) /