diff --git a/app/views/projects/show.api.rsb b/app/views/projects/show.api.rsb index e84ebb0..13f6d7f 100644 --- a/app/views/projects/show.api.rsb +++ b/app/views/projects/show.api.rsb @@ -12,6 +12,33 @@ api.project do api.created_on @project.created_on api.updated_on @project.updated_on + sort_init 'filename', 'asc' + sort_update 'filename' => "#{Attachment.table_name}.filename", + 'created_on' => "#{Attachment.table_name}.created_on", + 'size' => "#{Attachment.table_name}.filesize", + 'downloads' => "#{Attachment.table_name}.downloads" + + containers = [ Project.includes(:attachments).reorder(sort_clause).find(@project.id)] + containers += @project.versions.includes(:attachments).reorder(sort_clause).all.sort.reverse + + api.array :versions do + containers.each do |container| + next if container.attachments.empty? + if container.is_a?(Version) + attrs = {:id => container.name} + end + + api.version attrs do + api.array :files do + container.attachments.each do |file| + api.files(:id => file.id, :filename => file.filename, :created_on => file.created_on, + :filesize => file.filesize, :digest => file.digest) + end + end + end if not attrs.nil? + end + end if include_in_api_response?('attachments') + api.array :trackers do @project.trackers.each do |tracker| api.tracker(:id => tracker.id, :name => tracker.name)