authentication.go 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. package cliController
  2. import (
  3. internalDbInfra "github.com/goinfinite/os/src/infra/internalDatabase"
  4. cliHelper "github.com/goinfinite/os/src/presentation/cli/helper"
  5. "github.com/goinfinite/os/src/presentation/liaison"
  6. "github.com/spf13/cobra"
  7. )
  8. type AuthenticationController struct {
  9. authenticationLiaison *liaison.AuthenticationLiaison
  10. }
  11. func NewAuthenticationController(
  12. persistentDbSvc *internalDbInfra.PersistentDatabaseService,
  13. trailDbSvc *internalDbInfra.TrailDatabaseService,
  14. ) *AuthenticationController {
  15. return &AuthenticationController{
  16. authenticationLiaison: liaison.NewAuthenticationLiaison(
  17. persistentDbSvc, trailDbSvc,
  18. ),
  19. }
  20. }
  21. func (controller *AuthenticationController) Login() *cobra.Command {
  22. var usernameStr, passwordStr, ipAddressStr string
  23. cmd := &cobra.Command{
  24. Use: "login",
  25. Short: "Login",
  26. Run: func(cmd *cobra.Command, args []string) {
  27. requestBody := map[string]interface{}{
  28. "username": usernameStr,
  29. "password": passwordStr,
  30. "operatorIpAddress": ipAddressStr,
  31. }
  32. cliHelper.LiaisonResponseWrapper(
  33. controller.authenticationLiaison.Login(requestBody),
  34. )
  35. },
  36. }
  37. cmd.Flags().StringVarP(&usernameStr, "username", "u", "", "Username")
  38. cmd.MarkFlagRequired("username")
  39. cmd.Flags().StringVarP(&passwordStr, "password", "p", "", "Password")
  40. cmd.MarkFlagRequired("password")
  41. cmd.Flags().StringVarP(&ipAddressStr, "ip-address", "i", "", "IpAddress")
  42. cmd.MarkFlagRequired("ip-address")
  43. return cmd
  44. }