Chris@1464: api.issue do Chris@1464: api.id @issue.id Chris@1464: api.project(:id => @issue.project_id, :name => @issue.project.name) unless @issue.project.nil? Chris@1464: api.tracker(:id => @issue.tracker_id, :name => @issue.tracker.name) unless @issue.tracker.nil? Chris@1464: api.status(:id => @issue.status_id, :name => @issue.status.name) unless @issue.status.nil? Chris@1464: api.priority(:id => @issue.priority_id, :name => @issue.priority.name) unless @issue.priority.nil? Chris@1464: api.author(:id => @issue.author_id, :name => @issue.author.name) unless @issue.author.nil? Chris@1464: api.assigned_to(:id => @issue.assigned_to_id, :name => @issue.assigned_to.name) unless @issue.assigned_to.nil? Chris@1464: api.category(:id => @issue.category_id, :name => @issue.category.name) unless @issue.category.nil? Chris@1464: api.fixed_version(:id => @issue.fixed_version_id, :name => @issue.fixed_version.name) unless @issue.fixed_version.nil? Chris@1464: api.parent(:id => @issue.parent_id) unless @issue.parent.nil? Chris@1464: Chris@1464: api.subject @issue.subject Chris@1464: api.description @issue.description Chris@1464: api.start_date @issue.start_date Chris@1464: api.due_date @issue.due_date Chris@1464: api.done_ratio @issue.done_ratio Chris@1464: api.estimated_hours @issue.estimated_hours Chris@1464: api.spent_hours(@issue.spent_hours) if User.current.allowed_to?(:view_time_entries, @project) Chris@1464: Chris@1464: render_api_custom_values @issue.visible_custom_field_values, api Chris@1464: Chris@1464: api.created_on @issue.created_on Chris@1464: api.updated_on @issue.updated_on Chris@1464: api.closed_on @issue.closed_on Chris@1464: Chris@1464: render_api_issue_children(@issue, api) if include_in_api_response?('children') Chris@1464: Chris@1464: api.array :attachments do Chris@1464: @issue.attachments.each do |attachment| Chris@1464: render_api_attachment(attachment, api) Chris@1464: end Chris@1464: end if include_in_api_response?('attachments') Chris@1464: Chris@1464: api.array :relations do Chris@1464: @relations.each do |relation| Chris@1464: api.relation(:id => relation.id, :issue_id => relation.issue_from_id, :issue_to_id => relation.issue_to_id, :relation_type => relation.relation_type, :delay => relation.delay) Chris@1464: end Chris@1464: end if include_in_api_response?('relations') && @relations.present? Chris@1464: Chris@1464: api.array :changesets do Chris@1464: @issue.changesets.each do |changeset| Chris@1464: api.changeset :revision => changeset.revision do Chris@1464: api.user(:id => changeset.user_id, :name => changeset.user.name) unless changeset.user.nil? Chris@1464: api.comments changeset.comments Chris@1464: api.committed_on changeset.committed_on Chris@1464: end Chris@1464: end Chris@1464: end if include_in_api_response?('changesets') && User.current.allowed_to?(:view_changesets, @project) Chris@1464: Chris@1464: api.array :journals do Chris@1464: @journals.each do |journal| Chris@1464: api.journal :id => journal.id do Chris@1464: api.user(:id => journal.user_id, :name => journal.user.name) unless journal.user.nil? Chris@1464: api.notes journal.notes Chris@1464: api.created_on journal.created_on Chris@1464: api.array :details do Chris@1464: journal.visible_details.each do |detail| Chris@1464: api.detail :property => detail.property, :name => detail.prop_key do Chris@1464: api.old_value detail.old_value Chris@1464: api.new_value detail.value Chris@1464: end Chris@1464: end Chris@1464: end Chris@1464: end Chris@1464: end Chris@1464: end if include_in_api_response?('journals') Chris@1464: Chris@1464: api.array :watchers do Chris@1464: @issue.watcher_users.each do |user| Chris@1464: api.user :id => user.id, :name => user.name Chris@1464: end Chris@1464: end if include_in_api_response?('watchers') && User.current.allowed_to?(:view_issue_watchers, @issue.project) Chris@1464: end