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
Propiedades:
valor - es el nombre de la coleccion, idServer o cualquier otro valor por el cual se va a buscar.
por defecto se busca por el campo data.coleccion que es el nombre de la coleccion.
clave - es el campo por el cual se va a buscar el valor por defecto es data.coleccion
si se quiere buscar por otro campo se debe pasar el nombre del campo.Ejemplo _id.
modeToWork - es el modo de trabajo que se va a utilizar por defecto es ModeToWork.online
versionColeccion - es la version de la coleccion que se va a buscar por defecto es 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"}]}';
final response = await leeById<ColeccionObjBox>(
coleccion: EnvironmentApiRest.colecciones,
consulta: consulta,
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) {
log('Error al obtener el esquema de la coleccion $valor error: $e');
return {};
}
}