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