Skip to content

Commit

Permalink
.
Browse files Browse the repository at this point in the history
  • Loading branch information
andriisoldatenko committed May 13, 2019
1 parent 9339613 commit f1f2c65
Show file tree
Hide file tree
Showing 3 changed files with 28 additions and 44 deletions.
19 changes: 6 additions & 13 deletions houston/queries.go
Expand Up @@ -286,19 +286,12 @@ var (
}`

WorkspaceUserUpdateRequest = `
mutation WorkspaceUpdateUserRole($workspaceId: Uuid!, $email: String!, $role: Role!) {
workspaceUpdateUserRole(workspaceUuid: $workspaceId, email: $email, role: $role) {
id
label
description
active
users {
id
username
}
createdAt
updatedAt
}
mutation workspaceUpdateUserRole($workspaceUuid: Uuid!, $email: String!, $role: Role!) {
workspaceUpdateUserRole(
workspaceUuid: $workspaceUuid
email: $email
role: $role
)
}`

WorkspaceUserRemoveRequest = `
Expand Down
37 changes: 19 additions & 18 deletions houston/types.go
Expand Up @@ -3,24 +3,25 @@ package houston
// Response wraps all houston response structs used for json marashalling
type Response struct {
Data struct {
AddWorkspaceUser *Workspace `json:"workspaceAddUser,omitempty"`
RemoveWorkspaceUser *Workspace `json:"workspaceRemoveUser,omitempty"`
CreateDeployment *Deployment `json:"createDeployment,omitempty"`
CreateToken *AuthUser `json:"createToken,omitempty"`
CreateServiceAccount *ServiceAccount `json:"createServiceAccount,omitempty"`
CreateUser *AuthUser `json:"createUser,omitempty"`
CreateWorkspace *Workspace `json:"createWorkspace,omitempty"`
DeleteDeployment *Deployment `json:"deleteDeployment,omitempty"`
DeleteServiceAccount *ServiceAccount `json:"deleteServiceAccount,omitempty"`
DeleteWorkspace *Workspace `json:"deleteWorkspace,omitempty"`
GetDeployments []Deployment `json:"deployments,omitempty"`
GetAuthConfig *AuthConfig `json:"authConfig,omitempty"`
GetServiceAccounts []ServiceAccount `json:"serviceAccounts,omitempty"`
GetUsers []User `json:"users,omitempty"`
GetWorkspaces []Workspace `json:"workspaces,omitempty"`
UpdateDeployment *Deployment `json:"updateDeployment,omitempty"`
UpdateWorkspace *Workspace `json:"updateWorkspace,omitempty"`
DeploymentLog []DeploymentLog `json:"logs,omitempty"`
AddWorkspaceUser *Workspace `json:"workspaceAddUser,omitempty"`
RemoveWorkspaceUser *Workspace `json:"workspaceRemoveUser,omitempty"`
CreateDeployment *Deployment `json:"createDeployment,omitempty"`
CreateToken *AuthUser `json:"createToken,omitempty"`
CreateServiceAccount *ServiceAccount `json:"createServiceAccount,omitempty"`
CreateUser *AuthUser `json:"createUser,omitempty"`
CreateWorkspace *Workspace `json:"createWorkspace,omitempty"`
DeleteDeployment *Deployment `json:"deleteDeployment,omitempty"`
DeleteServiceAccount *ServiceAccount `json:"deleteServiceAccount,omitempty"`
DeleteWorkspace *Workspace `json:"deleteWorkspace,omitempty"`
GetDeployments []Deployment `json:"deployments,omitempty"`
GetAuthConfig *AuthConfig `json:"authConfig,omitempty"`
GetServiceAccounts []ServiceAccount `json:"serviceAccounts,omitempty"`
GetUsers []User `json:"users,omitempty"`
GetWorkspaces []Workspace `json:"workspaces,omitempty"`
UpdateDeployment *Deployment `json:"updateDeployment,omitempty"`
UpdateWorkspace *Workspace `json:"updateWorkspace,omitempty"`
DeploymentLog []DeploymentLog `json:"logs,omitempty"`
WorkspaceUpdateUserRole string `json:"workspaceUpdateUserRole,omitempty"`
} `json:"data"`
Errors []Error `json:"errors,omitempty"`
}
Expand Down
16 changes: 3 additions & 13 deletions workspace/user.go
Expand Up @@ -89,25 +89,15 @@ func ListRoles(workspaceId string) error {
func UpdateRole(workspaceId, email, role string) error {
req := houston.Request{
Query: houston.WorkspaceUserUpdateRequest,
Variables: map[string]interface{}{"workspaceId": workspaceId, "email": email, "role": role},
Variables: map[string]interface{}{"workspaceUuid": workspaceId, "email": email, "role": role},
}
r, err := req.Do()

if err != nil {
return err
}
workspace := r.Data.GetWorkspaces[0]
newRole := r.Data.WorkspaceUpdateUserRole

tab := printutil.Table{
Padding: []int{44, 50},
DynamicPadding: true,
Header: []string{"USERNAME", "ID", "ROLE"},
}
for _, role := range workspace.RoleBindings {
var color bool
tab.AddRow([]string{role.User.Username, role.User.Id, role.Role}, color)
}

tab.Print()
fmt.Printf("Role has been changed from %s to %s for user %s", role, newRole, email)
return nil
}

0 comments on commit f1f2c65

Please sign in to comment.