uploadInfoToServer<T extends ColeccionBase> method
Funcion utilizada para subir la informacion del dispositivo al servidor lee
los registros con el campo eTransfer igual a D y los envia al servidor
parametros solicitados requeridos
parametros solicitados requeridos
coleccion - es la coleccion que se quiere leer y obtener los registros
ordenar - es el orden con el que se va a devolver la lista de registros
ejemplo jsonEncode({'data.idCiudadano': 1})
queryPropertiesWrapper - es un objeto de tipo QueryPropertiesWrapper que
contiene las propiedades que se van a utilizar para la consulta si no se
envia nada se toma por defecto el objeto ColeccionObjBoxWrapper()
modelo - es el modelo que se va a utilizar para la consulta si no se
envia nada se toma por defecto el objeto ColeccionObjBox()
Implementation
Future<Map<String, dynamic>> uploadInfoToServer<T extends ColeccionBase>({
required String coleccion,
required String versionData,
String? ordenar,
QueryPropertiesWrapper<T>? queryPropertiesWrapper,
T? modelo,
}) async {
try {
modelo ??= ColeccionObjBox() as T;
queryPropertiesWrapper ??=
ColeccionObjBoxWrapper() as QueryPropertiesWrapper<T>;
final response = await mobileDb.obtenerRegistrosNoTransferidos<T>(
coleccion: coleccion,
ordenar: ordenar,
queryPropertiesWrapper: queryPropertiesWrapper,
);
if (response.containsKey(EnvironmentApiRest.dataOk) &&
response[EnvironmentApiRest.data].isNotEmpty) {
for (int i = 0; i < response[EnvironmentApiRest.data].length; i++) {
final T item = response[EnvironmentApiRest.data][i];
final responseGuarda = await cloudDb.guardar(
coleccion: coleccion,
versionData: versionData,
data: item.tojson(),
runIsolate: false);
if (!responseGuarda.containsKey(EnvironmentApiRest.dataOk)) {
return responseGuarda;
}
final idServer = [...responseGuarda[EnvironmentApiRest.data]]
.first[EnvironmentApiRest.idColeccion] ??
'';
await mobileDb.guardar<T>(
data: item.copyWith(
eTransfer: '',
idServer: (idServer.isNotEmpty) ? idServer : null),
queryPropertiesWrapper: queryPropertiesWrapper);
}
}
return {EnvironmentApiRest.dataOk: true};
} catch (error) {
return {
EnvironmentApiRest.dataNOk: 'NOK',
EnvironmentApiRest.error: 'Error al transferir la informacion $error'
};
}
}