vendor.go 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. package main
  2. import (
  3. "bufio"
  4. "errors"
  5. "fmt"
  6. "os"
  7. "sparrow/pkg/models"
  8. "sparrow/pkg/rpcs"
  9. "sparrow/pkg/server"
  10. "strings"
  11. )
  12. func addVendor() error {
  13. args := models.Vendor{}
  14. reader := bufio.NewReader(os.Stdin)
  15. fmt.Printf("vendor name: ")
  16. name, err := reader.ReadString('\n')
  17. if err != nil {
  18. return err
  19. }
  20. args.VendorName = strings.Replace(name, "\n", "", -1)
  21. fmt.Printf("vendor description: ")
  22. desc, err := reader.ReadString('\n')
  23. if err != nil {
  24. return err
  25. }
  26. args.VendorDescription = strings.Replace(desc, "\n", "", -1)
  27. reply := &models.Vendor{}
  28. err = server.RPCCallByName(nil, rpcs.RegistryServerName, "Registry.SaveVendor", &args, reply)
  29. if err != nil {
  30. return err
  31. }
  32. fmt.Println("=======> vendor created successfully:")
  33. printStruct(reply)
  34. fmt.Println("=======")
  35. return nil
  36. }
  37. func DoVendorCommand(args []string) error {
  38. if len(args) < 1 {
  39. return errors.New("command arguments not enough!")
  40. }
  41. op := strings.TrimSpace(args[0])
  42. switch op {
  43. case "add":
  44. if len(args) > 1 {
  45. return errors.New("unnecessary command arguments. just type 'vendor add'")
  46. }
  47. err := addVendor()
  48. if err != nil {
  49. return err
  50. }
  51. default:
  52. return errors.New("operation not suported:" + op)
  53. }
  54. return nil
  55. }