Skip to content

Commit 07b393f

Browse files
authored
feat: use camelCase as default (#618)
* feat: use camelCase as default * refactor: massive replace all to replace kebab-case with camelCase default * chore: fix remaining unit tests * fix: fix remaining JsonApiDotNetCoreExampleTests * feat: introduce proper usage of WebApplicationFactory in KebabCaseFormatterTests * fix: remaining functional tests * fix: minor changes PR review * fix: camelCase revert in comments * fix: camelCase revert in comments * fix: camelCase revert in comments * fix: camelCase revert in comments
1 parent 36d7635 commit 07b393f

File tree

89 files changed

+1000
-1013
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

89 files changed

+1000
-1013
lines changed

benchmarks/Serialization/JsonApiDeserializer_Benchmarks.cs

+1-1
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,7 @@ public JsonApideserializer_Benchmarks() {
5858
public object DeserializeSimpleObject() => _jsonApideserializer.Deserialize<SimpleType>(Content);
5959

6060
private class SimpleType : Identifiable {
61-
[Attr("name")]
61+
[Attr]
6262
public string Name { get; set; }
6363
}
6464
}

src/Examples/JsonApiDotNetCoreExample/Controllers/CamelCasedModelsController.cs

+3-3
Original file line numberDiff line numberDiff line change
@@ -6,11 +6,11 @@
66

77
namespace JsonApiDotNetCoreExample.Controllers
88
{
9-
public class CamelCasedModelsController : JsonApiController<CamelCasedModel>
9+
public class KebabCasedModelsController : JsonApiController<KebabCasedModel>
1010
{
11-
public CamelCasedModelsController(
11+
public KebabCasedModelsController(
1212
IJsonApiOptions jsonApiOptions,
13-
IResourceService<CamelCasedModel> resourceService,
13+
IResourceService<KebabCasedModel> resourceService,
1414
ILoggerFactory loggerFactory)
1515
: base(jsonApiOptions, resourceService, loggerFactory)
1616
{ }

src/Examples/JsonApiDotNetCoreExample/Controllers/TodoItemsCustomController.cs

+1-1
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010

1111
namespace JsonApiDotNetCoreExample.Controllers
1212
{
13-
[DisableRoutingConvention, Route("custom/route/todo-items")]
13+
[DisableRoutingConvention, Route("custom/route/todoItems")]
1414
public class TodoItemsCustomController : CustomJsonApiController<TodoItem>
1515
{
1616
public TodoItemsCustomController(

src/Examples/JsonApiDotNetCoreExample/Data/AppDbContext.cs

+13-13
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ public class AppDbContext : DbContext
99
public DbSet<Passport> Passports { get; set; }
1010
public DbSet<Person> People { get; set; }
1111
public DbSet<TodoItemCollection> TodoItemCollections { get; set; }
12-
public DbSet<CamelCasedModel> CamelCasedModels { get; set; }
12+
public DbSet<KebabCasedModel> KebabCasedModels { get; set; }
1313
public DbSet<Article> Articles { get; set; }
1414
public DbSet<Author> AuthorDifferentDbContextName { get; set; }
1515
public DbSet<NonJsonApiResource> NonJsonApiResources { get; set; }
@@ -46,18 +46,18 @@ protected override void OnModelCreating(ModelBuilder modelBuilder)
4646
.HasKey(bc => new { bc.ArticleId, bc.TagId });
4747

4848
modelBuilder.Entity<Person>()
49-
.HasOne(t => t.StakeHolderTodo)
49+
.HasOne(t => t.StakeHolderTodoItem)
5050
.WithMany(t => t.StakeHolders)
51-
.HasForeignKey(t => t.StakeHolderTodoId)
51+
.HasForeignKey(t => t.StakeHolderTodoItemId)
5252
.OnDelete(DeleteBehavior.Cascade);
5353

5454
modelBuilder.Entity<TodoItem>()
55-
.HasOne(t => t.DependentTodoItem);
55+
.HasOne(t => t.DependentOnTodo);
5656

5757
modelBuilder.Entity<TodoItem>()
58-
.HasMany(t => t.ChildrenTodoItems)
59-
.WithOne(t => t.ParentTodoItem)
60-
.HasForeignKey(t => t.ParentTodoItemId);
58+
.HasMany(t => t.ChildrenTodos)
59+
.WithOne(t => t.ParentTodo)
60+
.HasForeignKey(t => t.ParentTodoId);
6161

6262
modelBuilder.Entity<Passport>()
6363
.HasOne(p => p.Person)
@@ -66,14 +66,14 @@ protected override void OnModelCreating(ModelBuilder modelBuilder)
6666
.OnDelete(DeleteBehavior.SetNull);
6767

6868
modelBuilder.Entity<TodoItem>()
69-
.HasOne(p => p.ToOnePerson)
70-
.WithOne(p => p.ToOneTodoItem)
71-
.HasForeignKey<TodoItem>(p => p.ToOnePersonId);
69+
.HasOne(p => p.OneToOnePerson)
70+
.WithOne(p => p.OneToOneTodoItem)
71+
.HasForeignKey<TodoItem>(p => p.OneToOnePersonId);
7272

7373
modelBuilder.Entity<Person>()
74-
.HasOne(p => p.ToOneTodoItem)
75-
.WithOne(p => p.ToOnePerson)
76-
.HasForeignKey<TodoItem>(p => p.ToOnePersonId);
74+
.HasOne(p => p.OneToOneTodoItem)
75+
.WithOne(p => p.OneToOnePerson)
76+
.HasForeignKey<TodoItem>(p => p.OneToOnePersonId);
7777
}
7878
}
7979
}

src/Examples/JsonApiDotNetCoreExample/Models/Article.cs

+2-2
Original file line numberDiff line numberDiff line change
@@ -6,10 +6,10 @@ namespace JsonApiDotNetCoreExample.Models
66
{
77
public class Article : Identifiable
88
{
9-
[Attr("name")]
9+
[Attr]
1010
public string Name { get; set; }
1111

12-
[HasOne("author")]
12+
[HasOne]
1313
public Author Author { get; set; }
1414
public int AuthorId { get; set; }
1515

src/Examples/JsonApiDotNetCoreExample/Models/ArticleTag.cs

+2-2
Original file line numberDiff line numberDiff line change
@@ -15,11 +15,11 @@ public class ArticleTag
1515
public class IdentifiableArticleTag : Identifiable
1616
{
1717
public int ArticleId { get; set; }
18-
[HasOne("article")]
18+
[HasOne]
1919
public Article Article { get; set; }
2020

2121
public int TagId { get; set; }
22-
[HasOne("Tag")]
22+
[HasOne]
2323
public Tag Tag { get; set; }
2424

2525
public string SomeMetaData { get; set; }

src/Examples/JsonApiDotNetCoreExample/Models/Author.cs

+2-2
Original file line numberDiff line numberDiff line change
@@ -5,10 +5,10 @@ namespace JsonApiDotNetCoreExample.Models
55
{
66
public class Author : Identifiable
77
{
8-
[Attr("name")]
8+
[Attr]
99
public string Name { get; set; }
1010

11-
[HasMany("articles")]
11+
[HasMany]
1212
public List<Article> Articles { get; set; }
1313
}
1414
}

src/Examples/JsonApiDotNetCoreExample/Models/CamelCasedModel.cs renamed to src/Examples/JsonApiDotNetCoreExample/Models/KebabCasedModel.cs

+2-3
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,9 @@
22

33
namespace JsonApiDotNetCoreExample.Models
44
{
5-
[Resource("camelCasedModels")]
6-
public class CamelCasedModel : Identifiable
5+
public class KebabCasedModel : Identifiable
76
{
8-
[Attr("compoundAttr")]
7+
[Attr]
98
public string CompoundAttr { get; set; }
109
}
1110
}

src/Examples/JsonApiDotNetCoreExample/Models/Passport.cs

+2-2
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,9 @@ namespace JsonApiDotNetCoreExample.Models
55
public class Passport : Identifiable
66
{
77
public virtual int? SocialSecurityNumber { get; set; }
8-
public virtual bool IsLocked { get; set; }
8+
public virtual bool IsLocked { get; set; }
99

10-
[HasOne("person")]
10+
[HasOne]
1111
public virtual Person Person { get; set; }
1212
}
1313
}

src/Examples/JsonApiDotNetCoreExample/Models/Person.cs

+17-20
Original file line numberDiff line numberDiff line change
@@ -6,51 +6,48 @@ namespace JsonApiDotNetCoreExample.Models
66
{
77
public class PersonRole : Identifiable
88
{
9-
[HasOne("person")]
9+
[HasOne]
1010
public Person Person { get; set; }
1111
}
1212

1313
public class Person : Identifiable, IIsLockable
1414
{
1515
public bool IsLocked { get; set; }
1616

17-
[Attr("first-name")]
17+
[Attr]
1818
public string FirstName { get; set; }
1919

20-
[Attr("last-name")]
20+
[Attr]
2121
public string LastName { get; set; }
2222

23-
[Attr("age")]
23+
[Attr]
2424
public int Age { get; set; }
2525

26-
[HasMany("todo-items")]
26+
[HasMany]
2727
public virtual List<TodoItem> TodoItems { get; set; }
2828

29-
[HasMany("assigned-todo-items")]
29+
[HasMany]
3030
public virtual List<TodoItem> AssignedTodoItems { get; set; }
3131

32-
[HasMany("todo-collections")]
33-
public virtual List<TodoItemCollection> TodoItemCollections { get; set; }
32+
[HasMany]
33+
public virtual List<TodoItemCollection> todoCollections { get; set; }
3434

35-
[HasOne("role")]
35+
[HasOne]
3636
public virtual PersonRole Role { get; set; }
3737
public int? PersonRoleId { get; set; }
3838

39-
[HasOne("one-to-one-todo-item")]
40-
public virtual TodoItem ToOneTodoItem { get; set; }
39+
[HasOne]
40+
public virtual TodoItem OneToOneTodoItem { get; set; }
4141

42+
[HasOne]
43+
public virtual TodoItem StakeHolderTodoItem { get; set; }
44+
public virtual int? StakeHolderTodoItemId { get; set; }
4245

43-
[HasOne("stake-holder-todo-item")]
44-
public virtual TodoItem StakeHolderTodo { get; set; }
45-
public virtual int? StakeHolderTodoId { get; set; }
46-
47-
[HasOne("unincludeable-item", links: Link.All, canInclude: false)]
46+
[HasOne(links: Link.All, canInclude: false)]
4847
public virtual TodoItem UnIncludeableItem { get; set; }
4948

50-
public int? PassportId { get; set; }
51-
52-
[HasOne("passport")]
49+
[HasOne]
5350
public virtual Passport Passport { get; set; }
54-
51+
public int? PassportId { get; set; }
5552
}
5653
}

src/Examples/JsonApiDotNetCoreExample/Models/TodoItem.cs

+24-30
Original file line numberDiff line numberDiff line change
@@ -13,66 +13,60 @@ public TodoItem()
1313

1414
public bool IsLocked { get; set; }
1515

16-
[Attr("description")]
16+
[Attr]
1717
public string Description { get; set; }
1818

19-
[Attr("ordinal")]
19+
[Attr]
2020
public long Ordinal { get; set; }
2121

22-
[Attr("guid-property")]
22+
[Attr]
2323
public Guid GuidProperty { get; set; }
2424

25-
[Attr("created-date")]
25+
[Attr]
2626
public DateTime CreatedDate { get; set; }
2727

28-
[Attr("achieved-date", isFilterable: false, isSortable: false)]
28+
[Attr(isFilterable: false, isSortable: false)]
2929
public DateTime? AchievedDate { get; set; }
3030

31-
[Attr("updated-date")]
31+
[Attr]
3232
public DateTime? UpdatedDate { get; set; }
3333

34-
[Attr("calculated-value", isImmutable: true)]
35-
public string CalculatedValue
36-
{
37-
get => "joe";
38-
}
34+
[Attr(isImmutable: true)]
35+
public string CalculatedValue { get => "calculated"; }
3936

40-
[Attr("offset-date")]
37+
[Attr]
4138
public DateTimeOffset? OffsetDate { get; set; }
4239

4340
public int? OwnerId { get; set; }
4441
public int? AssigneeId { get; set; }
4542
public Guid? CollectionId { get; set; }
4643

47-
[HasOne("owner")]
44+
[HasOne]
4845
public virtual Person Owner { get; set; }
4946

50-
[HasOne("assignee")]
47+
[HasOne]
5148
public virtual Person Assignee { get; set; }
5249

53-
[HasOne("one-to-one-person")]
54-
public virtual Person ToOnePerson { get; set; }
55-
public virtual int? ToOnePersonId { get; set; }
56-
50+
[HasOne]
51+
public virtual Person OneToOnePerson { get; set; }
52+
public virtual int? OneToOnePersonId { get; set; }
5753

58-
[HasMany("stake-holders")]
54+
[HasMany]
5955
public virtual List<Person> StakeHolders { get; set; }
6056

61-
[HasOne("collection")]
57+
[HasOne]
6258
public virtual TodoItemCollection Collection { get; set; }
6359

64-
6560
// cyclical to-one structure
66-
public virtual int? DependentTodoItemId { get; set; }
67-
[HasOne("dependent-on-todo")]
68-
public virtual TodoItem DependentTodoItem { get; set; }
69-
61+
public virtual int? DependentOnTodoId { get; set; }
62+
[HasOne]
63+
public virtual TodoItem DependentOnTodo { get; set; }
7064

7165
// cyclical to-many structure
72-
public virtual int? ParentTodoItemId {get; set;}
73-
[HasOne("parent-todo")]
74-
public virtual TodoItem ParentTodoItem { get; set; }
75-
[HasMany("children-todos")]
76-
public virtual List<TodoItem> ChildrenTodoItems { get; set; }
66+
public virtual int? ParentTodoId {get; set;}
67+
[HasOne]
68+
public virtual TodoItem ParentTodo { get; set; }
69+
[HasMany]
70+
public virtual List<TodoItem> ChildrenTodos { get; set; }
7771
}
7872
}

src/Examples/JsonApiDotNetCoreExample/Models/TodoItemCollection.cs

+4-4
Original file line numberDiff line numberDiff line change
@@ -4,16 +4,16 @@
44

55
namespace JsonApiDotNetCoreExample.Models
66
{
7-
[Resource("todo-collections")]
7+
[Resource("todoCollections")]
88
public class TodoItemCollection : Identifiable<Guid>
99
{
10-
[Attr("name")]
10+
[Attr]
1111
public string Name { get; set; }
1212

13-
[HasMany("todo-items")]
13+
[HasMany]
1414
public virtual List<TodoItem> TodoItems { get; set; }
1515

16-
[HasOne("owner")]
16+
[HasOne]
1717
public virtual Person Owner { get; set; }
1818

1919
public int? OwnerId { get; set; }

src/Examples/JsonApiDotNetCoreExample/Resources/UserResource.cs

+1-1
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ public override QueryFilters GetQueryFilters()
1818
{
1919
return new QueryFilters
2020
{
21-
{ "first-character", (users, queryFilter) => FirstCharacterFilter(users, queryFilter) }
21+
{ "firstCharacter", (users, queryFilter) => FirstCharacterFilter(users, queryFilter) }
2222
};
2323
}
2424

src/Examples/JsonApiDotNetCoreExample/Startups/ClientGeneratedIdsStartup.cs

-44
This file was deleted.

0 commit comments

Comments
 (0)