Skip to content

Commit

Permalink
Refactored logic to allow a business layer to handle the details.
Browse files Browse the repository at this point in the history
  • Loading branch information
khanjal committed Apr 25, 2024
1 parent f4bdaf4 commit 11a4bfa
Show file tree
Hide file tree
Showing 3 changed files with 51 additions and 33 deletions.
6 changes: 3 additions & 3 deletions GigRaptorLib.Tests/Data/GoogleDataFixture.cs
Original file line number Diff line number Diff line change
Expand Up @@ -12,15 +12,15 @@ public async Task InitializeAsync()
var spreadsheetId = configuration.GetSection("spreadsheet_id").Value;

var googleSheetHelper = new GoogleSheetHelper();
var result = await googleSheetHelper.GetAllData(spreadsheetId!);
var result = await googleSheetHelper.GetBatchData(spreadsheetId!);

valueRanges = result;
valueRanges = result?.ValueRanges;
}

Task IAsyncLifetime.DisposeAsync()
{
return Task.CompletedTask;
}

public IList<MatchedValueRange> valueRanges { get; private set; }
public IList<MatchedValueRange>? valueRanges { get; private set; }
}
25 changes: 21 additions & 4 deletions GigRaptorLib.Tests/Utilities/GoogleSheetHelperTests.cs
Original file line number Diff line number Diff line change
Expand Up @@ -20,15 +20,23 @@ public GoogleSheetHelperTests()
[Fact]
public async void GivenGetAllDataCall_ThenReturnInfo()
{
var result = await _googleSheetHelper.GetAllData(_spreadsheetId!);
var result = await _googleSheetHelper.GetBatchData(_spreadsheetId!);
result.Should().NotBeNull();
result.Should().HaveCount(Enum.GetNames(typeof(SheetEnum)).Length);
result!.ValueRanges.Should().NotBeNull();
result!.ValueRanges.Should().HaveCount(Enum.GetNames(typeof(SheetEnum)).Length);

// Test all demo data.

// Look into replacing individual json sheet tests.
}

[Fact]
public async void GivenGetAllDataCall_WithInvalidSpreadsheetId_ReturnException()
{
var result = await _googleSheetHelper.GetBatchData("invalid");
result.Should().BeNull();
}

[Theory]
[InlineData(SheetEnum.ADDRESSES)]
[InlineData(SheetEnum.DAILY)]
Expand All @@ -47,18 +55,27 @@ public async void GivenGetSheetDataCall_ThenReturnInfo(SheetEnum sheetEnum)
{
var result = await _googleSheetHelper.GetSheetData(_spreadsheetId!, sheetEnum);
result.Should().NotBeNull();
result.Values.Should().NotBeNull();

// Test all demo data.

// Look into replacing individual json sheet tests.
}

[Fact]
public async void GivenGetSheetDataCall_WithInvalidSpreadsheetId_ReturnException()
{
var result = await _googleSheetHelper.GetSheetData("invalid", new SheetEnum());
result.Should().BeNull();
}

[Fact]
public async void GivenGetSheetProperties_ThenReturnInfo()
{
var result = await _googleSheetHelper.GetSheetProperties(_spreadsheetId!);
var result = await _googleSheetHelper.GetSheetInfo(_spreadsheetId!);
result.Should().NotBeNull();
result!.Properties.Should().NotBeNull();

result.Title.Should().Be("Demo Raptor Gig Sheet");
result!.Properties.Title.Should().Be("Demo Raptor Gig Sheet");
}
}
53 changes: 27 additions & 26 deletions GigRaptorLib/Utilities/Google/GoogleSheetHelper.cs
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ public GoogleSheetHelper()
ApplicationName = "GigLogger"
});
}
public async Task<IList<MatchedValueRange>?> GetAllData(string spreadsheetId)
public async Task<BatchGetValuesByDataFilterResponse?> GetBatchData(string spreadsheetId)
{
var body = new BatchGetValuesByDataFilterRequest
{
Expand All @@ -49,18 +49,19 @@ public GoogleSheetHelper()

foreach (var sheet in sheets)
{
var filter = new DataFilter();
filter.A1Range = sheet.DisplayName();
var filter = new DataFilter
{
A1Range = sheet.DisplayName()
};
body.DataFilters.Add(filter);
}

try
{
var batchGetRequest = _sheetsService.Spreadsheets.Values.BatchGetByDataFilter(body, spreadsheetId);
var batchResponse = await batchGetRequest.ExecuteAsync();
var values = batchResponse.ValueRanges;
var request = _sheetsService.Spreadsheets.Values.BatchGetByDataFilter(body, spreadsheetId);
var response = await request.ExecuteAsync();

return values;
return response;
}
catch (Exception ex)
{
Expand All @@ -72,52 +73,52 @@ public GoogleSheetHelper()
}
}

public async Task<IList<IList<object>>?> GetSheetData(string spreadsheetId, SheetEnum sheetEnum)
public async Task<ValueRange?> GetSheetData(string spreadsheetId, SheetEnum sheetEnum)
{
var getRequest = _sheetsService.Spreadsheets.Values.Get(spreadsheetId, $"{sheetEnum.DisplayName()}!{_range}");

try
{
var getResponse = await getRequest.ExecuteAsync();
IList<IList<Object>> values = getResponse.Values;
var request = _sheetsService.Spreadsheets.Values.Get(spreadsheetId, $"{sheetEnum.DisplayName()}!{_range}");
var response = await request.ExecuteAsync();

return values;
return response;
}
catch (Exception ex)
catch (Exception)
{
// _sheet.Errors.Add($"Failed to find sheet: {sheetRange}");
// NotFound (invalid spreadsheetId/range)
// BadRequest (invalid sheet name)
return null;
}
}

public async Task<SpreadsheetProperties?> GetSheetProperties(string spreadsheetId)
public async Task<Spreadsheet?> GetSheetInfo(string spreadsheetId)
{
try
{
var getRequest = _sheetsService.Spreadsheets.Get(spreadsheetId);

var getResponse = await getRequest.ExecuteAsync();
var properties = getResponse.Properties;
var request = _sheetsService.Spreadsheets.Get(spreadsheetId);
var response = await request.ExecuteAsync();

return properties;
return response;
}
catch (Exception)
{
return null;
}
}

public void AppendData(string spreadsheetId, ValueRange valueRange, string range)
public async Task<AppendValuesResponse?> AppendData(string spreadsheetId, ValueRange valueRange, string range)
{
try
{
var appendRequest = _sheetsService.Spreadsheets.Values.Append(valueRange, spreadsheetId, range);
appendRequest.ValueInputOption = AppendRequest.ValueInputOptionEnum.USERENTERED;
appendRequest.Execute();
var request = _sheetsService.Spreadsheets.Values.Append(valueRange, spreadsheetId, range);
request.ValueInputOption = AppendRequest.ValueInputOptionEnum.USERENTERED;
var response = await request.ExecuteAsync();

return response;
}
catch (Exception ex)
catch (Exception)
{
// Log or return an error?
return null;
}
}
}

0 comments on commit 11a4bfa

Please sign in to comment.