Thanks to visit codestin.com
Credit goes to github.com

Skip to content
This repository was archived by the owner on Aug 30, 2024. It is now read-only.

Commit 9e6d25b

Browse files
committed
Export entclient to coder-sdk
1 parent ff28df3 commit 9e6d25b

File tree

20 files changed

+73
-69
lines changed

20 files changed

+73
-69
lines changed

ci/integration/users_test.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ import (
55
"testing"
66

77
"cdr.dev/coder-cli/ci/tcli"
8-
"cdr.dev/coder-cli/internal/entclient"
8+
"cdr.dev/coder-cli/coder-sdk"
99
"cdr.dev/slog/sloggers/slogtest/assert"
1010
)
1111

@@ -20,7 +20,7 @@ func TestUsers(t *testing.T) {
2020

2121
headlessLogin(ctx, t, c)
2222

23-
var user entclient.User
23+
var user coder.User
2424
c.Run(ctx, `coder users ls --output json | jq -c '.[] | select( .username == "charlie")'`).Assert(t,
2525
tcli.Success(),
2626
tcli.StdoutJSONUnmarshal(&user),

internal/entclient/activity.go renamed to coder-sdk/activity.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package entclient
1+
package coder
22

33
import (
44
"context"

internal/entclient/client.go renamed to coder-sdk/client.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package entclient
1+
package coder
22

33
import (
44
"net/http"

internal/entclient/devurl.go renamed to coder-sdk/devurl.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package entclient
1+
package coder
22

33
import (
44
"context"

internal/entclient/env.go renamed to coder-sdk/env.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package entclient
1+
package coder
22

33
import (
44
"context"

internal/entclient/error.go renamed to coder-sdk/error.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package entclient
1+
package coder
22

33
import (
44
"encoding/json"

internal/entclient/org.go renamed to coder-sdk/org.go

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,9 @@
1-
package entclient
1+
package coder
22

3-
import "context"
3+
import (
4+
"context"
5+
"net/http"
6+
)
47

58
// Org describes an Organization in Coder
69
type Org struct {
@@ -12,6 +15,6 @@ type Org struct {
1215
// Orgs gets all Organizations
1316
func (c Client) Orgs(ctx context.Context) ([]Org, error) {
1417
var os []Org
15-
err := c.requestBody(ctx, "GET", "/api/orgs", nil, &os)
18+
err := c.requestBody(ctx, http.MethodGet, "/api/orgs", nil, &os)
1619
return os, err
1720
}

internal/entclient/request.go renamed to coder-sdk/request.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package entclient
1+
package coder
22

33
import (
44
"bytes"

internal/entclient/secrets.go renamed to coder-sdk/secrets.go

Lines changed: 19 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package entclient
1+
package coder
22

33
import (
44
"context"
@@ -23,32 +23,34 @@ func (c *Client) Secrets(ctx context.Context, user *User) ([]Secret, error) {
2323
return secrets, err
2424
}
2525

26-
func (c *Client) secretByID(ctx context.Context, id string, user *User) (*Secret, error) {
26+
func (c *Client) SecretWithValueByName(ctx context.Context, name string, user *User) (*Secret, error) {
27+
s, err := c.SecretByName(ctx, name, user)
28+
if err != nil {
29+
return nil, err
30+
}
31+
var secret Secret
32+
err = c.requestBody(ctx, http.MethodGet, "/api/users/"+user.ID+"/secrets/"+s.ID, nil, &secret)
33+
return &secret, err
34+
}
35+
36+
func (c *Client) SecretWithValueByID(ctx context.Context, id string, user *User) (*Secret, error) {
2737
var secret Secret
2838
err := c.requestBody(ctx, http.MethodGet, "/api/users/"+user.ID+"/secrets/"+id, nil, &secret)
2939
return &secret, err
3040
}
3141

32-
func (c *Client) secretNameToID(ctx context.Context, name string, user *User) (id string, _ error) {
42+
// SecretByName gets a secret object by name
43+
func (c *Client) SecretByName(ctx context.Context, name string, user *User) (*Secret, error) {
3344
secrets, err := c.Secrets(ctx, user)
3445
if err != nil {
35-
return "", err
46+
return nil, err
3647
}
3748
for _, s := range secrets {
3849
if s.Name == name {
39-
return s.ID, nil
50+
return &s, nil
4051
}
4152
}
42-
return "", ErrNotFound
43-
}
44-
45-
// SecretByName gets a secret object by name
46-
func (c *Client) SecretByName(ctx context.Context, name string, user *User) (*Secret, error) {
47-
id, err := c.secretNameToID(ctx, name, user)
48-
if err != nil {
49-
return nil, err
50-
}
51-
return c.secretByID(ctx, id, user)
53+
return nil, ErrNotFound
5254
}
5355

5456
// InsertSecretReq describes the request body for creating a new secret
@@ -66,10 +68,10 @@ func (c *Client) InsertSecret(ctx context.Context, user *User, req InsertSecretR
6668

6769
// DeleteSecretByName deletes the authenticated users secret with the given name
6870
func (c *Client) DeleteSecretByName(ctx context.Context, name string, user *User) error {
69-
id, err := c.secretNameToID(ctx, name, user)
71+
secret, err := c.SecretByName(ctx, name, user)
7072
if err != nil {
7173
return err
7274
}
73-
_, err = c.request(ctx, http.MethodDelete, "/api/users/"+user.ID+"/secrets/"+id, nil)
75+
_, err = c.request(ctx, http.MethodDelete, "/api/users/"+user.ID+"/secrets/"+secret.ID, nil)
7476
return err
7577
}

internal/entclient/users.go renamed to coder-sdk/users.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package entclient
1+
package coder
22

33
import (
44
"context"

internal/activity/pusher.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ import (
44
"context"
55
"time"
66

7-
"cdr.dev/coder-cli/internal/entclient"
7+
"cdr.dev/coder-cli/coder-sdk"
88
"golang.org/x/time/rate"
99

1010
"go.coder.com/flog"
@@ -18,12 +18,12 @@ type Pusher struct {
1818
envID string
1919
source string
2020

21-
client *entclient.Client
21+
client *coder.Client
2222
rate *rate.Limiter
2323
}
2424

2525
// NewPusher instantiates a new instance of Pusher
26-
func NewPusher(c *entclient.Client, envID, source string) *Pusher {
26+
func NewPusher(c *coder.Client, envID, source string) *Pusher {
2727
return &Pusher{
2828
envID: envID,
2929
source: source,

internal/cmd/auth.go

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,23 +3,23 @@ package cmd
33
import (
44
"net/url"
55

6+
"cdr.dev/coder-cli/coder-sdk"
67
"cdr.dev/coder-cli/internal/config"
7-
"cdr.dev/coder-cli/internal/entclient"
88
"golang.org/x/xerrors"
99

1010
"go.coder.com/flog"
1111
)
1212

1313
// requireAuth exits the process with a nonzero exit code if the user is not authenticated to make requests
14-
func requireAuth() *entclient.Client {
14+
func requireAuth() *coder.Client {
1515
client, err := newClient()
1616
if err != nil {
1717
flog.Fatal("%v", err)
1818
}
1919
return client
2020
}
2121

22-
func newClient() (*entclient.Client, error) {
22+
func newClient() (*coder.Client, error) {
2323
sessionToken, err := config.Session.Read()
2424
if err != nil {
2525
return nil, xerrors.Errorf("read session: %v (did you run coder login?)", err)
@@ -35,7 +35,7 @@ func newClient() (*entclient.Client, error) {
3535
return nil, xerrors.Errorf("url misformatted: %v (try runing coder login)", err)
3636
}
3737

38-
client := &entclient.Client{
38+
client := &coder.Client{
3939
BaseURL: u,
4040
Token: sessionToken,
4141
}

internal/cmd/ceapi.go

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -3,18 +3,17 @@ package cmd
33
import (
44
"context"
55

6+
"cdr.dev/coder-cli/coder-sdk"
67
"golang.org/x/xerrors"
78

89
"go.coder.com/flog"
9-
10-
"cdr.dev/coder-cli/internal/entclient"
1110
)
1211

1312
// Helpers for working with the Coder Enterprise API.
1413

1514
// userOrgs gets a list of orgs the user is apart of.
16-
func userOrgs(user *entclient.User, orgs []entclient.Org) []entclient.Org {
17-
var uo []entclient.Org
15+
func userOrgs(user *coder.User, orgs []coder.Org) []coder.Org {
16+
var uo []coder.Org
1817
outer:
1918
for _, org := range orgs {
2019
for _, member := range org.Members {
@@ -29,7 +28,7 @@ outer:
2928
}
3029

3130
// getEnvs returns all environments for the user.
32-
func getEnvs(ctx context.Context, client *entclient.Client, email string) ([]entclient.Environment, error) {
31+
func getEnvs(ctx context.Context, client *coder.Client, email string) ([]coder.Environment, error) {
3332
user, err := client.UserByEmail(ctx, email)
3433
if err != nil {
3534
return nil, xerrors.Errorf("get user: %+v", err)
@@ -42,7 +41,7 @@ func getEnvs(ctx context.Context, client *entclient.Client, email string) ([]ent
4241

4342
orgs = userOrgs(user, orgs)
4443

45-
var allEnvs []entclient.Environment
44+
var allEnvs []coder.Environment
4645

4746
for _, org := range orgs {
4847
envs, err := client.EnvironmentsInOrganization(ctx, user, &org)
@@ -58,7 +57,7 @@ func getEnvs(ctx context.Context, client *entclient.Client, email string) ([]ent
5857
}
5958

6059
// findEnv returns a single environment by name (if it exists.)
61-
func findEnv(ctx context.Context, client *entclient.Client, envName, userEmail string) (*entclient.Environment, error) {
60+
func findEnv(ctx context.Context, client *coder.Client, envName, userEmail string) (*coder.Environment, error) {
6261
envs, err := getEnvs(ctx, client, userEmail)
6362
if err != nil {
6463
return nil, xerrors.Errorf("get environments: %w", err)

internal/cmd/configssh.go

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -12,8 +12,8 @@ import (
1212
"strings"
1313
"time"
1414

15+
"cdr.dev/coder-cli/coder-sdk"
1516
"cdr.dev/coder-cli/internal/config"
16-
"cdr.dev/coder-cli/internal/entclient"
1717
"github.com/spf13/cobra"
1818
"golang.org/x/xerrors"
1919
)
@@ -85,19 +85,19 @@ func configSSH(configpath *string, remove *bool) func(cmd *cobra.Command, _ []st
8585
return nil
8686
}
8787

88-
entClient := requireAuth()
88+
client := requireAuth()
8989

9090
sshAvailable := isSSHAvailable(ctx)
9191
if !sshAvailable {
9292
return xerrors.New("SSH is disabled or not available for your Coder Enterprise deployment.")
9393
}
9494

95-
user, err := entClient.Me(cmd.Context())
95+
user, err := client.Me(cmd.Context())
9696
if err != nil {
9797
return xerrors.Errorf("fetch username: %w", err)
9898
}
9999

100-
envs, err := getEnvs(cmd.Context(), entClient, entclient.Me)
100+
envs, err := getEnvs(cmd.Context(), client, coder.Me)
101101
if err != nil {
102102
return err
103103
}
@@ -122,7 +122,7 @@ func configSSH(configpath *string, remove *bool) func(cmd *cobra.Command, _ []st
122122
if err != nil {
123123
return xerrors.Errorf("write new configurations to ssh config file %q: %w", *configpath, err)
124124
}
125-
err = writeSSHKey(ctx, entClient)
125+
err = writeSSHKey(ctx, client)
126126
if err != nil {
127127
return xerrors.Errorf("fetch and write ssh key: %w", err)
128128
}
@@ -139,15 +139,15 @@ var (
139139
privateKeyFilepath = filepath.Join(os.Getenv("HOME"), ".ssh", "coder_enterprise")
140140
)
141141

142-
func writeSSHKey(ctx context.Context, client *entclient.Client) error {
142+
func writeSSHKey(ctx context.Context, client *coder.Client) error {
143143
key, err := client.SSHKey(ctx)
144144
if err != nil {
145145
return err
146146
}
147147
return ioutil.WriteFile(privateKeyFilepath, []byte(key.PrivateKey), 0400)
148148
}
149149

150-
func makeNewConfigs(userName string, envs []entclient.Environment, startToken, startMsg, endToken string) (string, error) {
150+
func makeNewConfigs(userName string, envs []coder.Environment, startToken, startMsg, endToken string) (string, error) {
151151
hostname, err := configuredHostname()
152152
if err != nil {
153153
return "", nil

internal/cmd/envs.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ import (
44
"encoding/json"
55
"os"
66

7-
"cdr.dev/coder-cli/internal/entclient"
7+
"cdr.dev/coder-cli/coder-sdk"
88
"cdr.dev/coder-cli/internal/x/xtabwriter"
99
"github.com/spf13/cobra"
1010
"golang.org/x/xerrors"
@@ -20,7 +20,7 @@ func makeEnvsCommand() *cobra.Command {
2020
Short: "Interact with Coder environments",
2121
Long: "Perform operations on the Coder environments owned by the active user.",
2222
}
23-
cmd.PersistentFlags().StringVar(&user, "user", entclient.Me, "Specify the user whose resources to target")
23+
cmd.PersistentFlags().StringVar(&user, "user", coder.Me, "Specify the user whose resources to target")
2424

2525
lsCmd := &cobra.Command{
2626
Use: "ls",

internal/cmd/secrets.go

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ import (
55
"io/ioutil"
66
"os"
77

8-
"cdr.dev/coder-cli/internal/entclient"
8+
"cdr.dev/coder-cli/coder-sdk"
99
"cdr.dev/coder-cli/internal/x/xtabwriter"
1010
"github.com/manifoldco/promptui"
1111
"github.com/spf13/cobra"
@@ -21,7 +21,7 @@ func makeSecretsCmd() *cobra.Command {
2121
Short: "Interact with Coder Secrets",
2222
Long: "Interact with secrets objects owned by the active user.",
2323
}
24-
cmd.PersistentFlags().StringVar(&user, "user", entclient.Me, "Specify the user whose resources to target")
24+
cmd.PersistentFlags().StringVar(&user, "user", coder.Me, "Specify the user whose resources to target")
2525
cmd.AddCommand(
2626
&cobra.Command{
2727
Use: "ls",
@@ -113,7 +113,7 @@ coder secrets create aws-credentials --from-file ./credentials.json`,
113113
if err != nil {
114114
return xerrors.Errorf("get user %q by email: %w", *userEmail, err)
115115
}
116-
err = client.InsertSecret(cmd.Context(), user, entclient.InsertSecretReq{
116+
err = client.InsertSecret(cmd.Context(), user, coder.InsertSecretReq{
117117
Name: name,
118118
Value: value,
119119
Description: description,
@@ -174,7 +174,7 @@ func makeViewSecret(userEmail *string) func(cmd *cobra.Command, args []string) e
174174
return xerrors.Errorf("get user %q by email: %w", *userEmail, err)
175175
}
176176

177-
secret, err := client.SecretByName(cmd.Context(), name, user)
177+
secret, err := client.SecretWithValueByName(cmd.Context(), name, user)
178178
if err != nil {
179179
return xerrors.Errorf("get secret by name: %w", err)
180180
}

internal/cmd/shell.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,8 @@ import (
77
"strings"
88
"time"
99

10+
"cdr.dev/coder-cli/coder-sdk"
1011
"cdr.dev/coder-cli/internal/activity"
11-
"cdr.dev/coder-cli/internal/entclient"
1212
"cdr.dev/coder-cli/internal/x/xterminal"
1313
"cdr.dev/wsep"
1414
"github.com/spf13/cobra"
@@ -45,7 +45,7 @@ func makeShellCmd() *cobra.Command {
4545
Long: "Execute a remote command on the environment\\nIf no command is specified, the default shell is opened.",
4646
Args: cobra.MinimumNArgs(1),
4747
DisableFlagParsing: true,
48-
ValidArgsFunction: getEnvsForCompletion(entclient.Me),
48+
ValidArgsFunction: getEnvsForCompletion(coder.Me),
4949
RunE: shell,
5050
Example: "coder sh backend-env",
5151
}
@@ -99,7 +99,7 @@ func runCommand(ctx context.Context, envName string, command string, args []stri
9999
var (
100100
entClient = requireAuth()
101101
)
102-
env, err := findEnv(ctx, entClient, envName, entclient.Me)
102+
env, err := findEnv(ctx, entClient, envName, coder.Me)
103103
if err != nil {
104104
return err
105105
}

0 commit comments

Comments
 (0)