-
-
Notifications
You must be signed in to change notification settings - Fork 3
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
feat:Add custom JSON converter for Unix timestamps and update method signatures #20
Conversation
WalkthroughThe changes introduce a custom JSON converter for handling Unix timestamps in Changes
Sequence Diagram(s)sequenceDiagram
participant Client
participant ImageClient
participant TextureClient
participant ModelAssetsClient
Client->>ImageClient: GetGenerationsByUserIdAsync(userId)
ImageClient-->>Client: Returns generations
Client->>TextureClient: GetTextureGenerationByIdAsync(id)
TextureClient-->>Client: Returns texture generation
Client->>ModelAssetsClient: Get3DModelByIdAsync(id)
ModelAssetsClient-->>Client: Returns 3D model
Thank you for using CodeRabbit. We offer it for free to the OSS community and would appreciate your support in helping us grow. If you find it useful, would you consider giving us a shout-out on your favorite social media? TipsChatThere are 3 ways to chat with CodeRabbit:
Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments. CodeRabbit Commands (Invoked using PR comments)
Other keywords and placeholders
CodeRabbit Configuration File (
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 1
Outside diff range, codebase verification and nitpick comments (1)
src/libs/Leonardo/Generated/JsonConverters.UnixTimestamp.g.cs (1)
6-6
: Enhance class documentation.While the use of
<inheritdoc />
is valid, providing specific documentation for this custom converter would improve clarity and maintainability.
Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Files selected for processing (6)
- src/libs/Leonardo/Generated/JsonConverters.UnixTimestamp.g.cs (1 hunks)
- src/libs/Leonardo/Generated/Leonardo.ImageClient.GetGenerationsByUserId.g.cs (1 hunks)
- src/libs/Leonardo/Generated/Leonardo.TextureClient.GetTextureGenerationById.g.cs (1 hunks)
- src/libs/Leonardo/Generated/Leonardo.TextureClient.GetTextureGenerationsByModelId.g.cs (1 hunks)
- src/libs/Leonardo/Generated/Leonardo.x3DModelAssetsClient.Get3DModelById.g.cs (1 hunks)
- src/libs/Leonardo/Generated/Leonardo.x3DModelAssetsClient.Get3DModelsByUserId.g.cs (1 hunks)
Additional comments not posted (6)
src/libs/Leonardo/Generated/JsonConverters.UnixTimestamp.g.cs (1)
30-37
: Well-implemented Unix timestamp writing.The
Write
method correctly convertsDateTimeOffset
to a Unix timestamp and writes it efficiently. Good job!src/libs/Leonardo/Generated/Leonardo.ImageClient.GetGenerationsByUserId.g.cs (1)
43-44
: Approve default parameter values but verify impact.The introduction of default values for
offset
andlimit
enhances usability. However, ensure that this change does not adversely affect existing functionality where these parameters were explicitly handled. Consider adding tests or checks to verify the impact on existing calls.Run the following script to verify the impact on existing functionality:
src/libs/Leonardo/Generated/Leonardo.x3DModelAssetsClient.Get3DModelById.g.cs (1)
47-48
: Approve default parameter values but verify impact.The introduction of default values for
offset
andlimit
enhances usability. However, ensure that this change does not adversely affect existing functionality where these parameters were explicitly handled. Consider adding tests or checks to verify the impact on existing calls.Run the following script to verify the impact on existing functionality:
src/libs/Leonardo/Generated/Leonardo.x3DModelAssetsClient.Get3DModelsByUserId.g.cs (1)
47-48
: Approve the addition of default values foroffset
andlimit
.The changes to make
offset
andlimit
optional by providing default values of0
and10
respectively are a good enhancement for usability. However, it's crucial to verify that these changes do not adversely affect existing calls to this method across the codebase.Run the following script to verify the function usage:
Verification successful
Verified: Default values for
offset
andlimit
do not affect existing functionality.The method
Get3DModelsByUserIdAsync
is called with explicit values foroffset
andlimit
, ensuring that the introduction of default values does not break existing code. The change is backward compatible and enhances usability. No further action is required.Scripts executed
The following scripts were executed for the analysis:
Script:
#!/bin/bash # Description: Verify all function calls to `Get3DModelsByUserIdAsync` match the new signature. # Test: Search for the function usage. Expect: Only occurrences of the new signature. rg --type python -A 5 $'Get3DModelsByUserIdAsync'Length of output: 79
Script:
#!/bin/bash # Description: Verify all function calls to `Get3DModelsByUserIdAsync` match the new signature in C# files. # Test: Search for the function usage in C# files. Expect: Only occurrences of the new signature. rg --type cs -A 5 $'Get3DModelsByUserIdAsync'Length of output: 2502
src/libs/Leonardo/Generated/Leonardo.TextureClient.GetTextureGenerationById.g.cs (1)
47-48
: Approve the addition of default values foroffset
andlimit
.The changes to make
offset
andlimit
optional by providing default values of0
and10
respectively are a good enhancement for usability. However, it's crucial to verify that these changes do not adversely affect existing calls to this method across the codebase.Run the following script to verify the function usage:
src/libs/Leonardo/Generated/Leonardo.TextureClient.GetTextureGenerationsByModelId.g.cs (1)
47-48
: Approve the addition of default values foroffset
andlimit
.The changes to make
offset
andlimit
optional by providing default values of0
and10
respectively are a good enhancement for usability. However, it's crucial to verify that these changes do not adversely affect existing calls to this method across the codebase.Run the following script to verify the function usage:
Verification successful
Changes to
GetTextureGenerationsByModelIdAsync
verified within the file.The method
GetTextureGenerationsByModelIdAsync
with default values foroffset
andlimit
is used consistently within the fileLeonardo.TextureClient.GetTextureGenerationsByModelId.g.cs
. No other usages were found, suggesting minimal impact on the rest of the codebase. However, if this method is used elsewhere, manual verification is recommended to ensure compatibility.Scripts executed
The following scripts were executed for the analysis:
Script:
#!/bin/bash # Description: Verify all function calls to `GetTextureGenerationsByModelIdAsync` match the new signature. # Test: Search for the function usage. Expect: Only occurrences of the new signature. rg --type python -A 5 $'GetTextureGenerationsByModelIdAsync'Length of output: 90
Script:
#!/bin/bash # Description: Verify all function calls to `GetTextureGenerationsByModelIdAsync` match the new signature. # Test: Search for the function usage in C# files. Expect: Only occurrences of the new signature. rg --type cs -A 5 $'GetTextureGenerationsByModelIdAsync'Length of output: 2613
public override global::System.DateTimeOffset Read( | ||
ref global::System.Text.Json.Utf8JsonReader reader, | ||
global::System.Type typeToConvert, | ||
global::System.Text.Json.JsonSerializerOptions options) | ||
{ | ||
if (reader.TokenType == global::System.Text.Json.JsonTokenType.Number) | ||
{ | ||
if (reader.TryGetInt64(out long unixTimestamp)) | ||
{ | ||
return global::System.DateTimeOffset.FromUnixTimeSeconds(unixTimestamp); | ||
} | ||
if (reader.TryGetInt32(out int unixTimestampInt)) | ||
{ | ||
return global::System.DateTimeOffset.FromUnixTimeSeconds(unixTimestampInt); | ||
} | ||
} | ||
|
||
return default; | ||
} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Improve error handling in Unix timestamp conversion.
The method handles different numeric types well. However, returning default
when neither long
nor int
conversions succeed may not be the best approach, as it silently fails to DateTimeOffset.MinValue
. Consider throwing an exception or logging an error to handle this case more explicitly.
Summary by CodeRabbit
New Features
DateTimeOffset
objects.offset
andlimit
, simplifying method calls for retrieving generations and models.Bug Fixes