public async Task <Option <IResponse> > GetResponseAsync([NotNull] IRequest request, CancellationToken token = default)
        {
            if (request is null)
            {
                return(Option.None <IResponse>());
            }

            var response = await _cache.GetOrCreateAsync(request.CacheKey, () =>
            {
                return(_graphQLService.SendQueryAsync <IResponse>(request, token));
            });

            if (response.Errors?.Any() == true)
            {
                return(Option.None <IResponse>());
            }

            return(response.Data.SomeNotNull());
        }