Skip to content

refactor(usecase): migrate write operations to provider interfaces#153

Merged
mpyw merged 1 commit intomulticloudfrom
refactor/usecase-write-provider-interfaces
Jan 20, 2026
Merged

refactor(usecase): migrate write operations to provider interfaces#153
mpyw merged 1 commit intomulticloudfrom
refactor/usecase-write-provider-interfaces

Conversation

@mpyw
Copy link
Owner

@mpyw mpyw commented Jan 20, 2026

Summary

  • Migrate all write use cases (create, update, delete, restore) from AWS-specific API interfaces to cloud-agnostic provider interfaces
  • Update provider interfaces with write result types (ParameterWriteResult, SecretWriteResult, SecretDeleteResult, SecretRestoreResult)
  • Update CLI commands and GUI to use AWS adapters instead of raw AWS clients
  • Update all related tests with new mock implementations

This completes PR #3 of the multi-cloud refactoring roadmap.

Changes

Provider Layer

  • internal/provider/parameter.go - Add ParameterWriteResult return type to PutParameter
  • internal/provider/secret.go - Add result return types to write operations
  • internal/provider/aws/param/adapter.go - Update PutParameter to return result
  • internal/provider/aws/secret/adapter.go - Update write methods to return results

Model Layer

  • internal/model/parameter.go - Add ParameterWriteResult type
  • internal/model/secret.go - Add SecretWriteResult, SecretDeleteResult, SecretRestoreResult types

Use Case Layer

  • internal/usecase/param/create.go - Use provider interface
  • internal/usecase/param/update.go - Use provider interface, add GetCurrentValue
  • internal/usecase/param/delete.go - Use provider interface
  • internal/usecase/secret/create.go - Use provider interface
  • internal/usecase/secret/update.go - Use provider interface (removed Description support)
  • internal/usecase/secret/delete.go - Use provider interface (removed RecoveryWindow from input)
  • internal/usecase/secret/restore.go - Use provider interface

CLI Layer

  • All param/secret write commands now use awsparam.NewAdapter() / awssecret.NewAdapter()
  • Removed getCurrentValue from CLI layer (moved to usecase)
  • Deleted obsolete update_internal_test.go

GUI Layer

  • internal/gui/param.go - Use adapter for ParamSet, ParamDelete
  • internal/gui/secret.go - Use adapter for SecretCreate, SecretUpdate, SecretDelete, SecretRestore

Test plan

  • make test - All tests pass
  • make lint - No issues

🤖 Generated with Claude Code

Migrate all write use cases (create, update, delete, restore) from
AWS-specific API interfaces to cloud-agnostic provider interfaces.

Changes:
- Update provider interfaces with write result types
- Migrate param/create, param/update, param/delete use cases
- Migrate secret/create, secret/update, secret/delete, secret/restore
- Update CLI commands to use AWS adapters
- Update GUI to use AWS adapters
- Update all related tests with new mock implementations

This completes PR #3 of the multi-cloud refactoring roadmap.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
@github-actions github-actions bot added go Pull requests that update Go code cli CLI functionality gui GUI functionality param AWS Parameter Store related secret AWS Secrets Manager related labels Jan 20, 2026
@codecov
Copy link

codecov bot commented Jan 20, 2026

Codecov Report

❌ Patch coverage is 93.80531% with 7 lines in your changes missing coverage. Please review.
✅ Project coverage is 88.32%. Comparing base (53b8cf3) to head (3af18d5).
⚠️ Report is 1 commits behind head on multicloud.

Files with missing lines Patch % Lines
internal/usecase/param/update.go 68.75% 5 Missing ⚠️
internal/cli/commands/param/update/update.go 75.00% 1 Missing ⚠️
internal/provider/aws/secret/adapter.go 96.77% 1 Missing ⚠️
Additional details and impacted files
@@              Coverage Diff               @@
##           multicloud     #153      +/-   ##
==============================================
+ Coverage       87.79%   88.32%   +0.52%     
==============================================
  Files             139      139              
  Lines            8204     8168      -36     
==============================================
+ Hits             7203     7214      +11     
+ Misses            754      698      -56     
- Partials          247      256       +9     
Flag Coverage Δ
e2e 66.36% <86.72%> (+0.89%) ⬆️
platform-darwin 64.38% <ø> (ø)
platform-linux 62.85% <ø> (ø)
platform-windows 73.46% <ø> (ø)
unittests 75.85% <48.67%> (-0.39%) ⬇️

Flags with carried forward coverage won't be shown. Click here to find out more.

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@mpyw mpyw merged commit a3a2fa6 into multicloud Jan 20, 2026
25 checks passed
@mpyw mpyw deleted the refactor/usecase-write-provider-interfaces branch January 20, 2026 04:38
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

cli CLI functionality go Pull requests that update Go code gui GUI functionality param AWS Parameter Store related secret AWS Secrets Manager related

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant