Skip to content

Conversation

@jimmyn
Copy link
Collaborator

@jimmyn jimmyn commented Dec 1, 2025

Summary

Add Apple Pay Certificate API support with full CRUD operations and activation endpoint.

Implementation

  • Add ApplePayCertificateApi with endpoints: create, get, list, update, delete, activate
  • Add models: ApplePayCertificate, ActivateApplePayCertificateRequest, UpdateApplePayCertificateRequest, ApplePayCertificateDelete200Response
  • Add unit tests for all API endpoints and models
  • Update SDK to OpenAPI spec v1.8.0

Test plan

  • All 254 tests pass
  • New Apple Pay Certificate tests verify endpoint configuration
  • Model tests verify object construction with required/optional fields

Summary by CodeRabbit

  • New Features

    • Added Apple Pay certificate management API with activate, create, delete, get, list, and update operations.
  • Chores

    • Updated API version to 1.8.0.
  • Tests

    • Added unit tests for Apple Pay certificate API and models.

✏️ Tip: You can customize this high-level summary in your review settings.

- Add ApplePayCertificateApi with CRUD + activate endpoints
- Add models: ApplePayCertificate, ActivateApplePayCertificateRequest,
  UpdateApplePayCertificateRequest, ApplePayCertificateDelete200Response
- Add unit tests for API endpoints and models
- Update SDK to OpenAPI spec v1.8.0
@chatgpt-codex-connector
Copy link

You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard.

@jimmyn jimmyn merged commit a721e22 into master Dec 1, 2025
9 of 11 checks passed
@jimmyn jimmyn deleted the feat/apple-pay-certificate-api branch December 1, 2025 20:09
@coderabbitai
Copy link

coderabbitai bot commented Dec 1, 2025

Caution

Review failed

The pull request is closed.

Walkthrough

This pull request updates the MONEI Python SDK to OpenAPI specification version 1.8.0. It introduces a new ApplePayCertificateApi module with CRUD operations for managing Apple Pay certificates, adds five related model classes, updates version references across the codebase, modifies internal property-naming defaults in model initialization, expands public API exports, and adds corresponding unit tests.

Changes

Cohort / File(s) Summary
New Apple Pay Certificate API & Models
Monei/api/apple_pay_certificate_api.py, Monei/model/activate_apple_pay_certificate_request.py, Monei/model/apple_pay_certificate.py, Monei/model/apple_pay_certificate_delete200_response.py, Monei/model/update_apple_pay_certificate_request.py
Introduces new ApplePayCertificateApi class with activate, create, delete, get, list, and update methods; adds five supporting model classes for request/response payloads; integrates with existing SDK infrastructure.
API Domain Migration
Monei/api/apple_pay_domain_api.py
Replaces ApplePayDomainRegister200Response with ApplePayCertificateDelete200Response in response model mapping and imports.
SDK Client & Export Updates
Monei/apis/__init__.py, Monei/models/__init__.py, Monei/monei_client.py
Exports ApplePayCertificateApi and five new models; instantiates ApplePayCertificateApi in MoneiClient; removes ApplePayDomainRegister200Response from exports.
OpenAPI Spec Version Bump
Monei/__init__.py, Monei/api/bizum_api.py, Monei/api/payment_methods_api.py, Monei/api/payments_api.py, Monei/api/subscriptions_api.py, Monei/api_client.py, Monei/configuration.py, Monei/exceptions.py, Monei/rest.py, Monei/model_utils.py, and 60+ model files
Updates OpenAPI document version reference from 1.7.3 to 1.8.0 in module headers and docstrings; also updates example in api_client.py docstring to reference ApplePayCertificateApi.
Model Property-Naming Defaults
60+ model files (Monei/model/*.py): activate_subscription_request.py, api_exception.py, bad_request_error_all_of.py, cancel_*.py, capture_*.py, confirm_*.py, create_*.py, payment*.py, subscription*.py, refund_*.py, recurring_*.py, update_*.py, register_*.py, send_*.py, etc.
Changes default value of _spec_property_naming parameter from True to False in __init__ methods (and some _from_openapi_data methods); adds read-only attribute enforcement in select model constructors to raise ApiAttributeError when read-only fields are set.
New Unit Tests
test/test_activate_apple_pay_certificate_request.py, test/test_apple_pay_certificate.py, test/test_apple_pay_certificate_api.py, test/test_apple_pay_certificate_delete200_response.py, test/test_update_apple_pay_certificate_request.py
Adds five new unit test files covering Apple Pay certificate request/response models and API endpoints with standard setUp/tearDown patterns and basic assertion tests.

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~25 minutes

Areas requiring extra attention:

  • Consistency of _spec_property_naming changes: Verify that changing the default from True to False across 60+ model files does not introduce backward compatibility issues or alter deserialization behavior unexpectedly. Confirm this aligns with OpenAPI Generator 1.8.0 conventions.
  • Read-only attribute enforcement: Review newly added read-only attribute guards (e.g., in create_payment_request.py, payment.py, payment_methods_metadata.py, subscription.py, refund_payment_request.py, payment_session_details.py) to ensure error messages and behavior are consistent and correctly identify which fields are read-only.
  • ApplePayDomainApi migration: Confirm that replacing ApplePayDomainRegister200Response with ApplePayCertificateDelete200Response in apple_pay_domain_api.py is intentional and maintains correct response handling.
  • Import/export consistency: Verify that all new models in Monei/models/__init__.py and Monei/apis/__init__.py are correctly imported and do not cause circular dependencies.
  • MoneiClient integration: Ensure the new ApplePayCertificateApi is properly wired in monei_client.py and aliases are correctly set up for public access.
  • Test coverage adequacy: Verify that test stubs (especially in test_apple_pay_certificate_api.py) are sufficient or if more comprehensive endpoint testing is needed.
✨ Finishing touches
  • 📝 Generate docstrings
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch feat/apple-pay-certificate-api

📜 Recent review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between b732139 and 2d4b715.

📒 Files selected for processing (121)
  • .openapi-generator/FILES (3 hunks)
  • Monei/__init__.py (1 hunks)
  • Monei/api/__init__.py (1 hunks)
  • Monei/api/apple_pay_certificate_api.py (1 hunks)
  • Monei/api/apple_pay_domain_api.py (4 hunks)
  • Monei/api/bizum_api.py (1 hunks)
  • Monei/api/payment_methods_api.py (1 hunks)
  • Monei/api/payments_api.py (1 hunks)
  • Monei/api/subscriptions_api.py (1 hunks)
  • Monei/api_client.py (2 hunks)
  • Monei/apis/__init__.py (1 hunks)
  • Monei/configuration.py (2 hunks)
  • Monei/exceptions.py (1 hunks)
  • Monei/model/activate_apple_pay_certificate_request.py (1 hunks)
  • Monei/model/activate_subscription_request.py (1 hunks)
  • Monei/model/address.py (1 hunks)
  • Monei/model/api_exception.py (1 hunks)
  • Monei/model/apple_pay_certificate.py (1 hunks)
  • Monei/model/apple_pay_certificate_delete200_response.py (1 hunks)
  • Monei/model/bad_request_error.py (1 hunks)
  • Monei/model/bad_request_error_all_of.py (1 hunks)
  • Monei/model/bizum_validate_phone200_response.py (1 hunks)
  • Monei/model/cancel_payment_request.py (1 hunks)
  • Monei/model/cancel_subscription_request.py (1 hunks)
  • Monei/model/capture_payment_request.py (1 hunks)
  • Monei/model/confirm_payment_request.py (1 hunks)
  • Monei/model/confirm_payment_request_payment_method.py (1 hunks)
  • Monei/model/confirm_payment_request_payment_method_card.py (1 hunks)
  • Monei/model/create_payment_request.py (1 hunks)
  • Monei/model/create_subscription_request.py (1 hunks)
  • Monei/model/internal_server_error.py (1 hunks)
  • Monei/model/internal_server_error_all_of.py (1 hunks)
  • Monei/model/not_found_error.py (1 hunks)
  • Monei/model/not_found_error_all_of.py (1 hunks)
  • Monei/model/pause_subscription_request.py (1 hunks)
  • Monei/model/payment.py (1 hunks)
  • Monei/model/payment_billing_details.py (1 hunks)
  • Monei/model/payment_cancellation_reason.py (1 hunks)
  • Monei/model/payment_customer.py (1 hunks)
  • Monei/model/payment_last_refund_reason.py (1 hunks)
  • Monei/model/payment_message_channel.py (1 hunks)
  • Monei/model/payment_message_language.py (1 hunks)
  • Monei/model/payment_methods.py (1 hunks)
  • Monei/model/payment_methods_metadata.py (1 hunks)
  • Monei/model/payment_methods_metadata_alipay.py (1 hunks)
  • Monei/model/payment_methods_metadata_apple_pay.py (1 hunks)
  • Monei/model/payment_methods_metadata_bancontact.py (1 hunks)
  • Monei/model/payment_methods_metadata_bizum.py (1 hunks)
  • Monei/model/payment_methods_metadata_blik.py (1 hunks)
  • Monei/model/payment_methods_metadata_card.py (1 hunks)
  • Monei/model/payment_methods_metadata_click_to_pay.py (1 hunks)
  • Monei/model/payment_methods_metadata_click_to_pay_discover.py (1 hunks)
  • Monei/model/payment_methods_metadata_click_to_pay_mastercard.py (1 hunks)
  • Monei/model/payment_methods_metadata_click_to_pay_visa.py (1 hunks)
  • Monei/model/payment_methods_metadata_eps.py (1 hunks)
  • Monei/model/payment_methods_metadata_giropay.py (1 hunks)
  • Monei/model/payment_methods_metadata_google_pay.py (1 hunks)
  • Monei/model/payment_methods_metadata_i_deal.py (1 hunks)
  • Monei/model/payment_methods_metadata_klarna.py (1 hunks)
  • Monei/model/payment_methods_metadata_mbway.py (1 hunks)
  • Monei/model/payment_methods_metadata_sepa.py (1 hunks)
  • Monei/model/payment_methods_metadata_sofort.py (1 hunks)
  • Monei/model/payment_methods_metadata_trustly.py (1 hunks)
  • Monei/model/payment_methods_methods.py (1 hunks)
  • Monei/model/payment_next_action.py (1 hunks)
  • Monei/model/payment_payment_method.py (1 hunks)
  • Monei/model/payment_payment_method_bizum.py (1 hunks)
  • Monei/model/payment_payment_method_bizum_input.py (1 hunks)
  • Monei/model/payment_payment_method_card.py (1 hunks)
  • Monei/model/payment_payment_method_card_input.py (1 hunks)
  • Monei/model/payment_payment_method_input.py (1 hunks)
  • Monei/model/payment_payment_method_klarna.py (1 hunks)
  • Monei/model/payment_payment_method_mbway.py (1 hunks)
  • Monei/model/payment_payment_method_paypal.py (1 hunks)
  • Monei/model/payment_payment_method_sepa.py (1 hunks)
  • Monei/model/payment_payment_method_trustly.py (1 hunks)
  • Monei/model/payment_payment_methods.py (1 hunks)
  • Monei/model/payment_refund_reason.py (1 hunks)
  • Monei/model/payment_sequence.py (1 hunks)
  • Monei/model/payment_sequence_recurring.py (1 hunks)
  • Monei/model/payment_session_details.py (1 hunks)
  • Monei/model/payment_shipping_details.py (1 hunks)
  • Monei/model/payment_shop.py (1 hunks)
  • Monei/model/payment_status.py (1 hunks)
  • Monei/model/payment_trace_details.py (1 hunks)
  • Monei/model/payment_transaction_type.py (1 hunks)
  • Monei/model/recurring_payment_request.py (1 hunks)
  • Monei/model/refund_payment_request.py (1 hunks)
  • Monei/model/register_apple_pay_domain_request.py (1 hunks)
  • Monei/model/send_payment_link_request.py (1 hunks)
  • Monei/model/send_payment_receipt_request.py (1 hunks)
  • Monei/model/send_payment_request_request.py (1 hunks)
  • Monei/model/send_subscription_link_request.py (1 hunks)
  • Monei/model/send_subscription_status_request.py (1 hunks)
  • Monei/model/service_unavailable_error.py (1 hunks)
  • Monei/model/service_unavailable_error_all_of.py (1 hunks)
  • Monei/model/subscription.py (1 hunks)
  • Monei/model/subscription_interval.py (1 hunks)
  • Monei/model/subscription_last_payment.py (1 hunks)
  • Monei/model/subscription_payment_method.py (1 hunks)
  • Monei/model/subscription_payment_method_card.py (1 hunks)
  • Monei/model/subscription_payment_methods.py (1 hunks)
  • Monei/model/subscription_retry_schedule.py (1 hunks)
  • Monei/model/subscription_retry_schedule_inner.py (1 hunks)
  • Monei/model/subscription_status.py (1 hunks)
  • Monei/model/unauthorized_error.py (1 hunks)
  • Monei/model/unauthorized_error_all_of.py (1 hunks)
  • Monei/model/unprocessable_entity_error.py (1 hunks)
  • Monei/model/unprocessable_entity_error_all_of.py (1 hunks)
  • Monei/model/update_apple_pay_certificate_request.py (1 hunks)
  • Monei/model/update_subscription_request.py (1 hunks)
  • Monei/model/validate_bizum_phone_request.py (1 hunks)
  • Monei/model_utils.py (1 hunks)
  • Monei/models/__init__.py (2 hunks)
  • Monei/monei_client.py (3 hunks)
  • Monei/rest.py (1 hunks)
  • test/test_activate_apple_pay_certificate_request.py (1 hunks)
  • test/test_apple_pay_certificate.py (1 hunks)
  • test/test_apple_pay_certificate_api.py (1 hunks)
  • test/test_apple_pay_certificate_delete200_response.py (1 hunks)
  • test/test_update_apple_pay_certificate_request.py (1 hunks)

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

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.

2 participants