Skip to content

Add settings preference client - #121

Closed
cb-hareeshv wants to merge 1 commit into
v4from
feat/SSM-1125-settings-preference
Closed

cb-hareeshv wants to merge 1 commit into
v4from
feat/SSM-1125-settings-preference

Conversation

@cb-hareeshv

@cb-hareeshv cb-hareeshv commented Sep 28, 2026 •

Copy link
Copy Markdown

Summary

  • Adds the Java v4 client for the settings preference API (GET/POST /preferences and GET /preferences/definitions).
  • Includes the billing_rules setting group from feat/SSM-1125.
  • Leaves unrelated generated resources, including email logs, unchanged.

Test plan

  • client.preferences().list(...) calls GET /preferences with setting_group[is]=billing_rules
  • client.preferences().upsert(...) calls POST /preferences
  • client.preferenceDefinitions().listDefinitions(...) calls GET /preferences/definitions
  • Existing emailLogs() client methods are still present

Made with Cursor

Adds Java v4 client support for GET and POST /preferences and GET /preferences/definitions, with sync and async methods. Adds preference and definition models, request parameters, response types, and client accessors. Includes the BILLING_RULES setting group.

Expose list and upsert for /preferences, plus preference definitions, including the billing_rules setting group.

Co-authored-by: Cursor <cursoragent@cursor.com>
@snyk-io

snyk-io Bot commented Sep 28, 2026 •

Copy link
Copy Markdown

✅ Snyk checks have passed. No issues have been found so far.

Status Scan Engine Critical High Medium Low Total (0)
✅ Open Source Security 0 0 0 0 0 issues
✅ Licenses 0 0 0 0 0 issues
✅ Code Security 0 0 0 0 0 issues

💻 Catch issues earlier using the plugins for VS Code, JetBrains IDEs, Visual Studio, and Eclipse.

@coderabbitai

coderabbitai Bot commented Sep 28, 2026 •

Copy link
Copy Markdown

Review in Change Stack →

Navigate logical layers of code changes, visualize relationships, and explore their blast radius.

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Advanced

Run ID: 25247f52-254e-4598-bba3-5e4b03551168

📥 Commits

Reviewing files that changed from the base of the PR and between 7d728f7 and d24a5fa.

📒 Files selected for processing (13)
  • src/main/java/com/chargebee/v4/client/ClientMethods.java
  • src/main/java/com/chargebee/v4/client/ClientMethodsImpl.java
  • src/main/java/com/chargebee/v4/client/ServiceRegistry.java
  • src/main/java/com/chargebee/v4/models/preference/Preference.java
  • src/main/java/com/chargebee/v4/models/preference/params/PreferenceListParams.java
  • src/main/java/com/chargebee/v4/models/preference/params/PreferenceUpsertParams.java
  • src/main/java/com/chargebee/v4/models/preference/responses/PreferenceListResponse.java
  • src/main/java/com/chargebee/v4/models/preference/responses/PreferenceUpsertResponse.java
  • src/main/java/com/chargebee/v4/models/preferenceDefinition/PreferenceDefinition.java
  • src/main/java/com/chargebee/v4/models/preferenceDefinition/params/PreferenceDefinitionListDefinitionsParams.java
  • src/main/java/com/chargebee/v4/models/preferenceDefinition/responses/PreferenceDefinitionListDefinitionsResponse.java
  • src/main/java/com/chargebee/v4/services/PreferenceDefinitionService.java
  • src/main/java/com/chargebee/v4/services/PreferenceService.java

Included review availability: This review used your included allowance. Your plan provides up to 1 included review per hour; 0 remain after this review.


Walkthrough

The SDK adds preference and preference-definition models, parameter and response types, service operations, and client accessors. Preference operations support listing and upserting; preference definitions support listing. Both services expose synchronous and asynchronous request methods.

Changes

Preference API

Layer / File(s) Summary
Preference models and request/response contracts
src/main/java/com/chargebee/v4/models/preference/Preference.java, src/main/java/com/chargebee/v4/models/preference/params/*, src/main/java/com/chargebee/v4/models/preference/responses/*
Adds the preference model, list filters, upsert form parameters, and list and upsert responses.
Preference service and client access
src/main/java/com/chargebee/v4/services/PreferenceService.java, src/main/java/com/chargebee/v4/client/ClientMethods.java, src/main/java/com/chargebee/v4/client/ClientMethodsImpl.java, src/main/java/com/chargebee/v4/client/ServiceRegistry.java
Adds synchronous and asynchronous listing and upsert operations. Client accessors delegate to registry methods that lazily initialize each service.

Preference-definition API

Layer / File(s) Summary
Preference-definition schema and list contracts
src/main/java/com/chargebee/v4/models/preferenceDefinition/PreferenceDefinition.java, src/main/java/com/chargebee/v4/models/preferenceDefinition/params/PreferenceDefinitionListDefinitionsParams.java, src/main/java/com/chargebee/v4/models/preferenceDefinition/responses/PreferenceDefinitionListDefinitionsResponse.java
Adds the definition model and nested schema types, list filters, and response parsing.
Preference-definition service and client access
src/main/java/com/chargebee/v4/services/PreferenceDefinitionService.java, src/main/java/com/chargebee/v4/client/ClientMethods.java, src/main/java/com/chargebee/v4/client/ClientMethodsImpl.java, src/main/java/com/chargebee/v4/client/ServiceRegistry.java
Adds synchronous and asynchronous definition listing. Client accessors delegate to a registry method that lazily initializes the service.

Priority: ⬇️ Low

Estimated code review effort: 3 (Moderate) | ~25 minutes

Change: Feature

Sequence Diagram(s)

sequenceDiagram
  participant ClientMethods
  participant ServiceRegistry
  participant PreferenceService
  participant PreferencesAPI
  ClientMethods->>ServiceRegistry: preferences()
  ServiceRegistry->>PreferenceService: create or return service
  PreferenceService->>PreferencesAPI: GET /preferences
  PreferencesAPI->>PreferenceService: JSON response
  PreferenceService->>PreferenceService: parse PreferenceListResponse
Loading
sequenceDiagram
  participant ClientMethods
  participant ServiceRegistry
  participant PreferenceDefinitionService
  participant DefinitionsAPI
  ClientMethods->>ServiceRegistry: preferenceDefinitions()
  ServiceRegistry->>PreferenceDefinitionService: create or return service
  PreferenceDefinitionService->>DefinitionsAPI: GET /preferences/definitions
  DefinitionsAPI->>PreferenceDefinitionService: JSON response
  PreferenceDefinitionService->>PreferenceDefinitionService: parse PreferenceDefinitionListDefinitionsResponse
Loading

Merge Risk: ⚪ Minimal · up to d24a5

The new preference operations have no confirmed merge-blocking issue. Normal checks remain appropriate before merging.

🚥 Pre-merge checks | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 14.87% which is insufficient. The required threshold is 80.00%. Docstring coverage is scoped to functions touched by this diff. Analyzed 316 functions across 13 files. Write docstrings for the functions missing them to satisfy the coverage threshold.
  • Fix all pre-merge checks with AI

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

✨ Finishing Touches 💡 1
🛠️ Fix failing CI checks 💡
  • Commit to this branch
  • Create a new PR

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.

1 participant