Skip to content

Commit 14ebe02

Browse files
committed
bump version, graphql support
1 parent 46751d6 commit 14ebe02

File tree

6 files changed

+68
-3
lines changed

6 files changed

+68
-3
lines changed

Diff for: cloudcms-csharp-driver.csproj

+1-1
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
<RootNamespace>CloudCMS</RootNamespace>
77

88
<PackageId>cloudcms</PackageId>
9-
<PackageVersion>1.1.4</PackageVersion>
9+
<PackageVersion>1.1.5</PackageVersion>
1010
<Title>CloudCMS Driver</Title>
1111
<Description>C# .NET driver for CloudCMS</Description>
1212
<Summary>C# .NET driver for CloudCMS</Summary>

Diff for: src/CloudCMSDriver.cs

+7
Original file line numberDiff line numberDiff line change
@@ -181,6 +181,13 @@ public async Task<JObject> RequestAsync(string uri, HttpMethod method, IDictiona
181181
string responseString = await response.Content.ReadAsStringAsync();
182182
return JObject.Parse(responseString);
183183
}
184+
185+
public async Task<string> RequestStringAsync(string uri, HttpMethod method, IDictionary<string, string> queryParams = null, HttpContent body = null)
186+
{
187+
HttpResponseMessage response = await _requestAsync(uri, method, queryParams, body);
188+
string responseString = await response.Content.ReadAsStringAsync();
189+
return responseString;
190+
}
184191

185192
private async Task<HttpResponseMessage> _requestAsync(string uri, HttpMethod method, IDictionary<string, string> queryParams = null, HttpContent body = null)
186193
{

Diff for: src/ICloudCMSDriver.cs

+1
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ namespace CloudCMS
99
public interface ICloudCMSDriver
1010
{
1111
Task<JObject> RequestAsync(string uri, HttpMethod method, IDictionary<string, string> queryParams = null, HttpContent body = null);
12+
Task<string> RequestStringAsync(string uri, HttpMethod method, IDictionary<string, string> queryParams = null, HttpContent body = null);
1213
Task<JObject> GetAsync(string uri, IDictionary<string, string> queryParams = null);
1314
Task<JObject> PostAsync(string uri, IDictionary<string, string> queryParams = null, HttpContent body = null);
1415
Task<JObject> PutAsync(string uri, IDictionary<string, string> queryParams = null, HttpContent body = null);

Diff for: src/branches/Branch.cs

+30
Original file line numberDiff line numberDiff line change
@@ -211,5 +211,35 @@ public async Task<INode> RootNodeAsync()
211211
{
212212
return (INode) await ReadNodeAsync("root");
213213
}
214+
215+
public async Task<JObject> GraphqlQuery(string query, string operationName = null, IDictionary<string, string> variables = null)
216+
{
217+
string uri = this.URI + "/graphql";
218+
219+
IDictionary<string, string> queryParams = new Dictionary<string, string>();
220+
queryParams.Add("query", query);
221+
222+
if (operationName != null)
223+
{
224+
queryParams.Add("operationName", operationName);
225+
}
226+
227+
if (variables != null)
228+
{
229+
foreach (var kvp in variables)
230+
{
231+
queryParams.Add(kvp.Key, kvp.Value);
232+
}
233+
}
234+
235+
JObject response = await Driver.GetAsync(uri, queryParams);
236+
return response;
237+
}
238+
239+
public Task<string> GraphqlSchema()
240+
{
241+
string uri = this.URI + "/graphql/schema";
242+
return Driver.RequestStringAsync(uri, HttpMethod.Get);
243+
}
214244
}
215245
}

Diff for: src/branches/IBranch.cs

+3-2
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,8 @@ public interface IBranch : IRepositoryDocument
2323

2424
Task<INode> RootNodeAsync();
2525

26-
// Definitions
27-
26+
Task<JObject> GraphqlQuery(string query, string operationName=null, IDictionary<string, string> variables=null);
27+
28+
Task<string> GraphqlSchema();
2829
}
2930
}

Diff for: tests/GraphqlTest.cs

+26
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
using Newtonsoft.Json.Linq;
2+
using Xunit;
3+
4+
namespace CloudCMS.Tests
5+
{
6+
public class GraphqlTest : AbstractWithRepositoryTest
7+
{
8+
public GraphqlTest(RepositoryFixture fixture) : base(fixture)
9+
{
10+
11+
}
12+
13+
[Fact]
14+
public async void TestGraphql()
15+
{
16+
IBranch branch = await Fixture.Repository.ReadBranchAsync("master");
17+
18+
string schema = await branch.GraphqlSchema();
19+
Assert.NotNull(schema);
20+
21+
string query = "query { n_nodes { title } }";
22+
JObject result = await branch.GraphqlQuery(query);
23+
Assert.NotNull(result);
24+
}
25+
}
26+
}

0 commit comments

Comments
 (0)