create method
Method to create data with optional data source builder.
Example:
T newData = //...;
repository.create(
newData,
params: Params({"field1": "value1", "field2": "value2"}),
);
Implementation
Future<Response<T>> create(
String id,
Map<String, dynamic> data, {
DataFieldParams? params,
bool merge = true,
bool createRefs = false,
}) async {
if (id.isEmpty) return Response(status: Status.invalidId);
if (data.isEmpty) return Response(status: Status.invalid);
return execute(() {
final path = ref(params, DataModifiers.create, id);
if (isEncryptor) {
return encryptor.input(data).then((raw) {
if (raw.isEmpty) {
return Response(status: Status.error, error: "Encryption error!");
}
return operation
.create(path, raw, merge: merge, createRefs: createRefs)
.then((value) {
return Response(status: Status.ok, data: build(data));
});
});
} else {
return operation
.create(path, data, merge: merge, createRefs: createRefs)
.then((v) {
return Response(status: Status.ok, data: build(data));
});
}
});
}