Module: Legion::Extensions::Jira::Issues::Runners::Attachments

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

Instance Method Summary collapse

Methods included from Helpers::Client

#connection, #upload_connection

Instance Method Details

#add_attachment(issue_key:, file:, filename: 'file', content_type: 'application/octet-stream') ⇒ Object



23
24
25
26
27
# File 'lib/legion/extensions/jira/issues/runners/attachments.rb', line 23

def add_attachment(issue_key:, file:, filename: 'file', content_type: 'application/octet-stream', **)
  payload = { file: Faraday::Multipart::FilePart.new(file, content_type, filename) }
  resp = upload_connection(**).post("/rest/api/3/issue/#{issue_key}/attachments", payload)
  { attachments: resp.body }
end

#delete_attachment(attachment_id:) ⇒ Object



29
30
31
32
# File 'lib/legion/extensions/jira/issues/runners/attachments.rb', line 29

def delete_attachment(attachment_id:, **)
  resp = connection(**).delete("/rest/api/3/attachment/#{attachment_id}")
  { deleted: resp.status == 204, attachment_id: attachment_id }
end

#get_attachment(attachment_id:) ⇒ Object



18
19
20
21
# File 'lib/legion/extensions/jira/issues/runners/attachments.rb', line 18

def get_attachment(attachment_id:, **)
  resp = connection(**).get("/rest/api/3/attachment/#{attachment_id}")
  { attachment: resp.body }
end

#get_attachment_metaObject



34
35
36
37
# File 'lib/legion/extensions/jira/issues/runners/attachments.rb', line 34

def get_attachment_meta(**)
  resp = connection(**).get('/rest/api/3/attachment/meta')
  { meta: resp.body }
end

#get_attachments(issue_key:) ⇒ Object



13
14
15
16
# File 'lib/legion/extensions/jira/issues/runners/attachments.rb', line 13

def get_attachments(issue_key:, **)
  resp = connection(**).get("/rest/api/3/issue/#{issue_key}", { fields: 'attachment' })
  { attachments: resp.body.dig('fields', 'attachment') || [] }
end