using GraphQL.Client; using GraphQL.Common.Request; using GraphQL.Common.Response; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace BodyshopUploader.Utils { public static class GraphQL { private static NLog.Logger logger = NLog.LogManager.GetCurrentClassLogger(); public static GraphQLClient CreateGQLClient() { var graphQLClient = new GraphQLClient("https://bodyshop-dev-db.herokuapp.com/v1/graphql"); graphQLClient.DefaultRequestHeaders.Add("Authorization", "Bearer " + Utils.Auth.authlink.FirebaseToken); return graphQLClient; } public static async Task ExecuteQuery(GraphQLRequest r) { using (var g = Utils.GraphQL.CreateGQLClient()) { logger.Trace("Firing GQL Query: {0} {1}", r.Query.ToString(), r.Variables); var graphQLResponse = await g.PostAsync(r); if (graphQLResponse.Errors == null) { logger.Trace("GQL Response: {0}", graphQLResponse.Data); return graphQLResponse.Data; } else { logger.Error("Error executing query."); Array.ForEach(graphQLResponse.Errors, x => logger.Error(x.Message)); logger.Error("---------------------"); return null; } } } } }