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 []; 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( Future<void> fetchThreads(
//populates allEmails, which is the List that contains all the emails in a thread //populates allEmails, which is the List that contains all the emails in a thread
int threadId, int threadId,
@ -180,16 +212,17 @@ class ApiService {
return false; return false;
} }
SerializableMessage firstMail = mailsInSerializable[0]; // SerializableMessage firstMail = mailsInSerializable[0];
Map<String, String> requestBody = {
'from': fromFolder,
'uid': firstMail.uid.toString(),
'to': "Deleted Crabmail",
};
try { 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, url,
headers: { headers: {
'Content-Type': 'application/json', 'Content-Type': 'application/json',
@ -201,7 +234,7 @@ class ApiService {
return true; return true;
} else { } else {
print('error ${response.statusCode} ${response.body}'); print('error ${response.statusCode} ${response.body}');
} }}
} catch (e) { } catch (e) {
print("failed trying to post move_email, with error: $e"); print("failed trying to post move_email, with error: $e");
} }
@ -374,8 +407,8 @@ class ApiService {
} catch (e) { } catch (e) {
print('_getMDContent caught error: $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; return MDofThread;
} }
@ -454,9 +487,8 @@ class ApiService {
"subject": subject ?? "Untitled", "subject": subject ?? "Untitled",
"in_reply_to": "", "in_reply_to": "",
"messages": [ "messages": [
{ {"message": emailContent ?? "", "is_html": false}
"message": emailContent ?? "", ],
"is_html": false}],
"attachments": [], "attachments": [],
"inline_images": [], "inline_images": [],
}; };