/// <summary> /// Send a query to the Storefront API. /// </summary> /// <param name="query">Query that will be sent to the Storefront API</param> /// <param name="callback">callback that receives a response</param> override public void Load(string query, LoaderResponseHandler callback) { GlobalGameObject.AddComponent <LoaderComponent>() .SetURL("https://" + Domain + "/api/graphql.json") .SetHeaders(_Headers) .Load(query, callback); }
public override void Load(string query, LoaderResponseHandler callback) { var body = Encoding.ASCII.GetBytes(query); var w = new WWW(Url, body, _headers); _activeRequests.Add(ProcessRequest(w, callback)); }
public void Load(string query, LoaderResponseHandler callback) { Callback = callback; byte[] body = Encoding.ASCII.GetBytes(query); WWW w = new WWW(URL, body, Headers); StartCoroutine(DoWWW(w)); }
public void HandleResponse(string query, LoaderResponseHandler callback) { if (Is404Query(query)) { callback(null, "404 from mock loader"); } else if (IsGraphQLErrorQuery(query)) { callback(@"{""errors"": [{""message"": ""GraphQL error from mock loader""}]}", null); } }
public override void Load(string query, LoaderResponseHandler callback) { if (query == CollectionTestQueries.query1.ToString()) { callback(@"{""data"":{ ""shop"": { ""products"": { ""edges"": [ { ""node"": { ""title"": ""Product1"" }, ""cursor"": ""first page"" } ], ""pageInfo"": { ""hasNextPage"": true } } } }}", null); } else if (query == CollectionTestQueries.query2.ToString()) { callback(@"{""data"":{ ""shop"": { ""products"": { ""edges"": [ { ""node"": { ""title"": ""Product2"" }, ""cursor"": ""second page"" } ], ""pageInfo"": { ""hasNextPage"": false } } } }}", null); } }
public override void Load(string query, LoaderResponseHandler callback) { if (query == TestQueries.QueryFail.ToString() || query == TestQueries.MutationFail.ToString()) { callback(null, "Error: 404 Not Found error"); } else if (query == TestQueries.Query.ToString()) { callback(@"{""data"":{""shop"": {""name"": ""test shop""}}}", null); } else if (query == TestQueries.Mutation.ToString()) { callback(@"{""data"":{""customerAccessTokenCreate"": {""customerAccessToken"": {""accessToken"":""12345""}}}}", null); } else { throw new Exception("Invalid test data"); } }
public void Load(string query, LoaderResponseHandler callback) { bool handledResponse = false; foreach (IMockLoader loader in _Loaders) { if (loader.DoesHandleQueryResponse(query)) { loader.HandleResponse(query, callback); handledResponse = true; break; } } if (!handledResponse) { throw new Exception("NO QUERY RESPONSE: \n\n" + query + "\n\n"); } }
private IEnumerator ProcessRequest(WWW w, LoaderResponseHandler callback) { // We have to use this enumerator approach because the www class inherits from CustomYieldInstruction, // which isn't well supported in the editor. while (!w.isDone) { yield return(null); } if (!string.IsNullOrEmpty(w.error)) { callback(null, w.error); } else { callback(w.text, null); } w.Dispose(); }
/// <summary> /// Sends the GraphQL query to the GraphQL endpoint. /// </summary> /// <param name="query">a GraphQL query</param> /// <param name="callback">a callback which will receive a response from the GraphQL query</param> public abstract void Load(string query, LoaderResponseHandler callback);
public void HandleResponse(string query, LoaderResponseHandler callback) { callback(Responses[query], null); }