diff options
author | Felipe Artur <fcardozo@gitlab.com> | 2018-06-21 15:22:40 +0300 |
---|---|---|
committer | Tim Zallmann <tzallmann@gitlab.com> | 2018-06-21 15:22:40 +0300 |
commit | 3e66795ef1ff1228906239763910b051d8afcc37 (patch) | |
tree | df6424d9ec008f5d1da455f8465681b371c4a11e /app/serializers/merge_request_diff_entity.rb | |
parent | 14e35ac9b19d358d84e0cfd167f74036937285b6 (diff) |
Changes tab VUE refactoring
Diffstat (limited to 'app/serializers/merge_request_diff_entity.rb')
-rw-r--r-- | app/serializers/merge_request_diff_entity.rb | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/app/serializers/merge_request_diff_entity.rb b/app/serializers/merge_request_diff_entity.rb new file mode 100644 index 00000000000..32c761b45ac --- /dev/null +++ b/app/serializers/merge_request_diff_entity.rb @@ -0,0 +1,46 @@ +class MergeRequestDiffEntity < Grape::Entity + include Gitlab::Routing + include GitHelper + include MergeRequestsHelper + + expose :version_index do |merge_request_diff| + @merge_request_diffs = options[:merge_request_diffs] + diff = options[:merge_request_diff] + + next unless diff.present? + next unless @merge_request_diffs.size > 1 + + version_index(merge_request_diff) + end + + expose :created_at + expose :commits_count + + expose :latest?, as: :latest + + expose :short_commit_sha do |merge_request_diff| + short_sha(merge_request_diff.head_commit_sha) + end + + expose :version_path do |merge_request_diff| + start_sha = options[:start_sha] + project = merge_request.target_project + + next unless project + + merge_request_version_path(project, merge_request, merge_request_diff, start_sha) + end + + expose :compare_path do |merge_request_diff| + project = merge_request.target_project + diff = options[:merge_request_diff] + + if project && diff + merge_request_version_path(project, merge_request, diff, merge_request_diff.head_commit_sha) + end + end + + def merge_request + options[:merge_request] + end +end |