github.com/loomnetwork/gamechain@v0.0.0-20200406110549-36c47eb97a92/cli/cmd/get_match.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  	"strings"
     8  
     9  	"github.com/loomnetwork/go-loom"
    10  	"github.com/loomnetwork/go-loom/auth"
    11  	"github.com/spf13/cobra"
    12  )
    13  
    14  var getMatchCmdArgs struct {
    15  	MatchID int64
    16  }
    17  
    18  var getMatchCmd = &cobra.Command{
    19  	Use:   "get_match",
    20  	Short: "get match",
    21  	RunE: func(cmd *cobra.Command, args []string) error {
    22  		signer := auth.NewEd25519Signer(commonTxObjs.privateKey)
    23  		callerAddr := loom.Address{
    24  			ChainID: commonTxObjs.rpcClient.GetChainID(),
    25  			Local:   loom.LocalAddressFromPublicKey(signer.PublicKey()),
    26  		}
    27  		var req = zb_calls.GetMatchRequest{
    28  			MatchId: getMatchCmdArgs.MatchID,
    29  		}
    30  		var resp zb_calls.GetMatchResponse
    31  
    32  		_, err := commonTxObjs.contract.StaticCall("GetMatch", &req, callerAddr, &resp)
    33  		if err != nil {
    34  			return err
    35  		}
    36  		match := resp.Match
    37  
    38  		switch strings.ToLower(rootCmdArgs.outputFormat) {
    39  		case "json":
    40  			err := battleground_utility.PrintProtoMessageAsJsonToStdout(match)
    41  			if err != nil {
    42  				return err
    43  			}
    44  		default:
    45  			fmt.Printf("MatchID: %d\n", match.Id)
    46  			fmt.Printf("Status: %s\n", match.Status)
    47  			fmt.Printf("Topic: %v\n", match.Topics)
    48  			fmt.Printf("Players:\n")
    49  			for i, player := range match.PlayerStates {
    50  				fmt.Printf("\tPlayer%d: %s\n", i+1, player.Id)
    51  			}
    52  		}
    53  
    54  		return nil
    55  	},
    56  }
    57  
    58  func init() {
    59  	rootCmd.AddCommand(getMatchCmd)
    60  
    61  	getMatchCmd.Flags().Int64VarP(&getMatchCmdArgs.MatchID, "matchId", "m", 0, "Match ID")
    62  }