Module: Legion::Extensions::Jira::Dashboards::Runners::Dashboards

Includes:
Helpers::Lex, Helpers::Client
Included in:
Client
Defined in:
lib/legion/extensions/jira/dashboards/runners/dashboards.rb

Instance Method Summary collapse

Methods included from Helpers::Client

#connection, #upload_connection

Instance Method Details

#copy_dashboard(dashboard_id:, name:, description: nil, share_permissions: nil) ⇒ Object



47
48
49
50
51
52
53
# File 'lib/legion/extensions/jira/dashboards/runners/dashboards.rb', line 47

def copy_dashboard(dashboard_id:, name:, description: nil, share_permissions: nil, **)
  body = { name: name }
  body[:description] = description if description
  body[:sharePermissions] = share_permissions if share_permissions
  resp = connection(**).post("/rest/api/3/dashboard/#{dashboard_id}/copy", body)
  { dashboard: resp.body }
end

#create_dashboard(name:, description: nil, share_permissions: nil) ⇒ Object



25
26
27
28
29
30
31
# File 'lib/legion/extensions/jira/dashboards/runners/dashboards.rb', line 25

def create_dashboard(name:, description: nil, share_permissions: nil, **)
  body = { name: name }
  body[:description] = description if description
  body[:sharePermissions] = share_permissions if share_permissions
  resp = connection(**).post('/rest/api/3/dashboard', body)
  { dashboard: resp.body }
end

#delete_dashboard(dashboard_id:) ⇒ Object



42
43
44
45
# File 'lib/legion/extensions/jira/dashboards/runners/dashboards.rb', line 42

def delete_dashboard(dashboard_id:, **)
  resp = connection(**).delete("/rest/api/3/dashboard/#{dashboard_id}")
  { deleted: resp.status == 204, dashboard_id: dashboard_id }
end

#get_dashboard(dashboard_id:) ⇒ Object



20
21
22
23
# File 'lib/legion/extensions/jira/dashboards/runners/dashboards.rb', line 20

def get_dashboard(dashboard_id:, **)
  resp = connection(**).get("/rest/api/3/dashboard/#{dashboard_id}")
  { dashboard: resp.body }
end

#list_dashboards(start_at: 0, max_results: 20, filter: nil) ⇒ Object



13
14
15
16
17
18
# File 'lib/legion/extensions/jira/dashboards/runners/dashboards.rb', line 13

def list_dashboards(start_at: 0, max_results: 20, filter: nil, **)
  params = { startAt: start_at, maxResults: max_results }
  params[:filter] = filter if filter
  resp = connection(**).get('/rest/api/3/dashboard', params)
  { dashboards: resp.body }
end

#update_dashboard(dashboard_id:, name: nil, description: nil, share_permissions: nil) ⇒ Object



33
34
35
36
37
38
39
40
# File 'lib/legion/extensions/jira/dashboards/runners/dashboards.rb', line 33

def update_dashboard(dashboard_id:, name: nil, description: nil, share_permissions: nil, **)
  body = {}
  body[:name] = name if name
  body[:description] = description if description
  body[:sharePermissions] = share_permissions if share_permissions
  resp = connection(**).put("/rest/api/3/dashboard/#{dashboard_id}", body)
  { dashboard: resp.body }
end