#-- copyright # OpenProject is a project management system. # # Copyright (C) 2012-2013 the OpenProject Team # # This program is free software; you can redistribute it and/or # modify it under the terms of the GNU General Public License version 3. # # See doc/COPYRIGHT.rdoc for more details. #++ api.issue do api.id @issue.id api.project(:id => @issue.project_id, :name => @issue.project.name) unless @issue.project.nil? api.type(:id => @issue.type_id, :name => @issue.type.name) unless @issue.type.nil? api.status(:id => @issue.status_id, :name => @issue.status.name) unless @issue.status.nil? api.priority(:id => @issue.priority_id, :name => @issue.priority.name) unless @issue.priority.nil? api.author(:id => @issue.author_id, :name => @issue.author.name) unless @issue.author.nil? api.assigned_to(:id => @issue.assigned_to_id, :name => @issue.assigned_to.name) unless @issue.assigned_to.nil? api.category(:id => @issue.category_id, :name => @issue.category.name) unless @issue.category.nil? api.fixed_version(:id => @issue.fixed_version_id, :name => @issue.fixed_version.name) unless @issue.fixed_version.nil? api.parent(:id => @issue.parent_id) unless @issue.parent.nil? api.subject @issue.subject api.description @issue.description api.start_date @issue.start_date api.due_date @issue.due_date api.done_ratio @issue.done_ratio api.estimated_hours @issue.estimated_hours api.spent_hours(@issue.spent_hours) if User.current.allowed_to?(:view_time_entries, @project) render_api_custom_values @issue.custom_field_values, api api.created_on @issue.created_at api.updated_on @issue.updated_at render_api_issue_children(@issue, api) if include_in_api_response?('children') api.array :relations do @relations.each do |relation| api.relation(:id => relation.id, :issue_id => relation.other_issue(@issue).id, :relation_type => relation.relation_type_for(@issue), :delay => relation.delay) end end if include_in_api_response?('relations') && @relations.present? api.array :changesets do @issue.changesets.each do |changeset| api.changeset :revision => changeset.revision do api.user(:id => changeset.user_id, :name => changeset.user.name) unless changeset.user.nil? api.comments changeset.comments api.committed_on changeset.committed_on end end end if include_in_api_response?('changesets') && User.current.allowed_to?(:view_changesets, @project) api.array :journals do @issue.journals.each do |journal| api.journal :id => journal.id do api.user(:id => journal.user_id, :name => journal.user.name) unless journal.user.nil? api.notes journal.notes api.created_on journal.created_on api.array :details do journal.details.each do |name, values| api.detail :name => name do api.old_value values.first api.new_value values.last end end end end end end if include_in_api_response?('journals') end