Skip to content

Commit 5caabc8

Browse files
committed
code quality
1 parent b1f85c6 commit 5caabc8

3 files changed

Lines changed: 14 additions & 25 deletions

File tree

src/Disc.NET.Client.SDK/Client.cs

Lines changed: 2 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,8 @@ public async Task InteractionRespondingAsync(string interactionId, string intera
5757

5858
private async Task SendMessageAsync(ApiMessage message, string channelId, CancellationToken cancellation = default)
5959
{
60-
var messageJson = GetApiMessageJson(message, DiscNetSerializer.GetInstance());
60+
var serializer = DiscNetSerializer.GetInstance();
61+
var messageJson = serializer.Serialize(message);
6162
var content = new StringContent(messageJson, Encoding.UTF8, "application/json");
6263
var response = await HttpClient.PostAsync($"channels/{channelId}/messages", content, cancellation).ConfigureAwait(false);
6364
if (!response.IsSuccessStatusCode)
@@ -78,18 +79,4 @@ private async Task PostAsync(string json, string uri, CancellationToken cancella
7879
}
7980
}
8081

81-
private static string GetApiMessageJson(ApiMessage apiMessage, DiscNetSerializer serializer)
82-
{
83-
var message = new
84-
{
85-
apiMessage.Content,
86-
apiMessage.Embeds,
87-
apiMessage.Flags,
88-
apiMessage.Type,
89-
apiMessage.MessageReference,
90-
Components = apiMessage.MountComponents()
91-
};
92-
93-
return serializer.Serialize(message);
94-
}
9582
}

src/Disc.NET.Client.SDK/Messages/ApiMessage.cs

Lines changed: 11 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -20,15 +20,17 @@ public class ApiMessage
2020
public long Flags => MessageFlags?.Aggregate(0L, (current, flag) => current | (long)flag) ?? 0L;
2121

2222
[JsonIgnore]
23-
public List<IMessageComponentBuilder> Components { get; set; } = [];
23+
public List<IMessageComponentBuilder> MessageComponents { get; set; } = [];
2424

25-
public int? Type { get; set; }
25+
public List<object> Components => MountComponents();
26+
27+
public int? Type { get; set; }
2628

2729
public ApiMessage? MessageReference { get; set; }
2830

29-
public List<object> MountComponents()
31+
private List<object> MountComponents()
3032
{
31-
if (Components.Count > 5)
33+
if (MessageComponents.Count > 5)
3234
throw new DiscNetGenericException("The message cannot contain more than 5 top-level components.");
3335

3436
var results = new List<object>();
@@ -39,7 +41,7 @@ public List<object> MountComponents()
3941
NormalizeActionRows<ActionRowButtonComponentBuilder>(ActionRowConstraint.MAX_BUTTONS_PER_ACTION_ROW, message =>
4042
new ActionRowButtonComponentBuilder().AddButtons(message));
4143

42-
Components.ForEach(x => results.Add(x.Build()));
44+
MessageComponents.ForEach(x => results.Add(x.Build()));
4345
return results;
4446
}
4547

@@ -66,7 +68,7 @@ public List<object> MountComponents()
6668
/// - Insufficient available action row slots to split invalid rows
6769
/// </exception>
6870
/// <remarks>
69-
/// This method mutates the <see cref="Components"/> collection by:
71+
/// This method mutates the <see cref="MessageComponents"/> collection by:
7072
/// - Removing excess components from invalid action rows
7173
/// - Adding newly created action rows to the message
7274
/// </remarks>
@@ -75,7 +77,7 @@ private void NormalizeActionRows<T>(int quantityComponentPerActionRow,
7577
Func<List<IMessageComponent>, IMessageComponentBuilder> createBuilderFunc)
7678
where T : IMessageComponentBuilder
7779
{
78-
var actionRows = Components.Where(x => x is T).ToList();
80+
var actionRows = MessageComponents.Where(x => x is T).ToList();
7981

8082
if (actionRows.Count == 0) return;
8183
int actionRowsPerMessage = ActionRowConstraint.MAX_ACTION_ROWS_PER_MESSAGE;
@@ -86,7 +88,7 @@ private void NormalizeActionRows<T>(int quantityComponentPerActionRow,
8688
$"The message cannot contain more than {actionRowsPerMessage} top-level components.");
8789
}
8890

89-
int availableActionRowSlots = actionRowsPerMessage - Components.Count;
91+
int availableActionRowSlots = actionRowsPerMessage - MessageComponents.Count;
9092
var invalidActionRows = actionRows.Where(x => x.Components.Count > quantityComponentPerActionRow).ToList();
9193
var containsActionRowsInvalids = invalidActionRows.Count > 0;
9294

@@ -149,7 +151,7 @@ private void NormalizeActionRows<T>(int quantityComponentPerActionRow,
149151
newActionRow = createBuilderFunc.Invoke([component]);
150152
}
151153

152-
Components.Add(newActionRow);
154+
MessageComponents.Add(newActionRow);
153155
newActionRowsCount++;
154156
}
155157
}

tests/GenericBot/WeatherCommand.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -248,7 +248,7 @@ public async Task RunAsync(InteractionContext context, SlashCommandParamsResult
248248
var message = new ApiMessage
249249
{
250250
Embeds = [embed],
251-
Components = [actionRowWithSelectMenu]
251+
MessageComponents = [actionRowWithSelectMenu]
252252
};
253253

254254
await context.Response.SendMessageAsync(message, CancellationToken.None);

0 commit comments

Comments
 (0)