Skip to content

Commit 3816588

Browse files
committed
project members
1 parent ad6d9f3 commit 3816588

File tree

3 files changed

+101
-1
lines changed

3 files changed

+101
-1
lines changed

Oak.Cli/Org.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ public async Task GetOne(string? id = null, CancellationToken ctkn = default)
4141
/// Get orgs
4242
/// </summary>
4343
/// <param name="orderBy">-ob, order by</param>
44-
/// <param name="asc">-a, ascending</param>
44+
/// <param name="asc">-asc, ascending</param>
4545
public async Task Get(
4646
OrgOrderBy orderBy = OrgOrderBy.Name,
4747
bool asc = true,

Oak.Cli/Program.cs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -75,6 +75,8 @@
7575
app.Add<Auth>("auth");
7676
app.Add<Ctx>("ctx");
7777
app.Add<Org>("org");
78+
app.Add<OrgMember>("org-member");
7879
app.Add<Project>("project");
80+
app.Add<ProjectMember>("project-member");
7981
app.Add<TaskCli>("task");
8082
await app.RunAsync(args);

Oak.Cli/ProjectMember.cs

Lines changed: 98 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,98 @@
1+
using Oak.Api.ProjectMember;
2+
using IApi = Oak.Api.IApi;
3+
4+
namespace Oak.Cli;
5+
6+
public class ProjectMember
7+
{
8+
private readonly IApi _api;
9+
private readonly State _state;
10+
11+
public ProjectMember(IApi api, State state)
12+
{
13+
_api = api;
14+
_state = state;
15+
}
16+
17+
/// <summary>
18+
/// Add a new project member
19+
/// </summary>
20+
/// <param name="id">-i, user id</param>
21+
/// <param name="role">-r, members role for permissions</param>
22+
/// <param name="org">-o, the org id</param>
23+
/// <param name="project">-p, the project id</param>
24+
/// <param name="ctkn"></param>
25+
public async Task Add(string id, ProjectMemberRole role, string? org = null, string? project = null, CancellationToken ctkn = default)
26+
{
27+
org = _state.GetOrg(org);
28+
project = _state.GetProject(project);
29+
var res = await _api.ProjectMember.Add(new Add(org, project, id, role), ctkn);
30+
Io.WriteYml(res);
31+
}
32+
33+
/// <summary>
34+
/// Get a project member
35+
/// </summary>
36+
/// <param name="id">-i, user id</param>
37+
/// <param name="org">-o, the org id</param>
38+
/// <param name="project">-p, the project id</param>
39+
/// <param name="ctkn"></param>
40+
public async Task GetOne(string id, string? org = null, string? project = null, CancellationToken ctkn = default)
41+
{
42+
org = _state.GetOrg(org);
43+
project = _state.GetProject(project);
44+
var res = await _api.ProjectMember.GetOne(new Exact(org, project, id), ctkn);
45+
Io.WriteYml(res);
46+
}
47+
48+
/// <summary>
49+
/// Get project members
50+
/// </summary>
51+
/// <param name="isActive">-ia, is active</param>
52+
/// <param name="role">-r, role</param>
53+
/// <param name="nameStartsWith">-nsw, name starts with</param>
54+
/// <param name="after">-a, after</param>
55+
/// <param name="orderBy">-ob, order by</param>
56+
/// <param name="asc">-asc, order ascending</param>
57+
/// <param name="org">-o, org id</param>
58+
/// <param name="project">-p, project id</param>
59+
/// <param name="ctkn"></param>
60+
public async Task Get(bool? isActive, ProjectMemberRole? role = null, string? nameStartsWith = null, string? after = null, ProjectMemberOrderBy orderBy = ProjectMemberOrderBy.Role, bool asc = true, string? org = null, string? project = null, CancellationToken ctkn = default)
61+
{
62+
org = _state.GetOrg(org);
63+
project = _state.GetProject(project);
64+
var res = await _api.ProjectMember.Get(new Get(org, project, isActive, role, nameStartsWith, after, orderBy, asc), ctkn);
65+
Io.WriteYml(res);
66+
}
67+
68+
/// <summary>
69+
/// Update a project member
70+
/// </summary>
71+
/// <param name="id">-i, member id</param>
72+
/// <param name="role">-r, role</param>
73+
/// <param name="org">-o, org id</param>
74+
/// <param name="project">-p, project id</param>
75+
/// <param name="ctkn"></param>
76+
public async Task Update(string id, ProjectMemberRole role, string? org = null, string? project = null, CancellationToken ctkn = default)
77+
{
78+
org = _state.GetOrg(org);
79+
project = _state.GetProject(project);
80+
var res = await _api.ProjectMember.Update(new Update(org, project, id, role), ctkn);
81+
Io.WriteYml(res);
82+
}
83+
84+
/// <summary>
85+
/// Remove a project member
86+
/// </summary>
87+
/// <param name="id">-i, member id</param>
88+
/// <param name="org">-o, org id</param>
89+
/// <param name="project">-p, project id</param>
90+
/// <param name="ctkn"></param>
91+
public async Task Remove(string id, string? org = null, string? project = null, CancellationToken ctkn = default)
92+
{
93+
org = _state.GetOrg(org);
94+
project = _state.GetProject(project);
95+
await _api.ProjectMember.Remove(new Exact(org, project, id), ctkn);
96+
Io.WriteSuccess();
97+
}
98+
}

0 commit comments

Comments
 (0)