コード例 #1
0
        /// <summary>
        /// Resolves all mutations on guest accesses.
        /// </summary>
        /// <param name="graphQlMutation"></param>
        public void ResolveMutation(GraphQlMutation graphQlMutation)
        {
            // FLAG CHANNEL
            graphQlMutation.FieldAsync <BooleanGraphType>(
                "flagChannel",
                arguments: new QueryArguments(
                    new QueryArgument <NonNullGraphType <StringGraphType> > {
                Name = "channelId"
            }
                    ),
                resolve: async(context) =>
            {
                // read user context dictionary
                var userContext = (GraphQlUserContext)context.UserContext;
                string userId   = userContext.GetUserId();

                // require user to be authenticated
                if (userId == null)
                {
                    return(false);
                }

                await _flagRepository.AddFlag(
                    context.GetArgument <string>("channelId"),
                    userId
                    );

                return(true);
            });
        }
コード例 #2
0
        public static async Task <string> PostToJsonAsync(this GraphQlClient client, GraphQlMutation mutation, params KeyValuePair <string, string>[] headers)
        {
            var response = await client.PostMutationAsync(mutation, headers);

            await using var stream = response?.GetResponseStream();

            using var reader = new StreamReader(stream ?? throw new InvalidOperationException(), Encoding.UTF8);
            return(reader.ReadToEnd());
        }
コード例 #3
0
 /// <summary>
 /// Resolves all mutations on guest accesses.
 /// </summary>
 /// <param name="graphQlMutation"></param>
 public void ResolveMutation(GraphQlMutation graphQlMutation)
 {
 }
コード例 #4
0
 public static string PostToJson(this GraphQlClient client, GraphQlMutation mutation, params KeyValuePair <string, string>[] headers)
 => PostToJsonAsync(client, mutation, headers).Result;