create method

  1. @override
Future<Map<String, dynamic>> create(
  1. Map<String, dynamic> data, [
  2. Map<String, dynamic>? params
])

Creates a resource.

Implementation

@override
Future<Map<String, dynamic>> create(
  Map<String, dynamic> data, [
  Map<String, dynamic>? params,
]) async {
  var item = _removeSensitive(data);

  try {
    if (params == null || params.isEmpty) {
      var result = await collection.insertOne(data);
      return _jsonify(result.document ?? {});
    } else {
      // Deprecated:
      // var nonce = (await collection.db.getNonce())['nonce'] as String?;
      var result = await collection.findAndModify(
        query: _makeQuery(params),
        update: item,
        returnNew: true,
        upsert: true,
      );
      return _jsonify(result ?? {});
    }
  } catch (e, st) {
    throw AngelHttpException(stackTrace: st);
  }
}