public void TestOptionalSerialization() { // ulong Assert.AreEqual(@"{""Entry"":0}", DiscordJson.SerializeObject(new TestFixture1 { Entry = new Optional <ulong?>(0UL) })); Assert.AreEqual(@"{}", DiscordJson.SerializeObject(new TestFixture1 { Entry = new Optional <ulong?>() })); // bool? Assert.AreEqual(@"{""Entry"":true}", DiscordJson.SerializeObject(new TestFixture2 { Entry = new Optional <bool?>(true) })); Assert.AreEqual(@"{""Entry"":false}", DiscordJson.SerializeObject(new TestFixture2 { Entry = new Optional <bool?>(false) })); Assert.AreEqual(@"{}", DiscordJson.SerializeObject(new TestFixture2 { Entry = new Optional <bool?>() })); // bool Assert.AreEqual(@"{""Entry"":true}", DiscordJson.SerializeObject(new TestFixture3 { Entry = new Optional <bool>(true) })); Assert.AreEqual(@"{""Entry"":false}", DiscordJson.SerializeObject(new TestFixture3 { Entry = new Optional <bool>(false) })); Assert.AreEqual(@"{}", DiscordJson.SerializeObject(new TestFixture3 { Entry = new Optional <bool>() })); }
public void TestOptionalSerialization2() { var p = new RestGuildModifyPayload(); Assert.AreEqual("{}", DiscordJson.SerializeObject(p)); Assert.AreEqual("{}", DiscordJson.SerializeObject(new RestGuildModifyPayload() { SystemChannelId = default,
/// <summary> /// Edits the interaction response /// </summary> /// <param name="token">The token of the interaction</param> /// <param name="builder">The data, if any, to edit the response with</param> /// <returns></returns> public async Task EditInteractionResponseAsync(string token, DiscordInteractionBuilder builder) { var route = $"/webhooks/{Client.CurrentApplication.Id}/{token}/messages/@original"; var bucket = Client.ApiClient.Rest.GetBucket(RestRequestMethod.PATCH, route, new { }, out var path); var url = Utilities.GetApiUriFor(path); await Client.ApiClient.DoRequestAsync(Client, bucket, url, RestRequestMethod.PATCH, route, payload : DiscordJson.SerializeObject(builder)); }
//Respond methods /// <summary> /// Creates a response to an interaction /// </summary> /// <param name="interactionId">The id of the interaction</param> /// <param name="token">The token of the interaction</param> /// <param name="type">The type to respond with</param> /// <param name="builder">The data, if any, to send</param> /// <returns></returns> public async Task CreateInteractionResponseAsync(ulong interactionId, string token, DiscordInteractionResponseType type, DiscordInteractionBuilder builder = null) { var pld = new InteractionCreatePayload { Type = type, Data = builder }; var route = $"/interactions/{interactionId}/{token}/callback"; var bucket = Client.ApiClient.Rest.GetBucket(RestRequestMethod.POST, route, new { }, out var path); var url = Utilities.GetApiUriFor(path); await Client.ApiClient.DoRequestAsync(Client, bucket, url, RestRequestMethod.POST, route, payload : DiscordJson.SerializeObject(pld)); }
internal async Task <IReadOnlyList <DiscordApplicationCommand> > BulkCreateCommandsAsync(List <CommandCreatePayload> pld, ulong?guildid = null) { string route; if (guildid == null) { route = $"/applications/{Client.CurrentApplication.Id}/commands"; } else { route = $"/applications/{Client.CurrentApplication.Id}/guilds/{guildid}/commands"; } var bucket = Client.ApiClient.Rest.GetBucket(RestRequestMethod.PUT, route, new { }, out var path); var url = Utilities.GetApiUriFor(path); var res = await Client.ApiClient.DoRequestAsync(Client, bucket, url, RestRequestMethod.PUT, route, payload : DiscordJson.SerializeObject(pld)); var ret = JsonConvert.DeserializeObject <List <DiscordApplicationCommand> >(res.Response); foreach (var app in ret) { app.Discord = Client; } return(ret); }