Skip to content

Commit a2402bb

Browse files
feature(#17): this commit introduces a fluent class for building query parameters, improving the SDK's usability
1 parent 33d6a8a commit a2402bb

1 file changed

Lines changed: 52 additions & 0 deletions

File tree

Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
namespace HttpsRichardy.Federation.Sdk.Filtering;
2+
3+
public sealed class UserPermissionsFilters
4+
{
5+
internal string? PermissionName { get; private set; }
6+
7+
internal int PageNumber { get; private set; } = 1;
8+
internal int PageSize { get; private set; } = 60;
9+
10+
public UserPermissionsFilters WithPermissionName(string permissionName)
11+
{
12+
if (!string.IsNullOrWhiteSpace(permissionName))
13+
{
14+
PermissionName = permissionName.Trim();
15+
}
16+
17+
return this;
18+
}
19+
20+
public UserPermissionsFilters WithPageNumber(int pageNumber)
21+
{
22+
if (pageNumber > 0)
23+
{
24+
PageNumber = pageNumber;
25+
}
26+
27+
return this;
28+
}
29+
30+
public UserPermissionsFilters WithPageSize(int pageSize)
31+
{
32+
if (pageSize > 0)
33+
{
34+
PageSize = pageSize;
35+
}
36+
37+
return this;
38+
}
39+
40+
public static ListUserAssignedPermissionsParameters WithoutFilters => new();
41+
public static UserPermissionsFilters AsBuilder() => new();
42+
43+
public ListUserAssignedPermissionsParameters Build()
44+
{
45+
return new ListUserAssignedPermissionsParameters
46+
{
47+
PermissionName = PermissionName,
48+
PageNumber = PageNumber,
49+
PageSize = PageSize
50+
};
51+
}
52+
}

0 commit comments

Comments
 (0)