OSDN Git Service

list-accounts add filter alias (#1253)
authoroysheng <33340252+oysheng@users.noreply.github.com>
Tue, 14 Aug 2018 07:25:41 +0000 (15:25 +0800)
committerPaladz <yzhu101@uottawa.ca>
Tue, 14 Aug 2018 07:25:41 +0000 (15:25 +0800)
api/query.go
cmd/bytomcli/commands/account.go

index 50889ce..96a708b 100644 (file)
@@ -20,9 +20,19 @@ import (
 
 // POST /list-accounts
 func (a *API) listAccounts(ctx context.Context, filter struct {
-       ID string `json:"id"`
+       ID    string `json:"id"`
+       Alias string `json:"alias"`
 }) Response {
-       accounts, err := a.wallet.AccountMgr.ListAccounts(filter.ID)
+       accountID := filter.ID
+       if filter.Alias != "" {
+               acc, err := a.wallet.AccountMgr.FindByAlias(filter.Alias)
+               if err != nil {
+                       return NewErrorResponse(err)
+               }
+               accountID = acc.ID
+       }
+
+       accounts, err := a.wallet.AccountMgr.ListAccounts(accountID)
        if err != nil {
                log.Errorf("listAccounts: %v", err)
                return NewErrorResponse(err)
index 57fd0d6..6a34c39 100644 (file)
@@ -16,6 +16,7 @@ func init() {
        createAccountCmd.PersistentFlags().StringVarP(&accountToken, "access", "a", "", "access token")
 
        listAccountsCmd.PersistentFlags().StringVar(&accountID, "id", "", "account ID")
+       listAccountsCmd.PersistentFlags().StringVar(&accountAlias, "alias", "", "account alias")
 
        listAddressesCmd.PersistentFlags().StringVar(&accountID, "id", "", "account ID")
        listAddressesCmd.PersistentFlags().StringVar(&accountAlias, "alias", "", "account alias")
@@ -68,8 +69,9 @@ var listAccountsCmd = &cobra.Command{
        Args:  cobra.NoArgs,
        Run: func(cmd *cobra.Command, args []string) {
                filter := struct {
-                       ID string `json:"id"`
-               }{ID: accountID}
+                       ID    string `json:"id"`
+                       Alias string `json:"alias"`
+               }{ID: accountID, Alias: accountAlias}
 
                data, exitCode := util.ClientCall("/list-accounts", &filter)
                if exitCode != util.Success {