getMessagesFromServer static method
Implementation
static Future<List> getMessagesFromServer() async {
if (kDebugMode) print('🌐 getMessagesFromServer: consultando mensajes al servidor...');
final pref = await SharedPreferences.getInstance();
List savedMessages = await ChatSocketRepository.getLocalMessages();
try {
var requestBody = {
"query": [
{
"value": pref.getString(IdentifierType.integrationId.name),
"key": "integrationId"
},
{
"value": [
{"recipientId": pref.getString(IdentifierType.userId.name)},
{"senderId": pref.getString(IdentifierType.userId.name)},
],
"key": "\$or",
},
if (savedMessages.isNotEmpty)
{
"value": {"\$gt": savedMessages[savedMessages.length - 1]["messageDate"]},
"key": "createdAt",
},
],
"sort": "DESC",
"pageSize": 20,
"page": 1,
};
if (kDebugMode) print('🌐 getMessagesFromServer: payload → ${jsonEncode(requestBody)}');
var response = await ApiManager.post(
'${SocketUrls.baseBrokerEndpoint}${SocketUrls.obtainMessagesEndpoint}',
body: jsonEncode(requestBody));
if (kDebugMode) print('🌐 getMessagesFromServer: statusCode=${response.statusCode} | body=${response.body}');
if (response.statusCode == 200) {
var responseDecoded = jsonDecode(response.body)["data"] ?? [];
List newMessages = responseDecoded.map((e) => Message.fromJson(e)).toList();
if (kDebugMode) print('🌐 getMessagesFromServer: mensajes nuevos recibidos → ${newMessages.length}');
return newMessages;
} else {
return [];
}
} catch (e) {
if (kDebugMode) print('🌐 getMessagesFromServer: error → $e');
return [];
}
}