insert<R> method

  1. @override
Future<Response<T>> insert<R>({
  1. required T data,
  2. String? id,
  3. R? source(
    1. R parent
    )?,
})
override

Implementation

@override
Future<Response<T>> insert<R>({
  required T data,
  String? id,
  R? Function(R parent)? source,
}) async {
  final response = Response<T>();
  if ((id ?? "").isNotEmpty) {
    final ref = _source(source).child(id ?? "");
    return await ref.get().then((value) async {
      if (!value.exists) {
        await ref.set(data);
        return response.copy(data: data);
      } else {
        return response.copy(
          snapshot: value,
          message: 'Already inserted!',
        );
      }
    });
  } else {
    return response.copy(error: "ID isn't valid!");
  }
}