diff options
Diffstat (limited to 'lib/api/entities.rb')
-rw-r--r-- | lib/api/entities.rb | 17 |
1 files changed, 8 insertions, 9 deletions
diff --git a/lib/api/entities.rb b/lib/api/entities.rb index 02134e7a829..e0bd7860084 100644 --- a/lib/api/entities.rb +++ b/lib/api/entities.rb @@ -793,20 +793,14 @@ module API class Todo < Grape::Entity expose :id - expose :project, using: Entities::ProjectIdentity, if: -> (todo, _) { todo.project } - expose :group, using: 'API::Entities::NamespaceBasic', if: -> (todo, _) { todo.group } + expose :project, using: Entities::ProjectIdentity, if: -> (todo, _) { todo.project_id } + expose :group, using: 'API::Entities::NamespaceBasic', if: -> (todo, _) { todo.group_id } expose :author, using: Entities::UserBasic expose :action_name expose :target_type expose :target do |todo, options| - begin - klass = "EE::API::Entities::#{todo.target_type}".constantize - rescue - klass = "API::Entities::#{todo.target_type}".constantize - end - - klass.represent(todo.target, options) + todo_target_class(todo.target_type).represent(todo.target, options) end expose :target_url do |todo, options| @@ -822,6 +816,10 @@ module API expose :body expose :state expose :created_at + + def todo_target_class(target_type) + ::API::Entities.const_get(target_type) + end end class NamespaceBasic < Grape::Entity @@ -1416,3 +1414,4 @@ API::Entities.prepend_entity(::API::Entities::Project, with: EE::API::Entities:: API::Entities.prepend_entity(::API::Entities::ProtectedRefAccess, with: EE::API::Entities::ProtectedRefAccess) API::Entities.prepend_entity(::API::Entities::UserPublic, with: EE::API::Entities::UserPublic) API::Entities.prepend_entity(::API::Entities::Variable, with: EE::API::Entities::Variable) +API::Entities.prepend_entity(::API::Entities::Todo, with: EE::API::Entities::Todo) |