Skip to content

Commit

Permalink
Update api directory str
Browse files Browse the repository at this point in the history
Signed-off-by: nagesh bansal <[email protected]>
  • Loading branch information
Nageshbansal committed Aug 1, 2023
1 parent c5c9456 commit 62c3445
Show file tree
Hide file tree
Showing 32 changed files with 709 additions and 687 deletions.
75 changes: 0 additions & 75 deletions pkg/apis/environment.go

This file was deleted.

93 changes: 93 additions & 0 deletions pkg/apis/environment/environment.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,93 @@
package environment

import (
"encoding/json"
"errors"
models "github.com/litmuschaos/litmus/chaoscenter/graphql/server/graph/model"
"github.com/litmuschaos/litmusctl/pkg/apis"
"github.com/litmuschaos/litmusctl/pkg/types"
"github.com/litmuschaos/litmusctl/pkg/utils"
"io/ioutil"
"net/http"
)

// ConnectEnvironment connects the Infra with the given details
func ConnectEnvironment(pid string, request models.CreateEnvironmentRequest, cred types.Credentials) (CreateEnvironmentResponse, error) {
var gqlReq CreateEnvironmentGQLRequest
gqlReq.Query = CreateEnvironmentQuery
gqlReq.Variables.ProjectId = pid
gqlReq.Variables.Request = request

query, err := json.Marshal(gqlReq)
resp, err := apis.SendRequest(apis.SendRequestParams{Endpoint: cred.Endpoint + utils.GQLAPIPath, Token: cred.Token}, query, string(types.Post))
if err != nil {
return CreateEnvironmentResponse{}, errors.New("Error in registering Chaos Infrastructure: " + err.Error())
}

bodyBytes, err := ioutil.ReadAll(resp.Body)
defer resp.Body.Close()
if err != nil {
return CreateEnvironmentResponse{}, errors.New("Error in registering Chaos Infrastructure: " + err.Error())
}

if resp.StatusCode == http.StatusOK {
var connectEnvironment CreateEnvironmentResponse
err = json.Unmarshal(bodyBytes, &connectEnvironment)
if err != nil {
return CreateEnvironmentResponse{}, errors.New("Error in registering Chaos Infrastructure: " + err.Error())
}

if len(connectEnvironment.Errors) > 0 {
return CreateEnvironmentResponse{}, errors.New(connectEnvironment.Errors[0].Message)
}
return connectEnvironment, nil
} else {
return CreateEnvironmentResponse{}, err
}
}

func GetEnvironmentList(pid string, cred types.Credentials) (ListEnvironmentData, error) {
var err error
var gqlReq CreateEnvironmentListGQLRequest
gqlReq.Query = ListEnvironmentQuery

gqlReq.Variables.Request = models.ListEnvironmentRequest{}
gqlReq.Variables.ProjectID = pid
query, err := json.Marshal(gqlReq)
if err != nil {
return ListEnvironmentData{}, err
}

resp, err := apis.SendRequest(
apis.SendRequestParams{
Endpoint: cred.Endpoint + utils.GQLAPIPath,
Token: cred.Token,
},
query,
string(types.Post),
)

if err != nil {
return ListEnvironmentData{}, errors.New("Error in Getting Chaos Environment List: " + err.Error())
}

bodyBytes, err := ioutil.ReadAll(resp.Body)
defer resp.Body.Close()
if err != nil {
return ListEnvironmentData{}, errors.New("Error in Getting Chaos Environment List: " + err.Error())
}

if resp.StatusCode == http.StatusOK {
var listEnvironment ListEnvironmentData
err = json.Unmarshal(bodyBytes, &listEnvironment)
if err != nil {
return ListEnvironmentData{}, errors.New("Error in Getting Chaos Environment List: " + err.Error())
}
if len(listEnvironment.Errors) > 0 {
return ListEnvironmentData{}, errors.New(listEnvironment.Errors[0].Message)
}
return listEnvironment, nil
} else {
return ListEnvironmentData{}, err
}
}
21 changes: 21 additions & 0 deletions pkg/apis/environment/query.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
package environment

const (
CreateEnvironmentQuery = `mutation createEnvironment($projectID: ID!, $request: CreateEnvironmentRequest!) {
createEnvironment(
projectID: $projectID
request: $request
) {
environmentID
name
}
}
`
ListEnvironmentQuery = `query listEnvironments($projectID: ID!, $request: ListEnvironmentRequest) {
listEnvironments(projectID: $projectID,request: $request){
environments {
environmentID
}
}
}`
)
43 changes: 43 additions & 0 deletions pkg/apis/environment/types.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
package environment

import models "github.com/litmuschaos/litmus/chaoscenter/graphql/server/graph/model"

type CreateEnvironmentGQLRequest struct {
Query string `json:"query"`
Variables struct {
ProjectId string `json:"projectID"`
Request models.CreateEnvironmentRequest `json:"request"`
} `json:"variables"`
}

type CreateEnvironmentResponse struct {
Data CreateEnvironmentData `json:"data"`
Errors []struct {
Message string `json:"message"`
Path []string `json:"path"`
} `json:"errors"`
}

type CreateEnvironmentData struct {
EnvironmentDetails models.Environment `json:"createEnvironment"`
}

type ListEnvironmentData struct {
Errors []struct {
Message string `json:"message"`
Path []string `json:"path"`
} `json:"errors"`
Data EnvironmentsList `json:"data"`
}

type EnvironmentsList struct {
ListEnvironmentDetails models.ListEnvironmentResponse `json:"listEnvironments"`
}

type CreateEnvironmentListGQLRequest struct {
Query string `json:"query"`
Variables struct {
ProjectID string `json:"projectID"`
Request models.ListEnvironmentRequest `json:"request"`
}
}
Loading

0 comments on commit 62c3445

Please sign in to comment.