Skip to content

Commit f38ca86

Browse files
feat: includes convention files for endpoints, facilitating documentation and making the specification document more specific.
1 parent 4d2ff3c commit f38ca86

8 files changed

Lines changed: 230 additions & 0 deletions

File tree

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
#pragma warning disable IDE0060
2+
3+
namespace HttpsRichardy.Federation.WebApi.Conventions;
4+
5+
public static class ConnectConventions
6+
{
7+
[ApiConventionNameMatch(ApiConventionNameMatchBehavior.Prefix)]
8+
[ProducesResponseType(typeof(ClientAuthenticationResult), StatusCodes.Status200OK)]
9+
[ProducesResponseType(typeof(Error), StatusCodes.Status400BadRequest)]
10+
[ProducesResponseType(typeof(Error), StatusCodes.Status401Unauthorized)]
11+
public static void AuthenticateClientAsync(ClientAuthenticationCredentials request, CancellationToken cancellation) { }
12+
}
Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
#pragma warning disable IDE0060
2+
3+
namespace HttpsRichardy.Federation.WebApi.Conventions;
4+
5+
public static class GroupsConventions
6+
{
7+
[ApiConventionNameMatch(ApiConventionNameMatchBehavior.Prefix)]
8+
[ProducesResponseType(typeof(Pagination<GroupDetailsScheme>), StatusCodes.Status200OK)]
9+
public static void GetGroupsAsync(GroupsFetchParameters request, CancellationToken cancellation) { }
10+
11+
[ApiConventionNameMatch(ApiConventionNameMatchBehavior.Exact)]
12+
[ProducesResponseType(typeof(GroupDetailsScheme), StatusCodes.Status201Created)]
13+
[ProducesResponseType(typeof(Error), StatusCodes.Status409Conflict)]
14+
public static void CreateGroupAsync(GroupCreationScheme request, CancellationToken cancellation) { }
15+
16+
[ApiConventionNameMatch(ApiConventionNameMatchBehavior.Prefix)]
17+
[ProducesResponseType(typeof(GroupDetailsScheme), StatusCodes.Status200OK)]
18+
[ProducesResponseType(typeof(Error), StatusCodes.Status404NotFound)]
19+
public static void UpdateGroupAsync(string id, GroupUpdateScheme request, CancellationToken cancellation) { }
20+
21+
[ApiConventionNameMatch(ApiConventionNameMatchBehavior.Prefix)]
22+
[ProducesResponseType(StatusCodes.Status204NoContent)]
23+
[ProducesResponseType(typeof(Error), StatusCodes.Status404NotFound)]
24+
public static void DeleteGroupAsync(string id, CancellationToken cancellation) { }
25+
26+
[ApiConventionNameMatch(ApiConventionNameMatchBehavior.Prefix)]
27+
[ProducesResponseType(typeof(IReadOnlyCollection<PermissionDetailsScheme>), StatusCodes.Status200OK)]
28+
[ProducesResponseType(typeof(Error), StatusCodes.Status404NotFound)]
29+
public static void GetGroupsPermissionsAsync(string id, ListGroupAssignedPermissionsParameters request, CancellationToken cancellation) { }
30+
31+
[ApiConventionNameMatch(ApiConventionNameMatchBehavior.Prefix)]
32+
[ProducesResponseType(typeof(GroupDetailsScheme), StatusCodes.Status200OK)]
33+
[ProducesResponseType(typeof(Error), StatusCodes.Status404NotFound)]
34+
[ProducesResponseType(typeof(Error), StatusCodes.Status409Conflict)]
35+
public static void AssignPermissionAsync(string id, AssignGroupPermissionScheme request, CancellationToken cancellation) { }
36+
37+
[ApiConventionNameMatch(ApiConventionNameMatchBehavior.Prefix)]
38+
[ProducesResponseType(StatusCodes.Status204NoContent)]
39+
[ProducesResponseType(typeof(Error), StatusCodes.Status404NotFound)]
40+
[ProducesResponseType(typeof(Error), StatusCodes.Status409Conflict)]
41+
public static void RevokePermissionAsync(string id, string permissionId, CancellationToken cancellation) { }
42+
}
Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
#pragma warning disable IDE0060
2+
3+
namespace HttpsRichardy.Federation.WebApi.Conventions;
4+
5+
public static class IdentityConventions
6+
{
7+
[ApiConventionNameMatch(ApiConventionNameMatchBehavior.Prefix)]
8+
[ProducesResponseType(typeof(PrincipalDetailsScheme), StatusCodes.Status200OK)]
9+
[ProducesResponseType(typeof(Error), StatusCodes.Status404NotFound)]
10+
public static void GetPrincipalAsync(InspectPrincipalParameters request, CancellationToken cancellation) { }
11+
12+
[ApiConventionNameMatch(ApiConventionNameMatchBehavior.Prefix)]
13+
[ProducesResponseType(typeof(UserDetailsScheme), StatusCodes.Status201Created)]
14+
[ProducesResponseType(typeof(Error), StatusCodes.Status409Conflict)]
15+
public static void EnrollIdentityAsync(IdentityEnrollmentCredentials request, CancellationToken cancellation) { }
16+
17+
[ApiConventionNameMatch(ApiConventionNameMatchBehavior.Prefix)]
18+
[ProducesResponseType(typeof(AuthenticationResult), StatusCodes.Status200OK)]
19+
[ProducesResponseType(typeof(Error), StatusCodes.Status401Unauthorized)]
20+
[ProducesResponseType(typeof(Error), StatusCodes.Status404NotFound)]
21+
public static void AuthenticateAsync(AuthenticationCredentials request, CancellationToken cancellation) { }
22+
23+
[ApiConventionNameMatch(ApiConventionNameMatchBehavior.Prefix)]
24+
[ProducesResponseType(typeof(AuthenticationResult), StatusCodes.Status200OK)]
25+
[ProducesResponseType(typeof(Error), StatusCodes.Status400BadRequest)]
26+
[ProducesResponseType(typeof(Error), StatusCodes.Status401Unauthorized)]
27+
[ProducesResponseType(typeof(Error), StatusCodes.Status404NotFound)]
28+
public static void RefreshTokenAsync(SessionTokenRenewalScheme request, CancellationToken cancellation) { }
29+
30+
[ApiConventionNameMatch(ApiConventionNameMatchBehavior.Prefix)]
31+
[ProducesResponseType(StatusCodes.Status204NoContent)]
32+
[ProducesResponseType(typeof(Error), StatusCodes.Status400BadRequest)]
33+
[ProducesResponseType(typeof(Error), StatusCodes.Status401Unauthorized)]
34+
public static void InvalidateSessionAsync(SessionInvalidationScheme request, CancellationToken cancellation) { }
35+
}
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
#pragma warning disable IDE0060
2+
3+
namespace HttpsRichardy.Federation.WebApi.Conventions;
4+
5+
public static class PermissionsConventions
6+
{
7+
[ApiConventionNameMatch(ApiConventionNameMatchBehavior.Prefix)]
8+
[ProducesResponseType(typeof(Pagination<PermissionDetailsScheme>), StatusCodes.Status200OK)]
9+
public static void GetPermissionsAsync(PermissionsFetchParameters request, CancellationToken cancellation) { }
10+
11+
[ApiConventionNameMatch(ApiConventionNameMatchBehavior.Prefix)]
12+
[ProducesResponseType(typeof(PermissionDetailsScheme), StatusCodes.Status201Created)]
13+
[ProducesResponseType(typeof(Error), StatusCodes.Status409Conflict)]
14+
public static void CreatePermissionAsync(PermissionCreationScheme request, CancellationToken cancellation) { }
15+
16+
[ApiConventionNameMatch(ApiConventionNameMatchBehavior.Prefix)]
17+
[ProducesResponseType(typeof(PermissionDetailsScheme), StatusCodes.Status200OK)]
18+
[ProducesResponseType(typeof(Error), StatusCodes.Status404NotFound)]
19+
public static void UpdatePermissionAsync(string id, PermissionUpdateScheme request, CancellationToken cancellation) { }
20+
21+
[ApiConventionNameMatch(ApiConventionNameMatchBehavior.Prefix)]
22+
[ProducesResponseType(StatusCodes.Status204NoContent)]
23+
[ProducesResponseType(typeof(Error), StatusCodes.Status404NotFound)]
24+
public static void DeletePermissionAsync(string id, CancellationToken cancellation) { }
25+
}
Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
#pragma warning disable IDE0060
2+
3+
namespace HttpsRichardy.Federation.WebApi.Conventions;
4+
5+
public static class RealmsConventions
6+
{
7+
[ApiConventionNameMatch(ApiConventionNameMatchBehavior.Prefix)]
8+
[ProducesResponseType(typeof(Pagination<RealmDetailsScheme>), StatusCodes.Status200OK)]
9+
public static void GetRealmsAsync(RealmFetchParameters request, CancellationToken cancellation) { }
10+
11+
[ApiConventionNameMatch(ApiConventionNameMatchBehavior.Prefix)]
12+
[ProducesResponseType(typeof(RealmDetailsScheme), StatusCodes.Status201Created)]
13+
[ProducesResponseType(typeof(Error), StatusCodes.Status409Conflict)]
14+
public static void CreateRealmAsync(RealmCreationScheme request, CancellationToken cancellation) { }
15+
16+
[ApiConventionNameMatch(ApiConventionNameMatchBehavior.Prefix)]
17+
[ProducesResponseType(typeof(RealmDetailsScheme), StatusCodes.Status200OK)]
18+
[ProducesResponseType(typeof(Error), StatusCodes.Status404NotFound)]
19+
public static void UpdateRealmAsync(string id, RealmUpdateScheme request, CancellationToken cancellation) { }
20+
21+
[ApiConventionNameMatch(ApiConventionNameMatchBehavior.Prefix)]
22+
[ProducesResponseType(StatusCodes.Status204NoContent)]
23+
[ProducesResponseType(typeof(Error), StatusCodes.Status404NotFound)]
24+
public static void DeleteRealmAsync(string id, CancellationToken cancellation) { }
25+
26+
[ApiConventionNameMatch(ApiConventionNameMatchBehavior.Prefix)]
27+
[ProducesResponseType(typeof(IReadOnlyCollection<PermissionDetailsScheme>), StatusCodes.Status200OK)]
28+
[ProducesResponseType(typeof(Error), StatusCodes.Status404NotFound)]
29+
public static void GetRealmPermissionsAsync(string id, ListRealmAssignedPermissionsParameters request, CancellationToken cancellation) { }
30+
31+
[ApiConventionNameMatch(ApiConventionNameMatchBehavior.Prefix)]
32+
[ProducesResponseType(typeof(IReadOnlyCollection<PermissionDetailsScheme>), StatusCodes.Status200OK)]
33+
[ProducesResponseType(typeof(Error), StatusCodes.Status404NotFound)]
34+
[ProducesResponseType(typeof(Error), StatusCodes.Status409Conflict)]
35+
public static void AssignPermissionAsync(string id, AssignRealmPermissionScheme request, CancellationToken cancellation) { }
36+
37+
[ApiConventionNameMatch(ApiConventionNameMatchBehavior.Prefix)]
38+
[ProducesResponseType(StatusCodes.Status204NoContent)]
39+
[ProducesResponseType(typeof(Error), StatusCodes.Status404NotFound)]
40+
[ProducesResponseType(typeof(Error), StatusCodes.Status409Conflict)]
41+
public static void RevokePermissionAsync(string id, string permissionId, CancellationToken cancellation) { }
42+
}
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
#pragma warning disable IDE0060
2+
3+
namespace HttpsRichardy.Federation.WebApi.Conventions;
4+
5+
public static class ScopesConventions
6+
{
7+
[ApiConventionNameMatch(ApiConventionNameMatchBehavior.Prefix)]
8+
[ProducesResponseType(typeof(ScopeDetailsScheme), StatusCodes.Status201Created)]
9+
[ProducesResponseType(typeof(Error), StatusCodes.Status409Conflict)]
10+
public static void CreateScopeAsync(ScopeCreationScheme request, CancellationToken cancellation) { }
11+
}
Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
#pragma warning disable IDE0060
2+
3+
namespace HttpsRichardy.Federation.WebApi.Conventions;
4+
5+
public static class UsersConventions
6+
{
7+
[ApiConventionNameMatch(ApiConventionNameMatchBehavior.Prefix)]
8+
[ProducesResponseType(typeof(Pagination<UserDetailsScheme>), StatusCodes.Status200OK)]
9+
public static void GetUsersAsync(UsersFetchParameters request, CancellationToken cancellation) { }
10+
11+
[ApiConventionNameMatch(ApiConventionNameMatchBehavior.Prefix)]
12+
[ProducesResponseType(StatusCodes.Status204NoContent)]
13+
[ProducesResponseType(typeof(Error), StatusCodes.Status404NotFound)]
14+
public static void DeleteUserAsync(string id, CancellationToken cancellation) { }
15+
16+
[ApiConventionNameMatch(ApiConventionNameMatchBehavior.Prefix)]
17+
[ProducesResponseType(typeof(IReadOnlyCollection<PermissionDetailsScheme>), StatusCodes.Status200OK)]
18+
[ProducesResponseType(typeof(Error), StatusCodes.Status404NotFound)]
19+
public static void GetUserPermissionsAsync(string id, ListUserAssignedPermissionsParameters request, CancellationToken cancellation) { }
20+
21+
[ApiConventionNameMatch(ApiConventionNameMatchBehavior.Prefix)]
22+
[ProducesResponseType(typeof(IReadOnlyCollection<GroupBasicDetailsScheme>), StatusCodes.Status200OK)]
23+
[ProducesResponseType(typeof(Error), StatusCodes.Status404NotFound)]
24+
public static void GetUserGroupsAsync(string id, ListUserAssignedGroupsParameters request, CancellationToken cancellation) { }
25+
26+
[ApiConventionNameMatch(ApiConventionNameMatchBehavior.Prefix)]
27+
[ProducesResponseType(StatusCodes.Status204NoContent)]
28+
[ProducesResponseType(typeof(Error), StatusCodes.Status404NotFound)]
29+
[ProducesResponseType(typeof(Error), StatusCodes.Status409Conflict)]
30+
public static void AssignUserToGroupAsync(string id, AssignUserToGroupScheme request, CancellationToken cancellation) { }
31+
32+
[ApiConventionNameMatch(ApiConventionNameMatchBehavior.Prefix)]
33+
[ProducesResponseType(StatusCodes.Status204NoContent)]
34+
[ProducesResponseType(typeof(Error), StatusCodes.Status404NotFound)]
35+
[ProducesResponseType(typeof(Error), StatusCodes.Status409Conflict)]
36+
public static void AssignUserPermissionAsync(string id, AssignUserPermissionScheme request, CancellationToken cancellation) { }
37+
38+
[ApiConventionNameMatch(ApiConventionNameMatchBehavior.Prefix)]
39+
[ProducesResponseType(StatusCodes.Status204NoContent)]
40+
[ProducesResponseType(typeof(Error), StatusCodes.Status404NotFound)]
41+
[ProducesResponseType(typeof(Error), StatusCodes.Status409Conflict)]
42+
public static void RevokeUserPermissionAsync(string id, string permissionId, CancellationToken cancellation) { }
43+
44+
[ApiConventionNameMatch(ApiConventionNameMatchBehavior.Prefix)]
45+
[ProducesResponseType(StatusCodes.Status204NoContent)]
46+
[ProducesResponseType(typeof(Error), StatusCodes.Status404NotFound)]
47+
[ProducesResponseType(typeof(Error), StatusCodes.Status409Conflict)]
48+
public static void RemoveUserFromGroupAsync(string id, string groupId, CancellationToken cancellation) { }
49+
}
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
#pragma warning disable IDE0060
2+
3+
namespace HttpsRichardy.Federation.WebApi.Conventions;
4+
5+
public static class WellKnownConventions
6+
{
7+
[ApiConventionNameMatch(ApiConventionNameMatchBehavior.Prefix)]
8+
[ProducesResponseType(typeof(OpenIDConfigurationScheme), StatusCodes.Status200OK)]
9+
public static void GetConfigurationAsync(FetchOpenIDConfigurationParameters request, CancellationToken cancellation) { }
10+
11+
[ApiConventionNameMatch(ApiConventionNameMatchBehavior.Prefix)]
12+
[ProducesResponseType(typeof(JsonWebKeySetScheme), StatusCodes.Status200OK)]
13+
public static void GetJsonWebKeysAsync(FetchJsonWebKeysParameters request, CancellationToken cancellation) { }
14+
}

0 commit comments

Comments
 (0)