Skip to content
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

UpdateSObject - Added option to specify API version #33

Open
wants to merge 1 commit into
base: main
Choose a base branch
from

Conversation

FrendsSarlinS
Copy link
Contributor

@FrendsSarlinS FrendsSarlinS commented Aug 19, 2024

Closes #18 . Major version bump to 2.0.0. You can now specify API-version in the input-section. If left empty, the latest version as of today will be used (v61.0).

Summary by CodeRabbit

  • New Features

    • Introduced the ability to specify the Salesforce API version when updating objects, enhancing compatibility and flexibility.
    • Added a new property to the input parameters for defining API version, with a default value.
  • Bug Fixes

    • Updated documentation for API versioning to improve clarity and accuracy.
    • Enhanced tests to cover various scenarios involving the new API version parameter.
  • Chores

    • Incremented module version from 1.0.0 to 2.0.0, reflecting significant updates and improvements.

Copy link

coderabbitai bot commented Aug 19, 2024

Walkthrough

The recent update to Frends.Salesforce.UpdateSObject introduces a significant enhancement by allowing users to specify the Salesforce API version in input parameters, moving away from the hardcoded version. This flexibility improves compatibility and maintainability when interacting with different Salesforce API versions, and the version number has been incremented to 2.0.0 to reflect this breaking change.

Changes

Files Change Summary
Frends.Salesforce.UpdateSObject/CHANGELOG.md, Frends.Salesforce.UpdateSObject/Frends.Salesforce.UpdateSObject.csproj Updated changelog and project version from 1.0.0 to 2.0.0 to reflect the addition of the API version input parameter.
Frends.Salesforce.UpdateSObject/Frends.Salesforce.UpdateSObject.Tests/UnitTests.cs Added ApiVersion to multiple tests, ensuring robust validation of the new parameter. Introduced new test methods for handling specified and unspecified API versions.
Frends.Salesforce.UpdateSObject/Frends.Salesforce.UpdateSObject/Definitions/Input.cs Introduced ApiVersion property with a default value, and updated the domain documentation to clarify API versioning.
Frends.Salesforce.UpdateSObject/Frends.Salesforce.UpdateSObject/UpdateSObject.cs Modified URL construction for RestClient to incorporate the ApiVersion dynamically, improving flexibility in API interactions.

Sequence Diagram(s)

sequenceDiagram
    participant User
    participant UpdateSObject
    participant SalesforceAPI

    User->>UpdateSObject: Call UpdateSObject with ApiVersion
    UpdateSObject->>SalesforceAPI: Send request with specified ApiVersion
    SalesforceAPI-->>UpdateSObject: Return response
    UpdateSObject-->>User: Return result
Loading

Assessment against linked issues

Objective Addressed Explanation
Add an option to specify SalesForce API version (#18)
Change the hardcoded version and ensure defaulting (#18)

Poem

In the meadow, quick and spry,
A rabbit hops, beneath the sky.
With versions changed, so bright and new,
Salesforce dances, all thanks to you!
Flexibility’s the name of the game,
Hooray for updates, let’s cheer their fame! 🐇✨


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?

Share
Tips

Chat

There are 3 ways to chat with CodeRabbit:

  • Review comments: Directly reply to a review comment made by CodeRabbit. Example:
    • I pushed a fix in commit <commit_id>.
    • Generate unit testing code for this file.
    • Open a follow-up GitHub issue for this discussion.
  • Files and specific lines of code (under the "Files changed" tab): Tag @coderabbitai in a new review comment at the desired location with your query. Examples:
    • @coderabbitai generate unit testing code for this file.
    • @coderabbitai modularize this function.
  • PR comments: Tag @coderabbitai in a new PR comment to ask questions about the PR branch. For the best results, please provide a very specific query, as very limited context is provided in this mode. Examples:
    • @coderabbitai generate interesting stats about this repository and render them as a table.
    • @coderabbitai show all the console.log statements in this repository.
    • @coderabbitai read src/utils.ts and generate unit testing code.
    • @coderabbitai read the files in the src/scheduler package and generate a class diagram using mermaid and a README in the markdown format.
    • @coderabbitai help me debug CodeRabbit configuration file.

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 as PR comments)

  • @coderabbitai pause to pause the reviews on a PR.
  • @coderabbitai resume to resume the paused reviews.
  • @coderabbitai review to trigger an incremental review. This is useful when automatic reviews are disabled for the repository.
  • @coderabbitai full review to do a full review from scratch and review all the files again.
  • @coderabbitai summary to regenerate the summary of the PR.
  • @coderabbitai resolve resolve all the CodeRabbit review comments.
  • @coderabbitai configuration to show the current CodeRabbit configuration for the repository.
  • @coderabbitai help to get help.

Additionally, you can add @coderabbitai ignore anywhere in the PR description to prevent this PR from being reviewed.

CodeRabbit Configuration File (.coderabbit.yaml)

  • You can programmatically configure CodeRabbit by adding a .coderabbit.yaml file to the root of your repository.
  • Please see the configuration documentation for more information.
  • If your editor has YAML language server enabled, you can add the path at the top of this file to enable auto-completion and validation: # yaml-language-server: $schema=https://coderabbit.ai/integrations/schema.v2.json

Documentation and Community

  • Visit our Documentation for detailed information on how to use CodeRabbit.
  • Join our Discord Community to get help, request features, and share feedback.
  • Follow us on X/Twitter for updates and announcements.

Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 0

Review details

Configuration used: CodeRabbit UI
Review profile: CHILL

Commits

Files that changed from the base of the PR and between ae5b69c and 7496b8c.

Files selected for processing (5)
  • Frends.Salesforce.UpdateSObject/CHANGELOG.md (1 hunks)
  • Frends.Salesforce.UpdateSObject/Frends.Salesforce.UpdateSObject.Tests/UnitTests.cs (16 hunks)
  • Frends.Salesforce.UpdateSObject/Frends.Salesforce.UpdateSObject/Definitions/Input.cs (1 hunks)
  • Frends.Salesforce.UpdateSObject/Frends.Salesforce.UpdateSObject/Frends.Salesforce.UpdateSObject.csproj (1 hunks)
  • Frends.Salesforce.UpdateSObject/Frends.Salesforce.UpdateSObject/UpdateSObject.cs (1 hunks)
Additional comments not posted (22)
Frends.Salesforce.UpdateSObject/CHANGELOG.md (1)

3-5: Changelog update is accurate.

The changelog correctly documents the new feature allowing users to specify the Salesforce API version. This is a necessary update for transparency and version tracking.

Frends.Salesforce.UpdateSObject/Frends.Salesforce.UpdateSObject/Frends.Salesforce.UpdateSObject.csproj (1)

5-5: Version increment is appropriate.

The version number change from 1.0.0 to 2.0.0 correctly reflects the breaking changes introduced in this update.

Frends.Salesforce.UpdateSObject/Frends.Salesforce.UpdateSObject/Definitions/Input.cs (2)

12-12: Documentation clarity improved.

The updated comment for the Domain property clarifies the dynamic nature of the version number in the URL.


19-24: New ApiVersion property enhances flexibility.

The addition of the ApiVersion property allows users to specify the Salesforce API version, improving compatibility with different environments.

Frends.Salesforce.UpdateSObject/Frends.Salesforce.UpdateSObject/UpdateSObject.cs (1)

39-39: Dynamic API versioning implemented.

The use of input.ApiVersion in constructing the RestClient URL allows for flexible API versioning, which is a valuable enhancement.

Frends.Salesforce.UpdateSObject/Frends.Salesforce.UpdateSObject.Tests/UnitTests.cs (17)

85-89: Test update for ApiVersion is comprehensive.

The inclusion of the ApiVersion parameter in the UpdateAccountTest ensures that the new functionality is thoroughly tested.


91-96: New test for default API version behavior.

The UpdateAccountTest_WithoutSpecifiedApiVersion test effectively verifies the default behavior when the API version is not specified.


118-118: Consistent ApiVersion usage in tests.

The addition of ApiVersion in the UpdateContactTest ensures consistency across test cases.


155-155: Consistent ApiVersion usage in tests.

The addition of ApiVersion in the UpdateCaseTest ensures consistency across test cases.


188-188: Consistent ApiVersion usage in tests.

The addition of ApiVersion in the GetReturnedAccessTokenTest ensures consistency across test cases.


200-200: Consistent ApiVersion usage in tests.

The addition of ApiVersion in the EmptyAccessToken_ThrowTest ensures consistency across test cases.


222-222: Consistent ApiVersion usage in tests.

The addition of ApiVersion in the EmptyDomain_ThrowTest ensures consistency across test cases.


243-243: Consistent ApiVersion usage in tests.

The addition of ApiVersion in the EmptyId_ThrowTest ensures consistency across test cases.


264-264: Consistent ApiVersion usage in tests.

The addition of ApiVersion in the EmptyJson_ThrowTest ensures consistency across test cases.


285-285: Consistent ApiVersion usage in tests.

The addition of ApiVersion in the EmptyType_ThrowTest ensures consistency across test cases.


306-306: Consistent ApiVersion usage in tests.

The addition of ApiVersion in the InvalidDomain_ThrowTest ensures consistency across test cases.


332-332: Consistent ApiVersion usage in tests.

The addition of ApiVersion in the ExampleDomain_ThrowTest ensures consistency across test cases.


358-358: Consistent ApiVersion usage in tests.

The addition of ApiVersion in the InvalidObjectType_ThrowTest ensures consistency across test cases.


385-385: Consistent ApiVersion usage in tests.

The addition of ApiVersion in the InvalidSecretOAuth_ThrowTest ensures consistency across test cases.


412-412: Consistent ApiVersion usage in tests.

The addition of ApiVersion in the InvalidId_ThrowTest ensures consistency across test cases.


435-435: Consistent ApiVersion usage in tests.

The addition of ApiVersion in the InvalidJson_ThrowTest ensures consistency across test cases.


457-457: Consistent ApiVersion usage in tests.

The addition of ApiVersion in the NotFoundId_ThrowTest ensures consistency across test cases.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

UpdateSObject - Add an option to specify SalesForce API version
1 participant