RestMutationBuilder<ResponseType, QueryType extends RestBaseQueryParams, ErrorType, VariablesType, RecoveryType> constructor

RestMutationBuilder<ResponseType, QueryType extends RestBaseQueryParams, ErrorType, VariablesType, RecoveryType>({
  1. Key? key,
  2. required BuildContext context,
  3. HttpBaseQuery? baseQuery,
  4. required QueryType params,
  5. required Widget builder(
    1. BuildContext,
    2. Mutation
    ),
  6. RetryConfig? retryConfig,
  7. MutationOnDataFn<ResponseType, RecoveryType>? onData,
  8. dynamic onError(
    1. ErrorType,
    2. RecoveryType?
    )?,
  9. MutationOnMutationFn<VariablesType, RecoveryType>? onMutate,
  10. List<String>? invalidateQueryTags,
  11. 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);
          });