createResponse method
- Snowflake id,
- String token,
- InteractionResponseBuilder builder
Create a response to an interaction.
Implementation
Future<void> createResponse(Snowflake id, String token, InteractionResponseBuilder builder) async {
final route = HttpRoute()
..interactions(id: id.toString(), token: token)
..callback();
final HttpRequest request;
if (builder.data case MessageBuilder(:final attachments?) || MessageUpdateBuilder(:final attachments?)
when !identical(attachments, sentinelList) && attachments.isNotEmpty) {
final payload = builder.build();
final files = <MultipartFile>[];
for (int i = 0; i < attachments.length; i++) {
files.add(MultipartFile.fromBytes(
'files[$i]',
attachments[i].data,
filename: attachments[i].fileName,
));
(((payload['data'] as Map<String, Object?>)['attachments'] as List)[i] as Map<String, Object?>)['id'] = i.toString();
}
request = MultipartRequest(
route,
method: 'POST',
jsonPayload: jsonEncode(payload),
files: files,
applyGlobalRateLimit: false,
);
} else {
request = BasicRequest(
route,
method: 'POST',
body: jsonEncode(builder.build()),
applyGlobalRateLimit: false,
);
}
await client.httpHandler.executeSafe(request);
}