1111namespace JsonApiDotNetCoreTests . IntegrationTests . IdObfuscation ;
1212
1313public abstract class ObfuscatedIdentifiableController < TResource > (
14- IJsonApiOptions options , IResourceGraph resourceGraph , ILoggerFactory loggerFactory , IResourceService < TResource , int > resourceService )
15- : BaseJsonApiController < TResource , int > ( options , resourceGraph , loggerFactory , resourceService )
16- where TResource : class , IIdentifiable < int >
14+ IJsonApiOptions options , IResourceGraph resourceGraph , ILoggerFactory loggerFactory , IResourceService < TResource , long > resourceService )
15+ : BaseJsonApiController < TResource , long > ( options , resourceGraph , loggerFactory , resourceService )
16+ where TResource : class , IIdentifiable < long >
1717{
18- private readonly HexadecimalCodec _codec = new ( ) ;
19-
2018 [ HttpGet ]
2119 [ HttpHead ]
2220 public override Task < IActionResult > GetAsync ( CancellationToken cancellationToken )
@@ -28,7 +26,7 @@ public override Task<IActionResult> GetAsync(CancellationToken cancellationToken
2826 [ HttpHead ( "{id}" ) ]
2927 public Task < IActionResult > GetAsync ( [ Required ] string id , CancellationToken cancellationToken )
3028 {
31- int idValue = _codec . Decode ( id ) ;
29+ long idValue = HexadecimalCodec . Instance . Decode ( id ) ;
3230 return base . GetAsync ( idValue , cancellationToken ) ;
3331 }
3432
@@ -37,7 +35,7 @@ public Task<IActionResult> GetAsync([Required] string id, CancellationToken canc
3735 public Task < IActionResult > GetSecondaryAsync ( [ Required ] string id , [ Required ] [ PreserveEmptyString ] string relationshipName ,
3836 CancellationToken cancellationToken )
3937 {
40- int idValue = _codec . Decode ( id ) ;
38+ long idValue = HexadecimalCodec . Instance . Decode ( id ) ;
4139 return base . GetSecondaryAsync ( idValue , relationshipName , cancellationToken ) ;
4240 }
4341
@@ -46,7 +44,7 @@ public Task<IActionResult> GetSecondaryAsync([Required] string id, [Required] [P
4644 public Task < IActionResult > GetRelationshipAsync ( [ Required ] string id , [ Required ] [ PreserveEmptyString ] string relationshipName ,
4745 CancellationToken cancellationToken )
4846 {
49- int idValue = _codec . Decode ( id ) ;
47+ long idValue = HexadecimalCodec . Instance . Decode ( id ) ;
5048 return base . GetRelationshipAsync ( idValue , relationshipName , cancellationToken ) ;
5149 }
5250
@@ -60,14 +58,14 @@ public override Task<IActionResult> PostAsync([FromBody] [Required] TResource re
6058 public Task < IActionResult > PostRelationshipAsync ( [ Required ] string id , [ Required ] [ PreserveEmptyString ] string relationshipName ,
6159 [ FromBody ] [ Required ] ISet < IIdentifiable > rightResourceIds , CancellationToken cancellationToken )
6260 {
63- int idValue = _codec . Decode ( id ) ;
61+ long idValue = HexadecimalCodec . Instance . Decode ( id ) ;
6462 return base . PostRelationshipAsync ( idValue , relationshipName , rightResourceIds , cancellationToken ) ;
6563 }
6664
6765 [ HttpPatch ( "{id}" ) ]
6866 public Task < IActionResult > PatchAsync ( [ Required ] string id , [ FromBody ] [ Required ] TResource resource , CancellationToken cancellationToken )
6967 {
70- int idValue = _codec . Decode ( id ) ;
68+ long idValue = HexadecimalCodec . Instance . Decode ( id ) ;
7169 return base . PatchAsync ( idValue , resource , cancellationToken ) ;
7270 }
7371
@@ -76,22 +74,22 @@ public Task<IActionResult> PatchAsync([Required] string id, [FromBody] [Required
7674 public Task < IActionResult > PatchRelationshipAsync ( [ Required ] string id , [ Required ] [ PreserveEmptyString ] string relationshipName ,
7775 [ FromBody ] [ Required ] object ? rightValue , CancellationToken cancellationToken )
7876 {
79- int idValue = _codec . Decode ( id ) ;
77+ long idValue = HexadecimalCodec . Instance . Decode ( id ) ;
8078 return base . PatchRelationshipAsync ( idValue , relationshipName , rightValue , cancellationToken ) ;
8179 }
8280
8381 [ HttpDelete ( "{id}" ) ]
8482 public Task < IActionResult > DeleteAsync ( [ Required ] string id , CancellationToken cancellationToken )
8583 {
86- int idValue = _codec . Decode ( id ) ;
84+ long idValue = HexadecimalCodec . Instance . Decode ( id ) ;
8785 return base . DeleteAsync ( idValue , cancellationToken ) ;
8886 }
8987
9088 [ HttpDelete ( "{id}/relationships/{relationshipName}" ) ]
9189 public Task < IActionResult > DeleteRelationshipAsync ( [ Required ] string id , [ Required ] [ PreserveEmptyString ] string relationshipName ,
9290 [ FromBody ] [ Required ] ISet < IIdentifiable > rightResourceIds , CancellationToken cancellationToken )
9391 {
94- int idValue = _codec . Decode ( id ) ;
92+ long idValue = HexadecimalCodec . Instance . Decode ( id ) ;
9593 return base . DeleteRelationshipAsync ( idValue , relationshipName , rightResourceIds , cancellationToken ) ;
9694 }
9795}
0 commit comments