RestMutationBuilder<ResponseType, QueryType extends RestBaseQueryParams, ErrorType, VariablesType, RecoveryType> constructor
RestMutationBuilder<ResponseType, QueryType extends RestBaseQueryParams, ErrorType, VariablesType, RecoveryType> ({
- Key? key,
- required BuildContext context,
- HttpBaseQuery? baseQuery,
- required QueryType params,
- required Widget builder(
- BuildContext,
- Mutation
- RetryConfig? retryConfig,
- MutationOnDataFn<
ResponseType, RecoveryType> ? onData, - dynamic onError(
- ErrorType,
- RecoveryType?
- MutationOnMutationFn<
VariablesType, RecoveryType> ? onMutate, - List<
String> ? invalidateQueryTags, - List<
String> ? invalidateInfiniteQueryTag,
Implementation
RestMutationBuilder({
super.key,
required BuildContext context,
this.baseQuery,
required this.params,
required Widget Function(BuildContext, Mutation) builder,
super.retryConfig,
super.onData,
Function(ErrorType, RecoveryType?)? onError,
super.onMutate,
List<String>? invalidateQueryTags,
List<String>? invalidateInfiniteQueryTag,
}) : super(
params.tag,
(data) async {
var onStateChange = RestQueryClient.of(context)!.onStateChange;
if (onStateChange != null) {
onStateChange(true, false, null, null);
}
var response = await (RestQueryClient.of(context)!.baseQuery)
.performMutation<QueryType, VariablesType, ResponseType>(
params, data);
if (onStateChange != null) {
onStateChange(false, false, null, response);
}
return response;
},
refreshQueries: invalidateQueryTags,
refreshInfiniteQueries: invalidateInfiniteQueryTag,
builder: builder,
onError: (error, v) {
var onStateChange = RestQueryClient.of(context)!.onStateChange;
if (onStateChange != null) {
onStateChange(false, true, error, null);
}
if (onError != null) onError(error, v);
});