Fix issue board related controllers to expose label priority per project

This commit is contained in:
Douglas Barbosa Alexandre 2016-10-14 20:51:41 -03:00
parent 3c2aaec1f2
commit 86e0b5d643
6 changed files with 34 additions and 6 deletions

View File

@ -72,10 +72,10 @@ module Projects
def serialize_as_json(resource)
resource.as_json(
labels: true,
only: [:iid, :title, :confidential],
include: {
assignee: { only: [:id, :name, :username], methods: [:avatar_url] },
labels: { only: [:id, :title, :description, :color, :priority], methods: [:text_color] }
assignee: { only: [:id, :name, :username], methods: [:avatar_url] }
})
end
end

View File

@ -76,9 +76,8 @@ module Projects
resource.as_json(
only: [:id, :list_type, :position],
methods: [:title],
include: {
label: { only: [:id, :title, :description, :color, :priority] }
})
label: true
)
end
end
end

View File

@ -274,4 +274,16 @@ class Issue < ActiveRecord::Base
def check_for_spam?
project.public?
end
def as_json(options = {})
super(options).tap do |json|
if options.has_key?(:labels)
json[:labels] = labels.as_json(
project: project,
only: [:id, :title, :description, :color],
methods: [:text_color]
)
end
end
end
end

View File

@ -133,6 +133,12 @@ class Label < ActiveRecord::Base
end
end
def as_json(options = {})
super(options).tap do |json|
json[:priority] = priorities.find_by(project: options[:project]).try(:priority) if options.has_key?(:project)
end
end
private
def cross_project_reference?(source_project, target_project)

View File

@ -26,6 +26,17 @@ class List < ActiveRecord::Base
label? ? label.name : list_type.humanize
end
def as_json(options = {})
super(options).tap do |json|
if options.has_key?(:label)
json[:label] = label.as_json(
project: board.project,
only: [:id, :title, :description, :color]
)
end
end
end
private
def can_be_destroyed

View File

@ -13,7 +13,7 @@
"enum": ["backlog", "label", "done"]
},
"label": {
"type": ["object"],
"type": ["object", "null"],
"required": [
"id",
"color",