Skip to content

Commit cb464cc

Browse files
authored
feat: introduce void endpoints
* generate * test deletion
1 parent 83f4a4b commit cb464cc

24 files changed

+3013
-6
lines changed

output/csharp/src/Seam.Test/Client/SeamTests.cs

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -87,4 +87,40 @@ public void Test()
8787
{
8888
Assert.Throws<SeamException>(() => seam.AccessCodes.Get(accessCodeId: "nonexistent"));
8989
}
90+
91+
[Fact]
92+
public void TestDelete()
93+
{
94+
var device = seam.Devices
95+
.List()
96+
.First(d => d.DeviceType == Device.DeviceTypeEnum.AugustLock);
97+
98+
Assert.NotNull(device);
99+
100+
seam.Devices.Delete(deviceId: device.DeviceId);
101+
102+
var device2 = seam.Devices
103+
.List()
104+
.First(d => d.DeviceType == Device.DeviceTypeEnum.AugustLock);
105+
106+
Assert.NotEqual(device.DeviceId, device2.DeviceId);
107+
}
108+
109+
[Fact]
110+
public async void TestDeleteAsync()
111+
{
112+
var device = (await seam.Devices.ListAsync()).First(
113+
d => d.DeviceType == Device.DeviceTypeEnum.AugustLock
114+
);
115+
116+
Assert.NotNull(device);
117+
118+
await seam.Devices.DeleteAsync(deviceId: device.DeviceId);
119+
120+
var device2 = (await seam.Devices.ListAsync()).First(
121+
d => d.DeviceType == Device.DeviceTypeEnum.AugustLock
122+
);
123+
124+
Assert.NotEqual(device.DeviceId, device2.DeviceId);
125+
}
90126
}
Lines changed: 170 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,170 @@
1+
using System.Runtime.Serialization;
2+
using System.Text;
3+
using Newtonsoft.Json;
4+
using Newtonsoft.Json.Converters;
5+
using Newtonsoft.Json.Linq;
6+
using JsonSubTypes;
7+
using Seam.Client;
8+
using Seam.Model;
9+
10+
namespace Seam.Api
11+
{
12+
public class AccessGroupsAcs
13+
{
14+
private ISeamClient _seam;
15+
16+
public AccessGroupsAcs(ISeamClient seam)
17+
{
18+
_seam = seam;
19+
}
20+
21+
[DataContract(Name = "addUserRequest_request")]
22+
public class AddUserRequest
23+
{
24+
[JsonConstructorAttribute]
25+
protected AddUserRequest() { }
26+
27+
public AddUserRequest(string acsAccessGroupId = default, string acsUserId = default)
28+
{
29+
AcsAccessGroupId = acsAccessGroupId;
30+
AcsUserId = acsUserId;
31+
}
32+
33+
[DataMember(Name = "acs_access_group_id", IsRequired = true, EmitDefaultValue = false)]
34+
public string AcsAccessGroupId { get; set; }
35+
36+
[DataMember(Name = "acs_user_id", IsRequired = true, EmitDefaultValue = false)]
37+
public string AcsUserId { get; set; }
38+
39+
public override string ToString()
40+
{
41+
JsonSerializer jsonSerializer = JsonSerializer.CreateDefault(null);
42+
43+
StringWriter stringWriter = new StringWriter(
44+
new StringBuilder(256),
45+
System.Globalization.CultureInfo.InvariantCulture
46+
);
47+
using (JsonTextWriter jsonTextWriter = new JsonTextWriter(stringWriter))
48+
{
49+
jsonTextWriter.IndentChar = ' ';
50+
jsonTextWriter.Indentation = 2;
51+
jsonTextWriter.Formatting = Formatting.Indented;
52+
jsonSerializer.Serialize(jsonTextWriter, this, null);
53+
}
54+
55+
return stringWriter.ToString();
56+
}
57+
}
58+
59+
public void AddUser(AddUserRequest request)
60+
{
61+
var requestOptions = new RequestOptions();
62+
requestOptions.Data = request;
63+
_seam.Post<object>("/acs/access_groups/add_user", requestOptions);
64+
}
65+
66+
public void AddUser(string acsAccessGroupId = default, string acsUserId = default)
67+
{
68+
AddUser(new AddUserRequest(acsAccessGroupId: acsAccessGroupId, acsUserId: acsUserId));
69+
}
70+
71+
public async Task AddUserAsync(AddUserRequest request)
72+
{
73+
var requestOptions = new RequestOptions();
74+
requestOptions.Data = request;
75+
await _seam.PostAsync<object>("/acs/access_groups/add_user", requestOptions);
76+
}
77+
78+
public async Task AddUserAsync(
79+
string acsAccessGroupId = default,
80+
string acsUserId = default
81+
)
82+
{
83+
await AddUserAsync(
84+
new AddUserRequest(acsAccessGroupId: acsAccessGroupId, acsUserId: acsUserId)
85+
);
86+
}
87+
88+
[DataContract(Name = "removeUserRequest_request")]
89+
public class RemoveUserRequest
90+
{
91+
[JsonConstructorAttribute]
92+
protected RemoveUserRequest() { }
93+
94+
public RemoveUserRequest(string acsAccessGroupId = default, string acsUserId = default)
95+
{
96+
AcsAccessGroupId = acsAccessGroupId;
97+
AcsUserId = acsUserId;
98+
}
99+
100+
[DataMember(Name = "acs_access_group_id", IsRequired = true, EmitDefaultValue = false)]
101+
public string AcsAccessGroupId { get; set; }
102+
103+
[DataMember(Name = "acs_user_id", IsRequired = true, EmitDefaultValue = false)]
104+
public string AcsUserId { get; set; }
105+
106+
public override string ToString()
107+
{
108+
JsonSerializer jsonSerializer = JsonSerializer.CreateDefault(null);
109+
110+
StringWriter stringWriter = new StringWriter(
111+
new StringBuilder(256),
112+
System.Globalization.CultureInfo.InvariantCulture
113+
);
114+
using (JsonTextWriter jsonTextWriter = new JsonTextWriter(stringWriter))
115+
{
116+
jsonTextWriter.IndentChar = ' ';
117+
jsonTextWriter.Indentation = 2;
118+
jsonTextWriter.Formatting = Formatting.Indented;
119+
jsonSerializer.Serialize(jsonTextWriter, this, null);
120+
}
121+
122+
return stringWriter.ToString();
123+
}
124+
}
125+
126+
public void RemoveUser(RemoveUserRequest request)
127+
{
128+
var requestOptions = new RequestOptions();
129+
requestOptions.Data = request;
130+
_seam.Post<object>("/acs/access_groups/remove_user", requestOptions);
131+
}
132+
133+
public void RemoveUser(string acsAccessGroupId = default, string acsUserId = default)
134+
{
135+
RemoveUser(
136+
new RemoveUserRequest(acsAccessGroupId: acsAccessGroupId, acsUserId: acsUserId)
137+
);
138+
}
139+
140+
public async Task RemoveUserAsync(RemoveUserRequest request)
141+
{
142+
var requestOptions = new RequestOptions();
143+
requestOptions.Data = request;
144+
await _seam.PostAsync<object>("/acs/access_groups/remove_user", requestOptions);
145+
}
146+
147+
public async Task RemoveUserAsync(
148+
string acsAccessGroupId = default,
149+
string acsUserId = default
150+
)
151+
{
152+
await RemoveUserAsync(
153+
new RemoveUserRequest(acsAccessGroupId: acsAccessGroupId, acsUserId: acsUserId)
154+
);
155+
}
156+
}
157+
}
158+
159+
namespace Seam.Client
160+
{
161+
public partial class SeamClient
162+
{
163+
public Api.AccessGroupsAcs AccessGroupsAcs => new(this);
164+
}
165+
166+
public partial interface ISeamClient
167+
{
168+
public Api.AccessGroupsAcs AccessGroupsAcs { get; }
169+
}
170+
}

output/csharp/src/Seam/Api/ClientSessions.cs

Lines changed: 116 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -172,6 +172,64 @@ await CreateAsync(
172172
);
173173
}
174174

175+
[DataContract(Name = "deleteRequest_request")]
176+
public class DeleteRequest
177+
{
178+
[JsonConstructorAttribute]
179+
protected DeleteRequest() { }
180+
181+
public DeleteRequest(string clientSessionId = default)
182+
{
183+
ClientSessionId = clientSessionId;
184+
}
185+
186+
[DataMember(Name = "client_session_id", IsRequired = true, EmitDefaultValue = false)]
187+
public string ClientSessionId { get; set; }
188+
189+
public override string ToString()
190+
{
191+
JsonSerializer jsonSerializer = JsonSerializer.CreateDefault(null);
192+
193+
StringWriter stringWriter = new StringWriter(
194+
new StringBuilder(256),
195+
System.Globalization.CultureInfo.InvariantCulture
196+
);
197+
using (JsonTextWriter jsonTextWriter = new JsonTextWriter(stringWriter))
198+
{
199+
jsonTextWriter.IndentChar = ' ';
200+
jsonTextWriter.Indentation = 2;
201+
jsonTextWriter.Formatting = Formatting.Indented;
202+
jsonSerializer.Serialize(jsonTextWriter, this, null);
203+
}
204+
205+
return stringWriter.ToString();
206+
}
207+
}
208+
209+
public void Delete(DeleteRequest request)
210+
{
211+
var requestOptions = new RequestOptions();
212+
requestOptions.Data = request;
213+
_seam.Post<object>("/client_sessions/delete", requestOptions);
214+
}
215+
216+
public void Delete(string clientSessionId = default)
217+
{
218+
Delete(new DeleteRequest(clientSessionId: clientSessionId));
219+
}
220+
221+
public async Task DeleteAsync(DeleteRequest request)
222+
{
223+
var requestOptions = new RequestOptions();
224+
requestOptions.Data = request;
225+
await _seam.PostAsync<object>("/client_sessions/delete", requestOptions);
226+
}
227+
228+
public async Task DeleteAsync(string clientSessionId = default)
229+
{
230+
await DeleteAsync(new DeleteRequest(clientSessionId: clientSessionId));
231+
}
232+
175233
[DataContract(Name = "getRequest_request")]
176234
public class GetRequest
177235
{
@@ -601,6 +659,64 @@ await ListAsync(
601659
)
602660
);
603661
}
662+
663+
[DataContract(Name = "revokeRequest_request")]
664+
public class RevokeRequest
665+
{
666+
[JsonConstructorAttribute]
667+
protected RevokeRequest() { }
668+
669+
public RevokeRequest(string clientSessionId = default)
670+
{
671+
ClientSessionId = clientSessionId;
672+
}
673+
674+
[DataMember(Name = "client_session_id", IsRequired = true, EmitDefaultValue = false)]
675+
public string ClientSessionId { get; set; }
676+
677+
public override string ToString()
678+
{
679+
JsonSerializer jsonSerializer = JsonSerializer.CreateDefault(null);
680+
681+
StringWriter stringWriter = new StringWriter(
682+
new StringBuilder(256),
683+
System.Globalization.CultureInfo.InvariantCulture
684+
);
685+
using (JsonTextWriter jsonTextWriter = new JsonTextWriter(stringWriter))
686+
{
687+
jsonTextWriter.IndentChar = ' ';
688+
jsonTextWriter.Indentation = 2;
689+
jsonTextWriter.Formatting = Formatting.Indented;
690+
jsonSerializer.Serialize(jsonTextWriter, this, null);
691+
}
692+
693+
return stringWriter.ToString();
694+
}
695+
}
696+
697+
public void Revoke(RevokeRequest request)
698+
{
699+
var requestOptions = new RequestOptions();
700+
requestOptions.Data = request;
701+
_seam.Post<object>("/client_sessions/revoke", requestOptions);
702+
}
703+
704+
public void Revoke(string clientSessionId = default)
705+
{
706+
Revoke(new RevokeRequest(clientSessionId: clientSessionId));
707+
}
708+
709+
public async Task RevokeAsync(RevokeRequest request)
710+
{
711+
var requestOptions = new RequestOptions();
712+
requestOptions.Data = request;
713+
await _seam.PostAsync<object>("/client_sessions/revoke", requestOptions);
714+
}
715+
716+
public async Task RevokeAsync(string clientSessionId = default)
717+
{
718+
await RevokeAsync(new RevokeRequest(clientSessionId: clientSessionId));
719+
}
604720
}
605721
}
606722

0 commit comments

Comments
 (0)