github.com/loomnetwork/gamechain@v0.0.0-20200406110549-36c47eb97a92/cli/cmd/get_account.go (about) 1 package cmd 2 3 import ( 4 "fmt" 5 "github.com/loomnetwork/gamechain/tools/battleground_utility" 6 "github.com/loomnetwork/gamechain/types/zb/zb_calls" 7 "github.com/loomnetwork/gamechain/types/zb/zb_data" 8 "strings" 9 10 "github.com/loomnetwork/go-loom" 11 "github.com/loomnetwork/go-loom/auth" 12 "github.com/spf13/cobra" 13 ) 14 15 var getAccCmdArgs struct { 16 userID string 17 } 18 19 var getAccountCmd = &cobra.Command{ 20 Use: "get_account", 21 Short: "gets account data for zombiebattleground", 22 RunE: func(cmd *cobra.Command, args []string) error { 23 signer := auth.NewEd25519Signer(commonTxObjs.privateKey) 24 callerAddr := loom.Address{ 25 ChainID: commonTxObjs.rpcClient.GetChainID(), 26 Local: loom.LocalAddressFromPublicKey(signer.PublicKey()), 27 } 28 29 req := &zb_calls.GetAccountRequest{ 30 UserId: getAccCmdArgs.userID, 31 } 32 var result zb_data.Account 33 34 _, err := commonTxObjs.contract.StaticCall("GetAccount", req, callerAddr, &result) 35 if err != nil { 36 return fmt.Errorf("error encountered while calling GetAccount: %s", err.Error()) 37 } 38 39 switch strings.ToLower(rootCmdArgs.outputFormat) { 40 case "json": 41 err := battleground_utility.PrintProtoMessageAsJsonToStdout(&result) 42 if err != nil { 43 return err 44 } 45 default: 46 fmt.Printf("User: %s\n", result.UserId) 47 fmt.Printf("Image: %s\n", result.Image) 48 fmt.Printf("Game Membership Tier: %d\n", result.GameMembershipTier) 49 fmt.Printf("Elo Score: %d\n", result.EloScore) 50 } 51 52 return nil 53 }, 54 } 55 56 func init() { 57 rootCmd.AddCommand(getAccountCmd) 58 59 getAccountCmd.Flags().StringVarP(&getAccCmdArgs.userID, "userId", "u", "loom", "UserId of account") 60 }