createDocument method

  1. @override
Future<String> createDocument(
  1. String collection,
  2. Map<String, dynamic> data
)

Creates a document in the specified collection

Implementation

@override
Future<String> createDocument(String collection, Map<String, dynamic> data) async {
  final connection = _requireConnection();
  await _ensureCollection(collection);

  final id = _extractId(data) ?? _generateId();
  final payload = _sanitizePayload(data);

  final sql = Sql('INSERT INTO ${_tableName(collection)} (id, data) VALUES (\$1, \$2)');
  await connection.execute(
    sql,
    parameters: [
      id,
      TypedValue(Type.jsonb, payload),
    ],
  );

  return id;
}