Skip to content

Commit 20240e6

Browse files
authored
Merge pull request #83 from FantasyTeddy/small-improvements
Small improvements
2 parents 6d57a88 + 57dc092 commit 20240e6

File tree

13 files changed

+62
-93
lines changed

13 files changed

+62
-93
lines changed

Postgrest/Attributes/ReferenceAttribute.cs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -97,7 +97,6 @@ public ReferenceAttribute(Type model, JoinType joinType, bool includeInQuery = t
9797
/// <param name="model">Model referenced</param>
9898
/// <param name="includeInQuery">Should referenced be included in queries?</param>
9999
/// <param name="useInnerJoin">As to whether the query will filter top-level rows.</param>
100-
/// <param name="propertyName">The Property Name on the C# Model</param>
101100
/// <param name="columnName">Column this attribute references as specified in Postgres, DOES NOT need to be set if <see cref="ForeignKey"/> is set.</param>
102101
/// <param name="foreignKey">Foreign Key this attribute references as specified in Postgres (only required if the model references the same table multiple times)</param>
103102
/// <exception cref="Exception"></exception>

Postgrest/Client.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -95,6 +95,7 @@ public Client(string baseUrl, ClientOptions? options = null)
9595
GetHeaders = GetHeaders
9696
};
9797

98+
/// <inheritdoc />
9899
public IPostgrestTableWithCache<T> Table<T>(IPostgrestCacheProvider cacheProvider)
99100
where T : BaseModel, new() =>
100101
new TableWithCache<T>(BaseUrl, cacheProvider, SerializerSettings(Options), Options)

Postgrest/Hooks.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -70,6 +70,7 @@ public void ClearRequestPreparedHandlers()
7070
/// <summary>
7171
/// Notifies all listeners.
7272
/// </summary>
73+
/// <param name="sender"></param>
7374
/// <param name="clientOptions"></param>
7475
/// <param name="method"></param>
7576
/// <param name="url"></param>

Postgrest/Postgrest.csproj

Lines changed: 6 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
<?xml version="1.0" encoding="utf-8"?>
21
<Project Sdk="Microsoft.NET.Sdk">
32
<PropertyGroup>
43
<TargetFramework>netstandard2.0</TargetFramework>
@@ -36,25 +35,22 @@
3635

3736
<PropertyGroup Condition=" '$(Version)' == '' ">
3837
<VersionPrefix Condition=" '$(VersionPrefix)' == '' ">3.4.0</VersionPrefix>
39-
<VersionSuffix Condition=" '$(VersionSuffix)' == '' ">
40-
</VersionSuffix>
38+
<VersionSuffix Condition=" '$(VersionSuffix)' == '' "></VersionSuffix>
4139
<Version Condition=" '$(VersionSuffix)' != '' ">$(VersionPrefix)-$(VersionSuffix)</Version>
4240
<Version Condition=" '$(Version)' == '' ">$(VersionPrefix)</Version>
4341
</PropertyGroup>
4442

4543
<ItemGroup>
46-
<PackageReference Include="Microsoft.SourceLink.GitHub" Version="1.1.1" PrivateAssets="All"/>
44+
<PackageReference Include="Microsoft.SourceLink.GitHub" Version="1.1.1" PrivateAssets="All" />
4745
</ItemGroup>
4846

4947
<ItemGroup>
50-
<PackageReference Include="Newtonsoft.Json" Version="13.0.3"/>
51-
<PackageReference Include="supabase-core" Version="0.0.3"/>
52-
<PackageReference Include="System.Linq.Expressions" Version="4.3.0"/>
48+
<PackageReference Include="Newtonsoft.Json" Version="13.0.3" />
49+
<PackageReference Include="supabase-core" Version="0.0.3" />
5350
</ItemGroup>
5451

5552
<ItemGroup>
56-
<Folder Include="Converters\"/>
57-
<None Include="..\.github\icon.png" Pack="true" Link="icon.png" PackagePath="\"/>
58-
<None Include="..\README.md" Pack="true" Link="README.md" PackagePath="\"/>
53+
<None Include="..\.github\icon.png" Pack="true" Link="icon.png" PackagePath="\" />
54+
<None Include="..\README.md" Pack="true" Link="README.md" PackagePath="\" />
5955
</ItemGroup>
6056
</Project>

PostgrestExample/Models/Message.cs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,12 +10,12 @@ public class Message : BaseModel
1010
public int ChannelId { get; set; }
1111

1212
[Column("message")]
13-
public string MessageData { get; set; }
13+
public string MessageData { get; set; } = null!;
1414

1515
[Column("data")]
16-
public string Data { get; set; }
16+
public string Data { get; set; } = null!;
1717

1818
[Column("username")]
19-
public string Username { get; set; }
19+
public string Username { get; set; } = null!;
2020
}
2121
}

PostgrestExample/Models/Movie.cs

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -12,10 +12,10 @@ public class Movie : BaseModel
1212
public int Id { get; set; }
1313

1414
[Column("name")]
15-
public string Name { get; set; }
15+
public string Name { get; set; } = null!;
1616

1717
[Reference(typeof(Person))]
18-
public List<Person> Persons { get; set; }
18+
public List<Person> Persons { get; set; } = new();
1919

2020

2121
[Column("created_at")]
@@ -29,13 +29,13 @@ public class Person : BaseModel
2929
public int Id { get; set; }
3030

3131
[Column("first_name")]
32-
public string FirstName { get; set; }
32+
public string FirstName { get; set; } = null!;
3333

3434
[Column("last_name")]
35-
public string LastName { get; set; }
35+
public string LastName { get; set; } = null!;
3636

3737
[Reference(typeof(Profile))]
38-
public Profile Profile { get; set; }
38+
public Profile Profile { get; set; } = null!;
3939

4040
[Column("created_at")]
4141
public DateTime CreatedAt { get; set; }
@@ -45,7 +45,7 @@ public class Person : BaseModel
4545
public class Profile : BaseModel
4646
{
4747
[Column("email")]
48-
public string Email { get; set; }
48+
public string Email { get; set; } = null!;
4949
}
5050

5151
[Table("movie_person")]

PostgrestExample/Models/User.cs

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -9,19 +9,19 @@ namespace PostgrestExample.Models
99
public class User : BaseModel
1010
{
1111
[PrimaryKey("username")]
12-
public string Username { get; set; }
12+
public string Username { get; set; } = null!;
1313

1414
[Column("data")]
15-
public string Data { get; set; }
15+
public string Data { get; set; } = null!;
1616

1717
[Column("age_range")]
18-
public IntRange AgeRange { get; set; }
18+
public IntRange AgeRange { get; set; } = null!;
1919

2020
[Column("catchphrase")]
21-
public string Catchphrase { get; set; }
21+
public string Catchphrase { get; set; } = null!;
2222

2323
[Column("status")]
24-
public string Status { get; set; }
24+
public string Status { get; set; } = null!;
2525

2626
[Column("inserted_at")]
2727
public DateTime InsertedAt { get; set; }

PostgrestExample/PostgrestExample.csproj

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,11 @@
11
<Project Sdk="Microsoft.NET.Sdk">
22
<PropertyGroup>
33
<OutputType>Exe</OutputType>
4-
<TargetFramework>netcoreapp3.1</TargetFramework>
5-
<ReleaseVersion>3.1.3</ReleaseVersion>
6-
</PropertyGroup>
7-
<PropertyGroup>
4+
<TargetFrameworks>net8.0;net48</TargetFrameworks>
85
<LangVersion>latest</LangVersion>
6+
<Nullable>enable</Nullable>
97
</PropertyGroup>
8+
109
<ItemGroup>
1110
<ProjectReference Include="..\Postgrest\Postgrest.csproj" />
1211
</ItemGroup>

PostgrestTests/ClientTests.cs

Lines changed: 24 additions & 44 deletions
Original file line numberDiff line numberDiff line change
@@ -39,22 +39,21 @@ public void TestQueryParams()
3939
}
4040
});
4141

42-
Assert.AreEqual($"{BaseUrl}/users?some-param=foo&other-param=bar",
43-
(client.Table<User>() as Table<User>)!.GenerateUrl());
42+
Assert.AreEqual($"{BaseUrl}/users?some-param=foo&other-param=bar", client.Table<User>().GenerateUrl());
4443
}
4544

4645
[TestMethod("will use TableAttribute")]
4746
public void TestTableAttribute()
4847
{
4948
var client = new Client(BaseUrl);
50-
Assert.AreEqual($"{BaseUrl}/users", (client.Table<User>() as Table<User>)!.GenerateUrl());
49+
Assert.AreEqual($"{BaseUrl}/users", client.Table<User>().GenerateUrl());
5150
}
5251

5352
[TestMethod("will default to Class.name in absence of TableAttribute")]
5453
public void TestTableAttributeDefault()
5554
{
5655
var client = new Client(BaseUrl);
57-
Assert.AreEqual($"{BaseUrl}/Stub", (client.Table<Stub>() as Table<Stub>)!.GenerateUrl());
56+
Assert.AreEqual($"{BaseUrl}/Stub", client.Table<Stub>().GenerateUrl());
5857
}
5958

6059
[TestMethod("will set header from options")]
@@ -76,7 +75,7 @@ public void TestQueryApiKey()
7675
{ "apikey", "some-key" }
7776
}
7877
});
79-
Assert.AreEqual($"{BaseUrl}/users?apikey=some-key", (client.Table<User>() as Table<User>)!.GenerateUrl());
78+
Assert.AreEqual($"{BaseUrl}/users?apikey=some-key", client.Table<User>().GenerateUrl());
8079
}
8180

8281
[TestMethod("filters: simple")]
@@ -97,7 +96,7 @@ public void TestFiltersSimple()
9796
foreach (var pair in dict)
9897
{
9998
var filter = new QueryFilter("foo", pair.Key, "bar");
100-
var result = (client.Table<User>() as Table<User>)!.PrepareFilter(filter);
99+
var result = ((Table<User>)client.Table<User>()).PrepareFilter(filter);
101100
Assert.AreEqual("foo", result.Key);
102101
Assert.AreEqual(pair.Value, result.Value);
103102
}
@@ -116,7 +115,7 @@ public void TestFiltersLike()
116115
foreach (var pair in dict)
117116
{
118117
var filter = new QueryFilter("foo", pair.Key, "%bar%");
119-
var result = (client.Table<User>() as Table<User>)!.PrepareFilter(filter);
118+
var result = ((Table<User>)client.Table<User>()).PrepareFilter(filter);
120119
Assert.AreEqual("foo", result.Key);
121120
Assert.AreEqual(pair.Value, result.Value);
122121
}
@@ -141,7 +140,7 @@ public void TestFiltersArraysWithLists()
141140
{
142141
var list = new List<object> { "bar", "buzz" };
143142
var filter = new QueryFilter("foo", pair.Key, list);
144-
var result = (client.Table<User>() as Table<User>)!.PrepareFilter(filter);
143+
var result = ((Table<User>)client.Table<User>()).PrepareFilter(filter);
145144
Assert.AreEqual("foo", result.Key);
146145
Assert.AreEqual(pair.Value, result.Value);
147146
}
@@ -168,7 +167,7 @@ public void TestFiltersContainsArraysWithLists()
168167
{
169168
var list = new List<object> { "bar", "buzz" };
170169
var filter = new QueryFilter("foo", pair.Key, list);
171-
var result = (client.Table<User>() as Table<User>)!.PrepareFilter(filter);
170+
var result = ((Table<User>)client.Table<User>()).PrepareFilter(filter);
172171
Assert.AreEqual("foo", result.Key);
173172
Assert.AreEqual(pair.Value, result.Value);
174173
}
@@ -192,7 +191,7 @@ public void TestFiltersArraysWithDictionaries()
192191
{
193192
var value = new Dictionary<string, object> { { "bar", 100 }, { "buzz", "zap" } };
194193
var filter = new QueryFilter("foo", pair.Key, value);
195-
var result = (client.Table<User>() as Table<User>)!.PrepareFilter(filter);
194+
var result = ((Table<User>)client.Table<User>()).PrepareFilter(filter);
196195
Assert.AreEqual("foo", result.Key);
197196
Assert.AreEqual(pair.Value, result.Value);
198197
}
@@ -217,7 +216,7 @@ public void TestFiltersFullTextSearch()
217216
{
218217
var config = new FullTextSearchConfig("bar", "english");
219218
var filter = new QueryFilter("foo", pair.Key, config);
220-
var result = (client.Table<User>() as Table<User>)!.PrepareFilter(filter);
219+
var result = ((Table<User>)client.Table<User>()).PrepareFilter(filter);
221220
Assert.AreEqual("foo", result.Key);
222221
Assert.AreEqual(pair.Value, result.Value);
223222
}
@@ -242,7 +241,7 @@ public void TestFiltersRanges()
242241
{
243242
var config = new IntRange(2, 3);
244243
var filter = new QueryFilter("foo", pair.Key, config);
245-
var result = (client.Table<User>() as Table<User>)!.PrepareFilter(filter);
244+
var result = ((Table<User>)client.Table<User>()).PrepareFilter(filter);
246245
Assert.AreEqual("foo", result.Key);
247246
Assert.AreEqual(pair.Value, result.Value);
248247
}
@@ -254,7 +253,7 @@ public void TestFiltersNot()
254253
var client = new Client(BaseUrl);
255254
var filter = new QueryFilter("foo", Operator.Equals, "bar");
256255
var notFilter = new QueryFilter(Operator.Not, filter);
257-
var result = (client.Table<User>() as Table<User>)!.PrepareFilter(notFilter);
256+
var result = ((Table<User>)client.Table<User>()).PrepareFilter(notFilter);
258257

259258
Assert.AreEqual("foo", result.Key);
260259
Assert.AreEqual("not.eq.bar", result.Value);
@@ -281,7 +280,7 @@ public void TestFiltersAndOr()
281280
foreach (var pair in dict)
282281
{
283282
var filter = new QueryFilter(pair.Key, filters);
284-
var result = (client.Table<User>() as Table<User>)!.PrepareFilter(filter);
283+
var result = ((Table<User>)client.Table<User>()).PrepareFilter(filter);
285284
Assert.AreEqual(pair.Value, $"{result.Key}={result.Value}");
286285
}
287286
}
@@ -293,21 +292,20 @@ public async Task TestBasicUpdate()
293292

294293
var user = await client.Table<User>().Filter("username", Operator.Equals, "supabot").Single();
295294

296-
if (user != null)
297-
{
298-
// Update user status
299-
user.Status = "OFFLINE";
300-
var response = await user.Update<User>();
295+
Assert.IsNotNull(user);
301296

302-
var updatedUser = response.Models.FirstOrDefault();
297+
// Update user status
298+
user.Status = "OFFLINE";
299+
var response = await user.Update<User>();
303300

304-
if (updatedUser == null)
305-
Assert.Fail();
301+
var updatedUser = response.Models.FirstOrDefault();
306302

307-
Assert.AreEqual(1, response.Models.Count);
308-
Assert.AreEqual(user.Username, updatedUser.Username);
309-
Assert.AreEqual(user.Status, updatedUser.Status);
310-
}
303+
if (updatedUser == null)
304+
Assert.Fail();
305+
306+
Assert.AreEqual(1, response.Models.Count);
307+
Assert.AreEqual(user.Username, updatedUser.Username);
308+
Assert.AreEqual(user.Status, updatedUser.Status);
311309
}
312310

313311

@@ -1133,24 +1131,6 @@ public async Task TestCancellationToken()
11331131
}
11341132
}
11351133

1136-
private string? GetEnumMemberAttrValue<T>(T enumVal)
1137-
{
1138-
var enumType = typeof(T);
1139-
var memInfo = enumType.GetMember(enumVal!.ToString()!);
1140-
1141-
if (memInfo == null)
1142-
throw new ArgumentException("Supplied enum value is unknown.");
1143-
1144-
var attr = memInfo.FirstOrDefault()?.GetCustomAttributes(false).OfType<EnumMemberAttribute>()
1145-
.FirstOrDefault();
1146-
if (attr != null)
1147-
{
1148-
return attr.Value;
1149-
}
1150-
1151-
return null;
1152-
}
1153-
11541134
[TestMethod("columns")]
11551135
public async Task TestColumns()
11561136
{

PostgrestTests/Models/ForeignKeyTestModel.cs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,10 +9,10 @@ public class ForeignKeyTestModel : BaseModel
99
[PrimaryKey("id")] public int Id { get; set; }
1010

1111
[Reference(typeof(Movie), foreignKey: "foreign_key_test_relation_1")]
12-
public Movie MovieFK1 { get; set; }
12+
public Movie MovieFK1 { get; set; } = null!;
1313

1414
[Reference(typeof(Movie), foreignKey: "foreign_key_test_relation_2")]
15-
public Movie MovieFK2 { get; set; }
15+
public Movie MovieFK2 { get; set; } = null!;
1616

17-
[Reference(typeof(Person))] public Person RandomPersonFK { get; set; }
17+
[Reference(typeof(Person))] public Person RandomPersonFK { get; set; } = null!;
1818
}

0 commit comments

Comments
 (0)