1
- package entclient
1
+ package coder
2
2
3
3
import (
4
4
"context"
@@ -17,38 +17,42 @@ type Secret struct {
17
17
}
18
18
19
19
// Secrets gets all secrets for the given user
20
- func (c * Client ) Secrets (ctx context.Context , user * User ) ([]Secret , error ) {
20
+ func (c * Client ) Secrets (ctx context.Context , userID string ) ([]Secret , error ) {
21
21
var secrets []Secret
22
- err := c .requestBody (ctx , http .MethodGet , "/api/users/" + user . ID + "/secrets" , nil , & secrets )
22
+ err := c .requestBody (ctx , http .MethodGet , "/api/users/" + userID + "/secrets" , nil , & secrets )
23
23
return secrets , err
24
24
}
25
25
26
- func (c * Client ) secretByID (ctx context.Context , id string , user * User ) (* Secret , error ) {
26
+ // SecretWithValueByName gets the Coder secret with its value by its name.
27
+ func (c * Client ) SecretWithValueByName (ctx context.Context , name , userID string ) (* Secret , error ) {
28
+ s , err := c .SecretByName (ctx , name , userID )
29
+ if err != nil {
30
+ return nil , err
31
+ }
27
32
var secret Secret
28
- err : = c .requestBody (ctx , http .MethodGet , "/api/users/" + user . ID + "/secrets/" + id , nil , & secret )
33
+ err = c .requestBody (ctx , http .MethodGet , "/api/users/" + userID + "/secrets/" + s . ID , nil , & secret )
29
34
return & secret , err
30
35
}
31
36
32
- func (c * Client ) secretNameToID (ctx context.Context , name string , user * User ) (id string , _ error ) {
33
- secrets , err := c .Secrets (ctx , user )
34
- if err != nil {
35
- return "" , err
36
- }
37
- for _ , s := range secrets {
38
- if s .Name == name {
39
- return s .ID , nil
40
- }
41
- }
42
- return "" , ErrNotFound
37
+ // SecretWithValueByID gets the Coder secret with its value by the secret_id.
38
+ func (c * Client ) SecretWithValueByID (ctx context.Context , id , userID string ) (* Secret , error ) {
39
+ var secret Secret
40
+ err := c .requestBody (ctx , http .MethodGet , "/api/users/" + userID + "/secrets/" + id , nil , & secret )
41
+ return & secret , err
43
42
}
44
43
45
44
// 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 )
45
+ func (c * Client ) SecretByName (ctx context.Context , name , userID string ) (* Secret , error ) {
46
+ secrets , err := c .Secrets (ctx , userID )
48
47
if err != nil {
49
48
return nil , err
50
49
}
51
- return c .secretByID (ctx , id , user )
50
+ for _ , s := range secrets {
51
+ if s .Name == name {
52
+ return & s , nil
53
+ }
54
+ }
55
+ return nil , ErrNotFound
52
56
}
53
57
54
58
// InsertSecretReq describes the request body for creating a new secret
@@ -65,11 +69,11 @@ func (c *Client) InsertSecret(ctx context.Context, user *User, req InsertSecretR
65
69
}
66
70
67
71
// DeleteSecretByName deletes the authenticated users secret with the given name
68
- func (c * Client ) DeleteSecretByName (ctx context.Context , name string , user * User ) error {
69
- id , err := c .secretNameToID (ctx , name , user )
72
+ func (c * Client ) DeleteSecretByName (ctx context.Context , name , userID string ) error {
73
+ secret , err := c .SecretByName (ctx , name , userID )
70
74
if err != nil {
71
75
return err
72
76
}
73
- _ , err = c .request (ctx , http .MethodDelete , "/api/users/" + user . ID + "/secrets/" + id , nil )
77
+ _ , err = c .request (ctx , http .MethodDelete , "/api/users/" + userID + "/secrets/" + secret . ID , nil )
74
78
return err
75
79
}
0 commit comments