Skip to content

feat: B.3 - Update UseCase layer to use Model types #139

@mpyw

Description

@mpyw

Parent Issue

Part of #128

Summary

Update the UseCase layer to use the new Provider interfaces instead of directly using AWS SDK types (paramapi.*, secretapi.*).

Status

In Progress - This is the main work for PR #2, #3, #4.

Prerequisites (Complete ✅)


PR #2: Read UseCase Migration

Files to Modify

File Old Interface New Interface
internal/usecase/param/show.go ShowClient provider.ParameterReader
internal/usecase/param/log.go LogClient provider.ParameterReader
internal/usecase/param/list.go ListClient provider.ParameterReader
internal/usecase/param/diff.go DiffClient provider.ParameterReader
internal/usecase/secret/show.go ShowClient provider.SecretReader + SecretDescriber
internal/usecase/secret/log.go LogClient provider.SecretReader
internal/usecase/secret/list.go ListClient provider.SecretReader
internal/usecase/secret/diff.go DiffClient provider.SecretReader

Interface Mapping

Old New
paramapi.GetParameterAPI provider.ParameterReader.GetParameter
paramapi.GetParameterHistoryAPI provider.ParameterReader.GetParameterHistory
paramapi.DescribeParametersAPI provider.ParameterReader.ListParameters
secretapi.GetSecretValueAPI provider.SecretReader.GetSecret
secretapi.ListSecretVersionIDsAPI provider.SecretReader.GetSecretVersions
secretapi.ListSecretsAPI provider.SecretReader.ListSecrets
secretapi.DescribeSecretAPI provider.SecretDescriber.DescribeSecret

PR #3: Write UseCase Migration

Files to Modify

File Old Interface New Interface
internal/usecase/param/create.go CreateClient provider.ParameterWriter
internal/usecase/param/update.go UpdateClient provider.ParameterWriter
internal/usecase/param/delete.go DeleteClient provider.ParameterWriter
internal/usecase/secret/create.go CreateClient provider.SecretWriter
internal/usecase/secret/update.go UpdateClient provider.SecretWriter
internal/usecase/secret/delete.go DeleteClient provider.SecretWriter
internal/usecase/secret/restore.go RestoreClient provider.SecretRestorer

PR #4: Staging Strategy Migration

Files to Modify

File Old Interface New Interface
internal/staging/param.go ParamClient provider.ParameterService
internal/staging/secret.go SecretClient provider.SecretService + SecretRestorer + SecretDescriber
internal/staging/cli/*.go - Strategy initialization update
internal/cli/commands/stage/param/ - Pass Provider adapter
internal/cli/commands/stage/secret/ - Pass Provider adapter

Tasks

PR #2

  • Migrate internal/usecase/param/show.go
  • Migrate internal/usecase/param/log.go
  • Migrate internal/usecase/param/list.go
  • Migrate internal/usecase/param/diff.go
  • Migrate internal/usecase/secret/show.go
  • Migrate internal/usecase/secret/log.go
  • Migrate internal/usecase/secret/list.go
  • Migrate internal/usecase/secret/diff.go
  • Update CLI layer to pass adapters
  • Update all unit tests

PR #3

  • Migrate internal/usecase/param/create.go
  • Migrate internal/usecase/param/update.go
  • Migrate internal/usecase/param/delete.go
  • Migrate internal/usecase/secret/create.go
  • Migrate internal/usecase/secret/update.go
  • Migrate internal/usecase/secret/delete.go
  • Migrate internal/usecase/secret/restore.go
  • Update CLI layer
  • Update all unit tests
  • Run E2E tests

PR #4

  • Migrate internal/staging/param.go
  • Migrate internal/staging/secret.go
  • Update staging CLI wrappers
  • Update stage commands
  • Update all unit tests
  • Run E2E tests

Verification

go build ./...
make test
make lint
make e2e  # for PR #3, #4

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions