Skip to content

Commit c84088e

Browse files
Merge pull request #2 from stephenatsembit/db_admin
added ListDatabases, ListDatabasesNames and tests
2 parents 01cd335 + 0044e28 commit c84088e

File tree

21 files changed

+86
-7
lines changed

21 files changed

+86
-7
lines changed

.gitignore

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,7 @@ src/DataStax.AstraDB.DataApi/bin
33
src/DataStax.AstraDB.DataApi/obj
44
test/DataStax.AstraDB.DataApi.IntegrationTests/bin
55
test/DataStax.AstraDB.DataApi.IntegrationTests/obj
6-
test/DataStax.AstraDB.DataApi.Tests/bin
7-
test/DataStax.AstraDB.DataApi.Tests/obj
8-
appsettings.json
6+
test/DataStax.AstraDB.DataAPI.IntegrationTests/appsettings.sample.json
97
test/DataStax.AstraDB.DataApi.UnitTests/bin
108
test/DataStax.AstraDB.DataApi.UnitTests/obj
9+
appsettings.json

src/DataStax.AstraDB.DataApi/Admin/AstraDatabasesAdmin.cs

Lines changed: 25 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,11 @@
1818
using DataStax.AstraDB.DataApi.Core;
1919
using DataStax.AstraDB.DataApi.Core.Commands;
2020
using DataStax.AstraDB.DataApi.Utils;
21+
using System;
22+
using System.Collections.Generic;
23+
using System.Linq;
24+
using System.Net.Http;
25+
using System.Threading.Tasks;
2126

2227
namespace DataStax.AstraDB.DataApi.Admin;
2328

@@ -45,9 +50,27 @@ public List<string> ListDatabaseNames()
4550
return ListDatabases().Select(db => db.Info.Name).ToList();
4651
}
4752

53+
public async Task<List<string>> ListDatabaseNamesAsync()
54+
{
55+
var databases = await ListDatabasesAsync().ConfigureAwait(false);
56+
return databases.Select(db => db.Info.Name).ToList();
57+
}
58+
4859
public List<DatabaseInfo> ListDatabases()
4960
{
50-
throw new NotImplementedException();
61+
return ListDatabasesAsync(true).ResultSync();
62+
}
63+
64+
public async Task<List<DatabaseInfo>> ListDatabasesAsync()
65+
{
66+
return await ListDatabasesAsync(false).ConfigureAwait(false);
67+
}
68+
69+
internal async Task<List<DatabaseInfo>> ListDatabasesAsync(bool runSynchronously)
70+
{
71+
var command = CreateCommand().AddUrlPath("databases");
72+
var response = await command.RunAsyncRaw<List<DatabaseInfo>>(HttpMethod.Get, runSynchronously).ConfigureAwait(false);
73+
return response;
5174
}
5275

5376
public bool DatabaseExists(string name)
@@ -139,7 +162,7 @@ internal async Task<DatabaseInfo> GetDatabaseInfoAsync(Guid id, bool runSynchron
139162
{
140163
Guard.NotEmpty(id, nameof(id));
141164
var command = CreateCommand().AddUrlPath("databases").AddUrlPath(id.ToString());
142-
var response = await command.RunAsyncRaw<DatabaseInfo>(System.Net.Http.HttpMethod.Get, runSynchronously).ConfigureAwait(false);
165+
var response = await command.RunAsyncRaw<DatabaseInfo>(HttpMethod.Get, runSynchronously).ConfigureAwait(false);
143166
return response;
144167
}
145168

src/DataStax.AstraDB.DataApi/Admin/IDatabaseAdmin.cs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,8 @@
1616

1717
using DataStax.AstraDB.DataApi.Core;
1818
using DataStax.AstraDB.DataApi.Core.Results;
19+
using System.Collections.Generic;
20+
using System.Threading.Tasks;
1921

2022
namespace DataStax.AstraDB.DataApi.Admin;
2123

src/DataStax.AstraDB.DataApi/Collections/Collection.cs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,9 @@
1717
using DataStax.AstraDB.DataApi.Core;
1818
using DataStax.AstraDB.DataApi.Core.Commands;
1919
using DataStax.AstraDB.DataApi.Utils;
20+
using System;
2021
using System.Text.Json.Serialization;
22+
using System.Threading.Tasks;
2123

2224
namespace DataStax.AstraDB.DataApi.Collections;
2325

src/DataStax.AstraDB.DataApi/Core/ApiData.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515
*/
1616

1717
using DataStax.AstraDB.DataApi.Collections;
18+
using System.Collections.Generic;
1819
using System.Text.Json.Serialization;
1920

2021
namespace DataStax.AstraDB.DataApi.Core;

src/DataStax.AstraDB.DataApi/Core/ApiResponse.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@
1414
* limitations under the License.
1515
*/
1616

17+
using System.Collections.Generic;
1718
using System.Text.Json.Serialization;
1819

1920
namespace DataStax.AstraDB.DataApi.Core;

src/DataStax.AstraDB.DataApi/Core/ApiVector.cs

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,9 @@
1414
* limitations under the License.
1515
*/
1616

17+
using System;
18+
using System.Linq;
19+
1720
namespace DataStax.AstraDB.DataApi.Core;
1821

1922
//TODO: placeholder

src/DataStax.AstraDB.DataApi/Core/CommandOptions.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515
*/
1616

1717
using DataStax.AstraDB.DataApi.Utils;
18+
using System.Linq;
1819

1920
namespace DataStax.AstraDB.DataApi.Core;
2021

src/DataStax.AstraDB.DataApi/Core/Commands/Command.cs

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,10 +15,14 @@
1515
*/
1616

1717
using Microsoft.Extensions.Logging;
18+
using System;
19+
using System.Collections.Generic;
20+
using System.Linq;
1821
using System.Net.Http;
1922
using System.Net.Http.Headers;
2023
using System.Text;
2124
using System.Text.Json;
25+
using System.Threading.Tasks;
2226

2327
namespace DataStax.AstraDB.DataApi.Core.Commands;
2428

@@ -29,7 +33,7 @@ public class Command
2933
private readonly DataApiClient _client;
3034
private readonly CommandUrlBuilder _urlBuilder;
3135
private readonly string _name;
32-
private List<String> _urlPaths = new();
36+
private List<string> _urlPaths = new();
3337

3438
internal object Payload { get; set; }
3539
internal string UrlPostfix { get; set; }

src/DataStax.AstraDB.DataApi/Core/Database.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717
using DataStax.AstraDB.DataApi.Collections;
1818
using DataStax.AstraDB.DataApi.Core.Commands;
1919
using DataStax.AstraDB.DataApi.Utils;
20+
using System.Threading.Tasks;
2021

2122
namespace DataStax.AstraDB.DataApi.Core;
2223

0 commit comments

Comments
 (0)