fetch email reversed and, fixed moveEmail, so it moves every message and not just the first of the thread

This commit is contained in:
Juan Marulanda De Los Rios 2025-08-25 13:54:18 -04:00
parent de7758102b
commit 2ce8af1608

View File

@ -49,7 +49,39 @@ class ApiService {
return [];
}
}
Future<List<GetThreadResponse>> fetchEmailsFromFolderReversed(
String folder, int pagenitaion) async {
try {
var url = Uri.http('$ip:$port', 'sorted_threads_by_date_current', {
'folder': folder,
'limit': '50',
'offset': pagenitaion.toString(),
});
var response = await http.get(url);
List<GetThreadResponse> allEmails = [];
if (response.statusCode == 200) {
List json = jsonDecode(response.body);
for (var item in json) {
//each item in the json is a date
if (item.length > 1 && item[0] is String && item[1] is List) {
List<int> threadIDs = List<int>.from(item[1]);
for (var threadId in threadIDs) {
await fetchThreads(threadId, allEmails);
}
}
}
currFolder = folder;
return allEmails;
} else {
throw Exception('Failed to load threads');
}
} catch (e) {
print('_displayEmailsFromFolder caught error: $e');
return [];
}
}
Future<void> fetchThreads(
//populates allEmails, which is the List that contains all the emails in a thread
int threadId,
@ -180,16 +212,17 @@ class ApiService {
return false;
}
SerializableMessage firstMail = mailsInSerializable[0];
Map<String, String> requestBody = {
'from': fromFolder,
'uid': firstMail.uid.toString(),
'to': "Deleted Crabmail",
};
// SerializableMessage firstMail = mailsInSerializable[0];
try {
var response = await http.post(
for (SerializableMessage mail in mailsInSerializable) {
Map<String, String> requestBody = {
'from': fromFolder,
'uid': mail.uid.toString(),
'to': "Deleted Crabmail",
};
var response = await http.post(
url,
headers: {
'Content-Type': 'application/json',
@ -201,7 +234,7 @@ class ApiService {
return true;
} else {
print('error ${response.statusCode} ${response.body}');
}
}}
} catch (e) {
print("failed trying to post move_email, with error: $e");
}
@ -374,8 +407,8 @@ class ApiService {
} catch (e) {
print('_getMDContent caught error: $e');
}
print("IDS inside fetch md content $IDsString");
// print("IDS inside fetch md content $IDsString");
// print("inside apiservice $MDofThread");
return MDofThread;
}
@ -454,9 +487,8 @@ class ApiService {
"subject": subject ?? "Untitled",
"in_reply_to": "",
"messages": [
{
"message": emailContent ?? "",
"is_html": false}],
{"message": emailContent ?? "", "is_html": false}
],
"attachments": [],
"inline_images": [],
};