Skip to content

Instantly share code, notes, and snippets.

@syafdia
Last active August 17, 2021 16:26
Show Gist options
  • Save syafdia/31ca8f257a1cbea57ecd0f7ec89e05da to your computer and use it in GitHub Desktop.
Save syafdia/31ca8f257a1cbea57ecd0f7ec89e05da to your computer and use it in GitHub Desktop.
// internal/user/usecase.go
package user
import "context"
type RegisterUserUseCase interface {
Execute(ctx context.Context, input CreateUserInput) (User, error)
}
type registerUserUseCase struct {
userRepo UserRepo
}
func NewRegisterUserUseCase(
userRepo UserRepo,
) RegisterUserUseCase {
return &registerUserUseCase{userRepo: userRepo}
}
func (w *registerUserUseCase) Execute(ctx context.Context, input CreateUserInput) (User, error) {
user, err := w.userRepo.Create(ctx, input)
if err != nil {
return User{}, err
}
// Do something
// ...
// ...
return user, nil
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment