obtieneEsquema method

Future<Map<String, dynamic>> obtieneEsquema({
  1. required String valor,
  2. String? clave = "data.coleccion",
  3. ModeToWork? modeToWork,
  4. String versionColeccion = '1',
})

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 {};
  }
}