11
11
namespace JsonApiDotNetCoreTests . IntegrationTests . IdObfuscation ;
12
12
13
13
public 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 >
17
17
{
18
- private readonly HexadecimalCodec _codec = new ( ) ;
19
-
20
18
[ HttpGet ]
21
19
[ HttpHead ]
22
20
public override Task < IActionResult > GetAsync ( CancellationToken cancellationToken )
@@ -28,7 +26,7 @@ public override Task<IActionResult> GetAsync(CancellationToken cancellationToken
28
26
[ HttpHead ( "{id}" ) ]
29
27
public Task < IActionResult > GetAsync ( [ Required ] string id , CancellationToken cancellationToken )
30
28
{
31
- int idValue = _codec . Decode ( id ) ;
29
+ long idValue = HexadecimalCodec . Instance . Decode ( id ) ;
32
30
return base . GetAsync ( idValue , cancellationToken ) ;
33
31
}
34
32
@@ -37,7 +35,7 @@ public Task<IActionResult> GetAsync([Required] string id, CancellationToken canc
37
35
public Task < IActionResult > GetSecondaryAsync ( [ Required ] string id , [ Required ] [ PreserveEmptyString ] string relationshipName ,
38
36
CancellationToken cancellationToken )
39
37
{
40
- int idValue = _codec . Decode ( id ) ;
38
+ long idValue = HexadecimalCodec . Instance . Decode ( id ) ;
41
39
return base . GetSecondaryAsync ( idValue , relationshipName , cancellationToken ) ;
42
40
}
43
41
@@ -46,7 +44,7 @@ public Task<IActionResult> GetSecondaryAsync([Required] string id, [Required] [P
46
44
public Task < IActionResult > GetRelationshipAsync ( [ Required ] string id , [ Required ] [ PreserveEmptyString ] string relationshipName ,
47
45
CancellationToken cancellationToken )
48
46
{
49
- int idValue = _codec . Decode ( id ) ;
47
+ long idValue = HexadecimalCodec . Instance . Decode ( id ) ;
50
48
return base . GetRelationshipAsync ( idValue , relationshipName , cancellationToken ) ;
51
49
}
52
50
@@ -60,14 +58,14 @@ public override Task<IActionResult> PostAsync([FromBody] [Required] TResource re
60
58
public Task < IActionResult > PostRelationshipAsync ( [ Required ] string id , [ Required ] [ PreserveEmptyString ] string relationshipName ,
61
59
[ FromBody ] [ Required ] ISet < IIdentifiable > rightResourceIds , CancellationToken cancellationToken )
62
60
{
63
- int idValue = _codec . Decode ( id ) ;
61
+ long idValue = HexadecimalCodec . Instance . Decode ( id ) ;
64
62
return base . PostRelationshipAsync ( idValue , relationshipName , rightResourceIds , cancellationToken ) ;
65
63
}
66
64
67
65
[ HttpPatch ( "{id}" ) ]
68
66
public Task < IActionResult > PatchAsync ( [ Required ] string id , [ FromBody ] [ Required ] TResource resource , CancellationToken cancellationToken )
69
67
{
70
- int idValue = _codec . Decode ( id ) ;
68
+ long idValue = HexadecimalCodec . Instance . Decode ( id ) ;
71
69
return base . PatchAsync ( idValue , resource , cancellationToken ) ;
72
70
}
73
71
@@ -76,22 +74,22 @@ public Task<IActionResult> PatchAsync([Required] string id, [FromBody] [Required
76
74
public Task < IActionResult > PatchRelationshipAsync ( [ Required ] string id , [ Required ] [ PreserveEmptyString ] string relationshipName ,
77
75
[ FromBody ] [ Required ] object ? rightValue , CancellationToken cancellationToken )
78
76
{
79
- int idValue = _codec . Decode ( id ) ;
77
+ long idValue = HexadecimalCodec . Instance . Decode ( id ) ;
80
78
return base . PatchRelationshipAsync ( idValue , relationshipName , rightValue , cancellationToken ) ;
81
79
}
82
80
83
81
[ HttpDelete ( "{id}" ) ]
84
82
public Task < IActionResult > DeleteAsync ( [ Required ] string id , CancellationToken cancellationToken )
85
83
{
86
- int idValue = _codec . Decode ( id ) ;
84
+ long idValue = HexadecimalCodec . Instance . Decode ( id ) ;
87
85
return base . DeleteAsync ( idValue , cancellationToken ) ;
88
86
}
89
87
90
88
[ HttpDelete ( "{id}/relationships/{relationshipName}" ) ]
91
89
public Task < IActionResult > DeleteRelationshipAsync ( [ Required ] string id , [ Required ] [ PreserveEmptyString ] string relationshipName ,
92
90
[ FromBody ] [ Required ] ISet < IIdentifiable > rightResourceIds , CancellationToken cancellationToken )
93
91
{
94
- int idValue = _codec . Decode ( id ) ;
92
+ long idValue = HexadecimalCodec . Instance . Decode ( id ) ;
95
93
return base . DeleteRelationshipAsync ( idValue , relationshipName , rightResourceIds , cancellationToken ) ;
96
94
}
97
95
}
0 commit comments