createForumThread method
Create a thread in a forum channel.
Implementation
Future<Thread> createForumThread(Snowflake id, ForumThreadBuilder builder) async {
final route = HttpRoute()
..channels(id: id.toString())
..threads();
final HttpRequest request;
if (builder.message.attachments?.isNotEmpty == true) {
final attachments = builder.message.attachments!;
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['message'] as Map)['attachments'] as List)[i] as Map)['id'] = i.toString();
}
request = MultipartRequest(
route,
method: 'POST',
jsonPayload: jsonEncode(payload),
files: files,
);
} else {
request = BasicRequest(route, method: 'POST', body: jsonEncode(builder.build()));
}
final response = await client.httpHandler.executeSafe(request);
final thread = parse(response.jsonBody as Map<String, Object?>) as Thread;
client.updateCacheWith(thread);
return thread;
}