request method

  1. @override
Future<ChalonaResponse> request(
  1. String path, {
  2. Map? data,
  3. List<ChalonaFile> files = const [],
})
override

Implementation

@override
Future<ChalonaResponse> request(
  String path, {
  Map? data,
  List<ChalonaFile> files = const [],
}) async {
  data ??= {};
  data['lang'] ??= 'es';
  var lang = data['lang'] ?? 'es';

  try {
    await startServer();

    var req = _ServerRequest(path: path, data: data);
    await req.validate();

    // rutas a funciones en  no-sql
    if (_ServerRequests.containsKey(path)) {
      return _ServerRequests[path]!(
          ChalonaRequest(path: path, data: MapType.from(data), files: files));
    }

    ChalonaResponse r;
    r = await host.request(path, data: data);
    if (req.fn == 'login' && r.ok) {
      var x = r.data;

      x['token'] = util.generateBearerToken({
        'user': 20,
        'empresa': 20,
      }, 'b742-dc87065ec674');
      console.log(x);
      r = ChalonaResponse(source: {'ok': true, 'msg': r.msg, 'data': x});
    }

    // r.translateTo(lang);
    if (!r.ok) {
      throw r;
    }
    return r;
  } on ChalonaResponse catch (e) {
    // e.translateTo(lang);
    throw e;
  }
}