@@ -2,10 +2,12 @@ package cli
22
33import (
44 "context"
5+ "encoding/json"
56 "fmt"
67)
78
89const orgUrl = "/v1/organization"
10+ const orgSecretsUrl = "/v1/organization/secrets"
911
1012func (c * PortClient ) ReadOrganization (ctx context.Context ) (* Organization , int , error ) {
1113 pb := & PortBody {}
@@ -24,3 +26,88 @@ func (c *PortClient) ReadOrganization(ctx context.Context) (*Organization, int,
2426 }
2527 return pb .Organization , resp .StatusCode (), nil
2628}
29+
30+ func (c * PortClient ) CreateOrganizationSecret (ctx context.Context , secret * OrganizationSecret ) (* OrganizationSecret , error ) {
31+ resp , err := c .Client .R ().
32+ SetBody (secret ).
33+ SetContext (ctx ).
34+ Post (orgSecretsUrl )
35+
36+ if err != nil {
37+ return nil , err
38+ }
39+ var pb OrganizationSecretBody
40+ err = json .Unmarshal (resp .Body (), & pb )
41+ if err != nil {
42+ return nil , err
43+ }
44+ if ! pb .OK {
45+ return nil , fmt .Errorf ("failed to create organization secret, got: %s" , resp .Body ())
46+ }
47+
48+ return & pb .Secret , nil
49+ }
50+
51+ func (c * PortClient ) ReadOrganizationSecret (ctx context.Context , secretName string ) (* OrganizationSecret , int , error ) {
52+ var pb OrganizationSecretBody
53+ resp , err := c .Client .R ().
54+ SetContext (ctx ).
55+ SetHeader ("Accept" , "application/json" ).
56+ SetPathParam ("secretName" , secretName ).
57+ SetResult (& pb ).
58+ Get (orgSecretsUrl + "/{secretName}" )
59+ if err != nil {
60+ return nil , 0 , err
61+ } else if resp .IsError () {
62+ return nil , resp .StatusCode (), fmt .Errorf ("failed to read organization secret, got: %s" , resp .Body ())
63+ }
64+ if ! pb .OK {
65+ return nil , resp .StatusCode (), fmt .Errorf ("failed to read organization secret, got: %s" , resp .Body ())
66+ }
67+
68+ return & pb .Secret , resp .StatusCode (), nil
69+ }
70+
71+ func (c * PortClient ) UpdateOrganizationSecret (ctx context.Context , secretName string , secret * OrganizationSecret ) (* OrganizationSecret , error ) {
72+ resp , err := c .Client .R ().
73+ SetBody (secret ).
74+ SetContext (ctx ).
75+ SetPathParam ("secretName" , secretName ).
76+ Patch (orgSecretsUrl + "/{secretName}" )
77+
78+ if err != nil {
79+ return nil , err
80+ }
81+ var pb OrganizationSecretBody
82+ err = json .Unmarshal (resp .Body (), & pb )
83+ if err != nil {
84+ return nil , err
85+ }
86+ if ! pb .OK {
87+ return nil , fmt .Errorf ("failed to update organization secret, got: %s" , resp .Body ())
88+ }
89+
90+ return & pb .Secret , nil
91+ }
92+
93+ func (c * PortClient ) DeleteOrganizationSecret (ctx context.Context , secretName string ) error {
94+ resp , err := c .Client .R ().
95+ SetContext (ctx ).
96+ SetHeader ("Accept" , "application/json" ).
97+ SetPathParam ("secretName" , secretName ).
98+ Delete (orgSecretsUrl + "/{secretName}" )
99+
100+ if err != nil {
101+ return err
102+ }
103+ var pb PortBodyDelete
104+ err = json .Unmarshal (resp .Body (), & pb )
105+ if err != nil {
106+ return err
107+ }
108+
109+ if ! pb .Ok {
110+ return fmt .Errorf ("failed to delete organization secret, got: %s" , string (resp .Body ()))
111+ }
112+ return nil
113+ }
0 commit comments