summaryrefslogtreecommitdiff
path: root/lib/api/entities/releases/link.rb
blob: f4edb83bd585a84c2c95006b4d266b3f7302a415 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
# frozen_string_literal: true

module API
  module Entities
    module Releases
      class Link < Grape::Entity
        expose :id
        expose :name
        expose :url
        expose :direct_asset_url
        expose :external?, as: :external

        def direct_asset_url
          return object.url unless object.filepath

          release = object.release
          project = release.project

          Gitlab::Routing.url_helpers.project_release_url(project, release) << object.filepath
        end
      end
    end
  end
end