obtieneEsquema method
Funcion utilizada para obtener esquema de una coleccion como parametro requiere el nombre de la coleccion y opcionalmente la version de la coleccion si no se envia la version se toma por defecto la version 1
Implementation
Future<Map<String, dynamic>> obtieneEsquema({
required String valor,
String? clave = "data.coleccion",
ModeToWork? modeToWork,
String versionColeccion = '1',
}) async {
try {
Map<String, dynamic> jsonEsquema = <String, dynamic>{};
final consulta =
'{ "\$and": [{ "$clave": "$valor"}, {"data.versionColeccion": "$versionColeccion"}]}';
///Se hace esto para eliminar el prefijo data. ya que para las busquedas en la BD local no se utiliza
final claveBD = valor.replaceAll('${EnvironmentApiRest.data}.', '');
final argsLocalBD = [
[claveBD, 'versionColeccion'],
['=', '='],
[valor, versionColeccion]
];
final response = await leeById<ColeccionObjBox>(
coleccion: EnvironmentApiRest.colecciones,
consulta: consulta,
argsLocalBD: argsLocalBD,
modeToWork: modeToWork,
modelo: ColeccionObjBox());
final coleccion = response[EnvironmentApiRest.data] ?? ColeccionObjBox();
if (coleccion.idServer.isEmpty) {
throw 'No se encontro el esquema';
}
try {
jsonEsquema =
jsonDecode(jsonDecode(coleccion.data)[EnvironmentApiRest.esquema]);
} catch (e) {
jsonEsquema = <String, dynamic>{};
}
return jsonEsquema;
} catch (e) {
logDebug('Error al obtener el esquema de la coleccion $valor error: $e');
return {};
}
}