45 lines
1.5 KiB
C#
45 lines
1.5 KiB
C#
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<dynamic> 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;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|