upsert<TModel extends GraphqlModel> method

  1. @override
Future<Response?> upsert<TModel extends GraphqlModel>(
  1. TModel instance, {
  2. Query? query,
  3. ModelRepository<GraphqlModel>? repository,
})

Insert or update a model instance

Implementation

@override
Future<Response?> upsert<TModel extends GraphqlModel>(instance, {query, repository}) async {
  final adapter = modelDictionary.adapterFor[TModel]!;
  final variables = await adapter.toGraphql(instance, provider: this, repository: repository);
  final request = GraphqlRequest<TModel>(
    action: QueryAction.upsert,
    instance: instance,
    modelDictionary: modelDictionary,
    query: query,
    variableNamespace: variableNamespace,
    variables: variables,
  ).request;
  if (request == null) return null;
  await for (final resp in link.request(request)) {
    return resp;
  }
  return null;
}