Skip to content

Commit

Permalink
updating GetRows to not return null if result set is empty
Browse files Browse the repository at this point in the history
  • Loading branch information
SteveWinward committed Jun 8, 2024
1 parent e90d373 commit 22766d0
Show file tree
Hide file tree
Showing 6 changed files with 49 additions and 36 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -16,9 +16,13 @@ public EnvironmentVariableConfig()
{
Config = BuildConfig();

#pragma warning disable CS8601 // Possible null reference assignment.

GoogleServiceAccount = Config["GOOGLE_SERVICE_ACCOUNT"];
GoogleSpreadsheetId = Config["GOOGLE_SPREADSHEET_ID"];
JsonCredentials = Config["GOOGLE_JSON_CREDS"];

#pragma warning restore CS8601 // Possible null reference assignment.
}

/// <summary>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,11 +11,11 @@

<ItemGroup>
<PackageReference Include="Microsoft.Extensions.Configuration.EnvironmentVariables" Version="8.0.0" />
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.6.0" />
<PackageReference Include="NUnit" Version="3.13.3" />
<PackageReference Include="NUnit3TestAdapter" Version="4.2.1" />
<PackageReference Include="NUnit.Analyzers" Version="3.6.1" />
<PackageReference Include="coverlet.collector" Version="6.0.0" />
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.10.0" />
<PackageReference Include="NUnit" Version="4.1.0" />
<PackageReference Include="NUnit3TestAdapter" Version="4.5.0" />
<PackageReference Include="NUnit.Analyzers" Version="4.2.0" />
<PackageReference Include="coverlet.collector" Version="6.0.2" />
<PackageReference Include="Microsoft.Extensions.Configuration.UserSecrets" Version="8.0.0" />
</ItemGroup>

Expand Down
5 changes: 1 addition & 4 deletions src/GoogleSheetsWrapper.IntegrationTests/ReadAllRowsTests.cs
Original file line number Diff line number Diff line change
Expand Up @@ -27,10 +27,7 @@ public void ReadAllRowsHasFiveRows()
var rows = sheetHelper.GetRows(new SheetRange("", 1, 1, 1));

// Delete all of the rows
if (rows != null)
{
_ = sheetHelper.DeleteRows(1, rows.Count);
}
_ = sheetHelper.DeleteRows(1, rows.Count);

// Add 5 records manually before doing the query
var records = new List<ReadAllRowsTestRecord>();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,13 +6,13 @@ public class ReadAllRowsTestRecord : BaseRecord
DisplayName = "Task",
ColumnID = 1,
FieldType = SheetFieldType.String)]
public string Task { get; set; }
public string Task { get; set; } = "";

[SheetField(
DisplayName = "Value",
ColumnID = 2,
FieldType = SheetFieldType.String)]
public string Value { get; set; }
public string Value { get; set; } = "";


public ReadAllRowsTestRecord() { }
Expand Down
2 changes: 1 addition & 1 deletion src/GoogleSheetsWrapper/GoogleSheetsWrapper.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
<PackageProjectUrl>https://github.com/SteveWinward/GoogleSheetsWrapper</PackageProjectUrl>
<PackageLicenseFile>LICENSE</PackageLicenseFile>
<RepositoryUrl>https://github.com/SteveWinward/GoogleSheetsWrapper</RepositoryUrl>
<Version>2.0.15</Version>
<Version>2.0.16</Version>
<PackageTags>Google Sheets</PackageTags>
<PackageReadmeFile>README.md</PackageReadmeFile>
<Description>A simple wrapper library that makes it easier to perform CRUD operations against Google Sheets spreadsheets.</Description>
Expand Down
60 changes: 36 additions & 24 deletions src/GoogleSheetsWrapper/SheetHelper.cs
Original file line number Diff line number Diff line change
Expand Up @@ -124,7 +124,7 @@ protected void EnsureServiceInitialized()
/// <param name="newTabName"></param>
public void UpdateTabName(string newTabName)
{
this.EnsureServiceInitialized();
EnsureServiceInitialized();

var spreadsheet = Service.Spreadsheets.Get(SpreadsheetID);

Expand Down Expand Up @@ -159,7 +159,7 @@ public void UpdateTabName(string newTabName)
/// <returns></returns>
public List<string> GetAllTabNames()
{
this.EnsureServiceInitialized();
EnsureServiceInitialized();

var spreadsheet = Service.Spreadsheets.Get(SpreadsheetID);

Expand All @@ -170,20 +170,18 @@ public List<string> GetAllTabNames()
return tabs;
}

#nullable enable

/// <summary>
/// Return a collection of rows for a given SheetRange input
/// </summary>
/// <param name="range"></param>
/// <param name="valueRenderOption"></param>
/// <param name="dateTimeRenderOption"></param>
/// <returns></returns>
public IList<IList<object>>? GetRows(SheetRange range,
public IList<IList<object>> GetRows(SheetRange range,
ValueRenderOptionEnum valueRenderOption = ValueRenderOptionEnum.UNFORMATTEDVALUE,
DateTimeRenderOptionEnum dateTimeRenderOption = DateTimeRenderOptionEnum.SERIALNUMBER)
{
this.EnsureServiceInitialized();
EnsureServiceInitialized();

var rangeValue = range.CanSupportA1Notation ? range.A1Notation : range.R1C1Notation;

Expand All @@ -194,17 +192,25 @@ public List<string> GetAllTabNames()
request.DateTimeRenderOption = dateTimeRenderOption;

var response = request.Execute();
return response.Values;

if (response.Values != null)
{
return response.Values;
}
else
{
return new List<IList<object>>();
}
}

/// <summary>
/// Return a collection of rows formatted values for a given SheetRange input
/// </summary>
/// <param name="range"></param>
/// <returns></returns>
public IList<IList<object>>? GetRowsFormatted(SheetRange range)
public IList<IList<object>> GetRowsFormatted(SheetRange range)
{
this.EnsureServiceInitialized();
EnsureServiceInitialized();

var rangeValue = range.CanSupportA1Notation ? range.A1Notation : range.R1C1Notation;

Expand All @@ -215,10 +221,16 @@ public List<string> GetAllTabNames()
request.DateTimeRenderOption = DateTimeRenderOptionEnum.FORMATTEDSTRING;

var response = request.Execute();
return response.Values;
}

#nullable disable
if (response.Values != null)
{
return response.Values;
}
else
{
return new List<IList<object>>();
}
}

/// <summary>
/// Clears values from a spreadsheet (NOTE: All other properties of the cell (such as formatting, data validation, etc..) are kept.)
Expand All @@ -227,7 +239,7 @@ public List<string> GetAllTabNames()
/// <returns></returns>
public ClearValuesResponse ClearRange(SheetRange range)
{
this.EnsureServiceInitialized();
EnsureServiceInitialized();

var rangeValue = range.CanSupportA1Notation ? range.A1Notation : range.R1C1Notation;

Expand All @@ -244,7 +256,7 @@ public ClearValuesResponse ClearRange(SheetRange range)
/// <returns></returns>
public BatchUpdateSpreadsheetResponse DeleteColumn(int col)
{
this.EnsureServiceInitialized();
EnsureServiceInitialized();

var request = new Request()
{
Expand Down Expand Up @@ -276,7 +288,7 @@ public BatchUpdateSpreadsheetResponse DeleteColumn(int col)
/// <returns></returns>
public BatchUpdateSpreadsheetResponse DeleteColumn(string columnLetter)
{
this.EnsureServiceInitialized();
EnsureServiceInitialized();

var columnId = SheetRange.GetColumnIDFromLetters(columnLetter);

Expand All @@ -290,7 +302,7 @@ public BatchUpdateSpreadsheetResponse DeleteColumn(string columnLetter)
/// <returns></returns>
public BatchUpdateSpreadsheetResponse DeleteRow(int row)
{
this.EnsureServiceInitialized();
EnsureServiceInitialized();

var request = new Request()
{
Expand Down Expand Up @@ -323,7 +335,7 @@ public BatchUpdateSpreadsheetResponse DeleteRow(int row)
/// <returns></returns>
public BatchUpdateSpreadsheetResponse DeleteRows(int startRow, int endRow)
{
this.EnsureServiceInitialized();
EnsureServiceInitialized();

var request = new Request()
{
Expand Down Expand Up @@ -355,7 +367,7 @@ public BatchUpdateSpreadsheetResponse DeleteRows(int startRow, int endRow)
/// <returns></returns>
public BatchUpdateSpreadsheetResponse InsertBlankColumn(int column)
{
this.EnsureServiceInitialized();
EnsureServiceInitialized();

if (column < 1)
{
Expand Down Expand Up @@ -393,7 +405,7 @@ public BatchUpdateSpreadsheetResponse InsertBlankColumn(int column)
/// <returns></returns>
public BatchUpdateSpreadsheetResponse InsertBlankColumn(string columnLetter)
{
this.EnsureServiceInitialized();
EnsureServiceInitialized();

var columnId = SheetRange.GetColumnIDFromLetters(columnLetter);

Expand All @@ -407,7 +419,7 @@ public BatchUpdateSpreadsheetResponse InsertBlankColumn(string columnLetter)
/// <returns></returns>
public BatchUpdateSpreadsheetResponse InsertBlankRow(int row)
{
this.EnsureServiceInitialized();
EnsureServiceInitialized();

if (row < 1)
{
Expand Down Expand Up @@ -451,7 +463,7 @@ public BatchUpdateSpreadsheetResponse InsertBlankRow(int row)
/// <returns></returns>
public BatchUpdateSpreadsheetResponse BatchUpdate(List<BatchUpdateRequestObject> updates, string fieldMask = "userEnteredValue")
{
this.EnsureServiceInitialized();
EnsureServiceInitialized();

var bussr = new BatchUpdateSpreadsheetRequest();

Expand Down Expand Up @@ -505,7 +517,7 @@ public BatchUpdateSpreadsheetResponse BatchUpdate(List<BatchUpdateRequestObject>
/// <param name="newTabName"></param>
private BatchUpdateSpreadsheetResponse CreateNewTab(string newTabName)
{
this.EnsureServiceInitialized();
EnsureServiceInitialized();

var batchUpdateSpreadsheetRequest = new BatchUpdateSpreadsheetRequest
{
Expand Down Expand Up @@ -553,7 +565,7 @@ public SheetHelper(string spreadsheetID, string serviceAccountEmail, string tabN
/// <returns></returns>
public BatchUpdateSpreadsheetResponse AppendRow(T record)
{
this.EnsureServiceInitialized();
EnsureServiceInitialized();

return AppendRows(new T[] { record });
}
Expand All @@ -565,7 +577,7 @@ public BatchUpdateSpreadsheetResponse AppendRow(T record)
/// <returns></returns>
public BatchUpdateSpreadsheetResponse AppendRows(IList<T> records)
{
this.EnsureServiceInitialized();
EnsureServiceInitialized();

var rows = new List<RowData>(records.Count);

Expand Down

0 comments on commit 22766d0

Please sign in to comment.