Class: MetabaseCli::CLI

Inherits:
Thor
  • Object
show all
Defined in:
lib/metabase_cli/cli.rb

Instance Method Summary collapse

Instance Method Details

#createObject



72
73
74
75
# File 'lib/metabase_cli/cli.rb', line 72

def create
  create_database
  create_grouped_user
end

#create_databaseObject



18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
# File 'lib/metabase_cli/cli.rb', line 18

def create_database
  client_name = ask("Client name: ")
  dbname = ask("Database name: ")
  engine = ask("Database engine: ", default: "postgres")
  host = ask("Database host: ", default: "localhost")
  port = ask("Database port: ", default: "5432")
  dbusername = ask("Database username: ", default: ENV.fetch("DB_USERNAME", nil))
  password = ask("Database password: ", default: ENV.fetch("DB_PASSWORD", nil))

  MetabaseCli::DatabaseService.new(
    client_name: client_name,
    dbname: dbname,
    engine: engine,
    host: host,
    port: port,
    dbusername: dbusername,
    password: password
  ).create_database.set_default_permissions
end

#create_groupObject



56
57
58
59
60
61
62
# File 'lib/metabase_cli/cli.rb', line 56

def create_group
  name = ask("Group name: ")

  MetabaseCli::GroupService.new(
    name: name
  ).create_group
end

#create_grouped_userObject



66
67
68
69
# File 'lib/metabase_cli/cli.rb', line 66

def create_grouped_user
  group_id = create_group
  create_user(group_id)
end

#create_user(group_id = nil) ⇒ Object



40
41
42
43
44
45
46
47
48
49
50
51
52
# File 'lib/metabase_cli/cli.rb', line 40

def create_user(group_id = nil)
  first_name = ask("First name: ")
  last_name = ask("Last name: ")
  email = ask("Email: ")
  group_wanted = ask("Group wanted: ", default: (group_id || "1"))

  MetabaseCli::UserService.new(
    first_name: first_name,
    last_name: last_name,
    email: email,
    group_wanted: group_wanted
  ).create_user
end

#versionObject



12
13
14
# File 'lib/metabase_cli/cli.rb', line 12

def version
  puts "MetabaseApi version #{MetabaseCli::VERSION}"
end