Skip to content
Merged
Show file tree
Hide file tree
Changes from 5 commits
Commits
Show all changes
65 commits
Select commit Hold shift + click to select a range
f006023
Added data-structures for REST API
budgetdevv Apr 17, 2024
15a093c
Added MessagePollAnswer.Id
budgetdevv Apr 17, 2024
73c758a
Added MessagePollAnswerCount.cs and MessagePollResults.cs
budgetdevv Apr 17, 2024
3188942
Avoid hiding JsonEntity.Id, renamed to AnswerId
budgetdevv Apr 17, 2024
44514ac
Made some properties `required`
budgetdevv Apr 17, 2024
d3e400c
- Removed MessagePollBase.cs ( Kuba said send / receive shouldn't mix )
budgetdevv Apr 17, 2024
429ea12
Get rid of required keyword
budgetdevv Apr 17, 2024
267ef99
- Added JsonMessagePollAnswerCount.cs
budgetdevv Apr 17, 2024
9994050
Get rid of null! usage
budgetdevv Apr 17, 2024
b5ba61c
Fixed formatting
budgetdevv Apr 17, 2024
13586cf
- Remove required keyword, suppress using null! ( Rider seems to comp…
budgetdevv Apr 17, 2024
2e315cc
- Added MessagePoll.Results
budgetdevv Apr 17, 2024
b0935b4
Don't use null!
budgetdevv Apr 17, 2024
7520a04
Added MessagePollMediaProperties.cs and MessagePollAnswerProperties.cs
budgetdevv Apr 17, 2024
7233eae
Added constructor to MessagePollAnswerProperties.cs
budgetdevv Apr 17, 2024
0ec3f2d
Optimize namespace
budgetdevv Apr 17, 2024
4eac4c0
Added comments
budgetdevv Apr 17, 2024
01f0810
Added RestClient.Undocumented.ExpirePollAsync(). Not too sure if it w…
budgetdevv Apr 17, 2024
e5e0b78
Removed property in JsonMessagePollResults.cs
budgetdevv Apr 18, 2024
b514da3
Removed initializer
budgetdevv Apr 18, 2024
e98a32f
Removed MessagePoll's setters
budgetdevv Apr 18, 2024
cfbf103
Read values from JsonModel instead of storing them
budgetdevv Apr 18, 2024
ce54d61
Removed SetsRequiredMembers attribute
budgetdevv Apr 18, 2024
d0802d0
- Convert more constructors to primary ones.
budgetdevv Apr 18, 2024
20db56e
MessagePoll.cs:
budgetdevv Apr 18, 2024
a070dae
Prefer IEnumerable over array.
budgetdevv Apr 18, 2024
6d834de
Removed redundant partial keyword
budgetdevv Apr 18, 2024
ab2643e
Revert change to IReadOnlyList
budgetdevv Apr 18, 2024
8ee04f0
Use IReadOnlyList
budgetdevv Apr 18, 2024
5d3e369
Fixed JsonMessagePollResults.cs
budgetdevv Apr 18, 2024
aceb052
Revert back to IReadOnlyList for MessagePollResults.Answers, it seems…
budgetdevv Apr 18, 2024
db3c355
Made AnswerId a uint
budgetdevv Apr 19, 2024
6ad8d6a
Renamed ExpireAt to ExpiresAt for consistency
budgetdevv Apr 19, 2024
64107c9
AnswerId is now a uint for MessagePollAnswer.cs ( And its JSON variant )
budgetdevv Apr 19, 2024
014772c
It seems like MessagePollResults.Answers is is not nullable. An empty…
budgetdevv Apr 19, 2024
dd2a05d
AnswerId should be uint
budgetdevv Apr 19, 2024
4161b6e
It seems like this is only sent via gateway, commenting out for now...
budgetdevv Apr 19, 2024
2d1db6a
Fixed RestMessage.ExpirePollAsync() ( Hopefully )
budgetdevv Apr 19, 2024
eff9175
Make MessagePollProperties.LayoutType nullable.
budgetdevv Apr 19, 2024
ca75062
Re-included MessagePollResults.ContainsAnswers
budgetdevv Apr 19, 2024
43a66e4
Made ids signed integer
budgetdevv Apr 19, 2024
618cc09
Optimize namespace
budgetdevv Apr 19, 2024
77549ee
Added InteractionMessageProperties.Poll
budgetdevv Apr 19, 2024
564dfcf
- Implemented RestMessage.GetPollAnswerVoters() ( Need to figure out …
budgetdevv Apr 19, 2024
67f9876
- Added JsonGetPollAnswerVotersResult.cs
budgetdevv Apr 19, 2024
eb4e1d3
Made afterUserId an optional parameter
budgetdevv Apr 19, 2024
a65e33f
Default DurationInHours to 1 ( Via optional ctor param )
budgetdevv Apr 19, 2024
acf5846
Fixed HttpMethod for RestMessage.GetPollAnswerVotersAsync() ( How doe…
budgetdevv Apr 19, 2024
de9f793
Added convenience API for constructing MessagePollAnswerProperties.cs
budgetdevv Apr 19, 2024
6b65212
Made params in primary ctor optional
budgetdevv Apr 19, 2024
dbef41a
Merge branch 'NetCordDev:alpha' into polls
budgetdevv Apr 29, 2024
ea917d7
Added MESSAGE_POLL_VOTE_ADD and MESSAGE_POLL_VOTE_REMOVE gateway even…
budgetdevv May 6, 2024
bbf4fd1
Added poll intents, made intents less complicated
budgetdevv May 6, 2024
03d0345
Added Poll field to WebhookMessageProperties.cs
budgetdevv May 6, 2024
22e617d
Merge branch 'NetCordDev:alpha' into polls
budgetdevv May 11, 2024
8e9c1c0
Adapt [GenerateAlias] to new NetCord commit
budgetdevv May 12, 2024
2105555
Added Poll property to IPartialMessage / PartialMessage
budgetdevv May 12, 2024
21ff69a
Source generate ExpirePollAsync() and GetPollAnswerVotersAsync() for …
budgetdevv May 12, 2024
9a2ecda
Message poll results are nullable
budgetdevv May 12, 2024
e73720a
Improvements
KubaZ2 Jul 8, 2024
c1cbfd9
Merge branch 'alpha' into polls
KubaZ2 Jul 8, 2024
3d31888
Work
KubaZ2 Jul 9, 2024
5dabdc0
Cleanup
KubaZ2 Jul 9, 2024
4662f06
Delete a comment
KubaZ2 Jul 9, 2024
3008a9b
Add missing `GenerateAliasAttribute`s
KubaZ2 Jul 9, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 10 additions & 0 deletions NetCord/Rest/MessagePoll.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
using System.Text.Json.Serialization;

namespace NetCord.Rest;

public partial class MessagePoll : MessagePollBase
{
// Non-expiring posts are possible in the future, see: https://github.com/discord/discord-api-docs/blob/e4bdf50f11f9ca61ace2636285e029a2b3dfd0ec/docs/resources/Poll.md#poll-object
[JsonPropertyName("expiry")]
public DateTimeOffset? Expiry { get; set; }
Comment thread
budgetdevv marked this conversation as resolved.
Outdated
}
14 changes: 14 additions & 0 deletions NetCord/Rest/MessagePollAnswer.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
using System.Text.Json.Serialization;

using NetCord.JsonModels;

namespace NetCord.Rest;

public partial class MessagePollAnswer : JsonEntity
{
[JsonPropertyName("answer_id")]
public ulong AnswerId { get; set; }

[JsonPropertyName("poll_media")]
public required MessagePollMedia PollMedia { get; set; }
}
17 changes: 17 additions & 0 deletions NetCord/Rest/MessagePollAnswerCount.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
using System.Text.Json.Serialization;

using NetCord.JsonModels;

namespace NetCord.Rest;

public partial class MessagePollAnswerCount : JsonEntity
{
[JsonPropertyName("id")]
public int AnswerId { get; set; }
Comment thread
budgetdevv marked this conversation as resolved.

[JsonPropertyName("count")]
public int Count { get; set; }

[JsonPropertyName("me_voted")]
public bool MeVoted { get; set; }
}
20 changes: 20 additions & 0 deletions NetCord/Rest/MessagePollBase.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
using System.Text.Json.Serialization;

using NetCord.JsonModels;

namespace NetCord.Rest;

public abstract partial class MessagePollBase : JsonEntity
{
[JsonPropertyName("question")]
public required MessagePollMedia Question { get; set; }

[JsonPropertyName("answers")]
public required MessagePollAnswer[] Answers { get; set; }

[JsonPropertyName("allow_multiselect")]
public bool AllowMultiselect { get; set; }

[JsonPropertyName("layout_type")]
public MessagePollLayoutType LayoutType { get; set; }
}
6 changes: 6 additions & 0 deletions NetCord/Rest/MessagePollLayoutType.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
namespace NetCord.Rest;

public enum MessagePollLayoutType
{
Default = 1,
}
14 changes: 14 additions & 0 deletions NetCord/Rest/MessagePollMedia.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
using System.Text.Json.Serialization;

using NetCord.JsonModels;

namespace NetCord.Rest;

public class MessagePollMedia : JsonEntity
{
[JsonPropertyName("text")]
public string? Text { get; set; }

[JsonPropertyName("emoji")]
public Emoji? Emoji { get; set; }
}
9 changes: 9 additions & 0 deletions NetCord/Rest/MessagePollProperties.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
using System.Text.Json.Serialization;

namespace NetCord.Rest;

public partial class MessagePollProperties : MessagePollBase
{
[JsonPropertyName("duration")]
public required int DurationInHours { get; set; }
}
16 changes: 16 additions & 0 deletions NetCord/Rest/MessagePollResults.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
using System.Text.Json.Serialization;

using NetCord.JsonModels;

namespace NetCord.Rest;

public partial class MessagePollResults : JsonEntity
{
[JsonPropertyName("is_finalized")]
public required bool IsFinalized { get; set; }

[JsonPropertyName("answer_counts")]
public MessagePollAnswerCount[]? Answers { get; set; }

public bool ContainsAnswers => Answers != null;
}
4 changes: 4 additions & 0 deletions NetCord/Rest/MessageProperties.cs
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,10 @@ public partial class MessageProperties : IHttpSerializable
[JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingDefault)]
[JsonPropertyName("flags")]
public MessageFlags? Flags { get; set; }

[JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingDefault)]
[JsonPropertyName("poll")]
public MessagePollProperties? Poll { get; set; }

public HttpContent Serialize()
{
Expand Down