11package codefresh
22
33import (
4- "encoding/json "
4+ "context "
55 "fmt"
6- "io/ioutil"
76
87 "github.com/codefresh-io/go-sdk/pkg/codefresh/model"
98)
109
1110type (
1211 IArgoRuntimeAPI interface {
13- List () ([]model.Runtime , error )
14- Create (runtimeName , cluster , runtimeVersion string ) (* model.RuntimeCreationResponse , error )
12+ List (ctx context. Context ) ([]model.Runtime , error )
13+ Create (ctx context. Context , runtimeName , cluster , runtimeVersion string ) (* model.RuntimeCreationResponse , error )
1514 }
1615 argoRuntime struct {
1716 codefresh * codefresh
@@ -35,107 +34,75 @@ func newArgoRuntimeAPI(codefresh *codefresh) IArgoRuntimeAPI {
3534 return & argoRuntime {codefresh : codefresh }
3635}
3736
38- func (r * argoRuntime ) Create ( runtimeName , cluster , runtimeVersion string ) (* model.RuntimeCreationResponse , error ) {
37+ func (r * argoRuntime ) List ( ctx context. Context ) ([] model.Runtime , error ) {
3938 jsonData := map [string ]interface {}{
40- "query" : `mutation CreateRuntime($name: String!, $cluster: String!, $runtimeVersion: String!) {
41- runtime(name: $name, cluster: $cluster, runtimeVersion: $runtimeVersion) {
42- name
43- newAccessToken
44- }
45- }` ,
46- "variables" : map [string ]interface {}{
47- "name" : runtimeName ,
48- "cluster" : cluster ,
49- "runtimeVersion" : runtimeVersion ,
50- },
51- }
52-
53- response , err := r .codefresh .requestAPI (& requestOptions {
54- method : "POST" ,
55- path : qlEndPoint ,
56- body : jsonData ,
57- })
58-
59- if err != nil {
60- fmt .Printf ("The HTTP request failed with error %s\n " , err )
61- return nil , err
62- }
63-
64- defer response .Body .Close ()
65-
66- data , err := ioutil .ReadAll (response .Body )
67- if err != nil {
68- fmt .Printf ("failed to read from response body" )
69- return nil , err
39+ "query" : `{
40+ runtimes {
41+ edges {
42+ node {
43+ metadata {
44+ name
45+ namespace
46+ }
47+ self {
48+ healthStatus
49+ version
50+ }
51+ cluster
52+ }
53+ }
54+ }
55+ }` ,
7056 }
7157
72- res := graphQlRuntimeCreationResponse {}
73- err = json . Unmarshal ( data , & res )
58+ res := & graphqlRuntimesResponse {}
59+ err := r . codefresh . graphqlAPI ( ctx , jsonData , res )
7460 if err != nil {
75- return nil , err
61+ return nil , fmt . Errorf ( "failed getting runtime list: %w" , err )
7662 }
7763
7864 if len (res .Errors ) > 0 {
7965 return nil , graphqlErrorResponse {errors : res .Errors }
8066 }
8167
82- return & res .Data .Runtime , nil
68+ runtimes := make ([]model.Runtime , len (res .Data .Runtimes .Edges ))
69+ for i := range res .Data .Runtimes .Edges {
70+ runtimes [i ] = * res .Data .Runtimes .Edges [i ].Node
71+ }
72+
73+ return runtimes , nil
8374}
8475
85- func (r * argoRuntime ) List ( ) ([] model.Runtime , error ) {
76+ func (r * argoRuntime ) Create ( ctx context. Context , runtimeName , cluster , runtimeVersion string ) (* model.RuntimeCreationResponse , error ) {
8677 jsonData := map [string ]interface {}{
87- "query" : `{
88- runtimes {
89- edges {
90- node {
91- metadata {
92- name
93- namespace
94- }
95- self {
96- healthStatus
97- version
78+ "query" : `
79+ mutation CreateRuntime(
80+ $name: String!
81+ $cluster: String!
82+ $runtimeVersion: String!
83+ ) {
84+ runtime(name: $name, cluster: $cluster, runtimeVersion: $runtimeVersion) {
85+ name
86+ newAccessToken
9887 }
99- cluster
100- }
10188 }
102- }
103- }
104- ` ,
105- }
106-
107- response , err := r .codefresh .requestAPI (& requestOptions {
108- method : "POST" ,
109- path : qlEndPoint ,
110- body : jsonData ,
111- })
112- if err != nil {
113- fmt .Printf ("The HTTP request failed with error %s\n " , err )
114- return nil , err
115- }
116- defer response .Body .Close ()
117-
118- data , err := ioutil .ReadAll (response .Body )
119- if err != nil {
120- fmt .Printf ("failed to read from response body" )
121- return nil , err
89+ ` ,
90+ "variables" : map [string ]interface {}{
91+ "name" : runtimeName ,
92+ "cluster" : cluster ,
93+ "runtimeVersion" : runtimeVersion ,
94+ },
12295 }
12396
124- res := graphqlRuntimesResponse {}
125- err = json .Unmarshal (data , & res )
126-
97+ res := & graphQlRuntimeCreationResponse {}
98+ err := r .codefresh .graphqlAPI (ctx , jsonData , res )
12799 if err != nil {
128- return nil , err
100+ return nil , fmt . Errorf ( "failed getting runtime list: %w" , err )
129101 }
130102
131103 if len (res .Errors ) > 0 {
132104 return nil , graphqlErrorResponse {errors : res .Errors }
133105 }
134106
135- runtimes := make ([]model.Runtime , len (res .Data .Runtimes .Edges ))
136- for i := range res .Data .Runtimes .Edges {
137- runtimes [i ] = * res .Data .Runtimes .Edges [i ].Node
138- }
139-
140- return runtimes , nil
107+ return & res .Data .Runtime , nil
141108}
0 commit comments