diff --git a/internal/cmd/server/get/get.go b/internal/cmd/server/get/get.go index 862bb0a..39380da 100644 --- a/internal/cmd/server/get/get.go +++ b/internal/cmd/server/get/get.go @@ -44,7 +44,7 @@ func runGet(f *cmdutil.Factory, opts *Options) error { func runGetInteractive(f *cmdutil.Factory, opts *Options) error { if opts.id == "" { - servers, err := f.ApiClient.ListServers(context.Background()) + servers, err := f.ApiClient.ListServers(context.Background(), f.CurrentOwnerID()) if err != nil { return fmt.Errorf("list servers failed: %w", err) } diff --git a/internal/cmd/server/list/list.go b/internal/cmd/server/list/list.go index 51b718e..a734655 100644 --- a/internal/cmd/server/list/list.go +++ b/internal/cmd/server/list/list.go @@ -23,7 +23,7 @@ func NewCmdList(f *cmdutil.Factory) *cobra.Command { } func runList(f *cmdutil.Factory) error { - servers, err := f.ApiClient.ListServers(context.Background()) + servers, err := f.ApiClient.ListServers(context.Background(), f.CurrentOwnerID()) if err != nil { return fmt.Errorf("list servers failed: %w", err) } diff --git a/internal/cmd/server/reboot/reboot.go b/internal/cmd/server/reboot/reboot.go index 0372716..b4b4994 100644 --- a/internal/cmd/server/reboot/reboot.go +++ b/internal/cmd/server/reboot/reboot.go @@ -46,7 +46,7 @@ func runReboot(f *cmdutil.Factory, opts *Options) error { func runRebootInteractive(f *cmdutil.Factory, opts *Options) error { if opts.id == "" { - servers, err := f.ApiClient.ListServers(context.Background()) + servers, err := f.ApiClient.ListServers(context.Background(), f.CurrentOwnerID()) if err != nil { return fmt.Errorf("list servers failed: %w", err) } diff --git a/internal/cmd/server/rename/rename.go b/internal/cmd/server/rename/rename.go index 3a8c484..6ca8d4e 100644 --- a/internal/cmd/server/rename/rename.go +++ b/internal/cmd/server/rename/rename.go @@ -47,7 +47,7 @@ func runRename(f *cmdutil.Factory, opts *Options) error { func runRenameInteractive(f *cmdutil.Factory, opts *Options) error { if opts.id == "" { - servers, err := f.ApiClient.ListServers(context.Background()) + servers, err := f.ApiClient.ListServers(context.Background(), f.CurrentOwnerID()) if err != nil { return fmt.Errorf("list servers failed: %w", err) } diff --git a/internal/cmd/server/ssh/ssh.go b/internal/cmd/server/ssh/ssh.go index 90a5b9e..f6afe1d 100644 --- a/internal/cmd/server/ssh/ssh.go +++ b/internal/cmd/server/ssh/ssh.go @@ -47,7 +47,7 @@ func runSSH(f *cmdutil.Factory, opts *Options) error { func runSSHInteractive(f *cmdutil.Factory, opts *Options) error { if opts.id == "" { - servers, err := f.ApiClient.ListServers(context.Background()) + servers, err := f.ApiClient.ListServers(context.Background(), f.CurrentOwnerID()) if err != nil { return fmt.Errorf("list servers failed: %w", err) } diff --git a/internal/cmd/server/sshinfo/sshinfo.go b/internal/cmd/server/sshinfo/sshinfo.go index f4c5525..86dad79 100644 --- a/internal/cmd/server/sshinfo/sshinfo.go +++ b/internal/cmd/server/sshinfo/sshinfo.go @@ -51,7 +51,7 @@ func runSSHInfo(f *cmdutil.Factory, opts *Options) error { } func runSSHInfoInteractive(f *cmdutil.Factory, opts *Options) error { - servers, err := f.ApiClient.ListServers(context.Background()) + servers, err := f.ApiClient.ListServers(context.Background(), f.CurrentOwnerID()) if err != nil { return fmt.Errorf("list servers failed: %w", err) } diff --git a/pkg/api/interface.go b/pkg/api/interface.go index 2d8c8d7..6c0c45a 100644 --- a/pkg/api/interface.go +++ b/pkg/api/interface.go @@ -60,7 +60,7 @@ type ( } ServerAPI interface { - ListServers(ctx context.Context) (model.ServerListItems, error) + ListServers(ctx context.Context, ownerID string) (model.ServerListItems, error) GetServer(ctx context.Context, id string) (*model.ServerDetail, error) RebootServer(ctx context.Context, id string) error RenameServer(ctx context.Context, id, name string) error diff --git a/pkg/api/server.go b/pkg/api/server.go index be8b85c..2c3a14e 100644 --- a/pkg/api/server.go +++ b/pkg/api/server.go @@ -7,16 +7,25 @@ import ( "github.com/zeabur/cli/pkg/model" ) -func (c *client) ListServers(ctx context.Context) (model.ServerListItems, error) { - var query struct { - Servers model.ServerListItems `graphql:"servers"` +func (c *client) ListServers(ctx context.Context, ownerID string) (model.ServerListItems, error) { + if ownerID == "" { + var query struct { + Servers model.ServerListItems `graphql:"servers"` + } + if err := c.Query(ctx, &query, nil); err != nil { + return nil, err + } + return query.Servers, nil } - err := c.Query(ctx, &query, nil) - if err != nil { + var query struct { + Servers model.ServerListItems `graphql:"servers(ownerID: $ownerID)"` + } + if err := c.Query(ctx, &query, V{ + "ownerID": ObjectID(ownerID), + }); err != nil { return nil, err } - return query.Servers, nil }