Class: TrackerApi::Endpoints::Attachment

Inherits:
Object
  • Object
show all
Defined in:
lib/tracker_api/endpoints/attachment.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(client) ⇒ Attachment

Returns a new instance of Attachment.



6
7
8
# File 'lib/tracker_api/endpoints/attachment.rb', line 6

def initialize(client)
  @client = client
end

Instance Attribute Details

#clientObject

Returns the value of attribute client.



4
5
6
# File 'lib/tracker_api/endpoints/attachment.rb', line 4

def client
  @client
end

Instance Method Details

#create(comment, file) ⇒ Object



10
11
12
13
# File 'lib/tracker_api/endpoints/attachment.rb', line 10

def create(comment, file)
  data = client.post("/projects/#{comment.project_id}/uploads", body: FileUtility.get_file_upload(file)).body
  Resources::FileAttachment.new({ comment: comment }.merge(data))
end

#get(comment) ⇒ Object

TODO : Discuss before implementing this as it orphans the file. It deletes source, but the file name appears in the comments def delete(comment, file_attachment_id)

client.delete("/projects/#{comment.project_id}/stories/#{comment.story_id}/comments/#{comment.id}/file_attachments/#{file_attachment_id}").body

end



21
22
23
24
25
26
27
28
# File 'lib/tracker_api/endpoints/attachment.rb', line 21

def get(comment)
  data = client.get("/projects/#{comment.project_id}/stories/#{comment.story_id}/comments/#{comment.id}?fields=file_attachments").body["file_attachments"]
  raise Errors::UnexpectedData, 'Array of file attachments expected' unless data.is_a? Array

  data.map do |file_attachment|
    Resources::FileAttachment.new({ comment: comment }.merge(file_attachment))
  end
end