Class: Neetob::CLI::WorkspacePermissions::AddMemberToAllWorkspaces

Inherits:
Base
  • Object
show all
Includes:
PermissionHelpers
Defined in:
lib/neetob/cli/workspace_permissions/add_member_to_all_workspaces.rb

Constant Summary

Constants inherited from Base

Base::NEETO_APPS_LIST_LINK

Instance Attribute Summary

Attributes inherited from Base

#ui

Instance Method Summary collapse

Methods included from PermissionHelpers

#build_url, #parse_api_keys, #post_member_to

Methods included from Utils

#camel_case_to_slug, #is_upper?, #symbolize_keys

Constructor Details

#initialize(app:, email:, role:) ⇒ AddMemberToAllWorkspaces

Returns a new instance of AddMemberToAllWorkspaces.



13
14
15
16
17
18
# File 'lib/neetob/cli/workspace_permissions/add_member_to_all_workspaces.rb', line 13

def initialize(app:, email:, role:)
  super()
  @app = app.downcase
  @email = email
  @role = role
end

Instance Method Details

#runObject



20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
# File 'lib/neetob/cli/workspace_permissions/add_member_to_all_workspaces.rb', line 20

def run
  api_keys = parse_api_keys(group_by: :app)
  unless api_keys[@app]
    ui.error("No API keys found for app: #{@app}")
    return
  end

  ui.info("Adding #{@email} to all workspaces of #{@app} with role #{@role}")
  api_keys[@app].each do |workspace, api_key|
    url = build_url(workspace, @app)
    post_member_to(
      url:,
      api_key:,
      email: @email,
      role: @role,
      workspace:,
      app: @app
    )
  end
end