diff options
author | Oswaldo Ferreira <oswaldo@gitlab.com> | 2017-07-25 12:35:45 +0300 |
---|---|---|
committer | Rémy Coutable <remy@rymai.me> | 2017-07-25 12:35:45 +0300 |
commit | 33dc5171e5885bbc1de1db7b9be58453edfa9453 (patch) | |
tree | 70953a20215c456e1007a0df3849db00a98cbe34 /lib/api/helpers | |
parent | d5801545ec25780402c30c4d30d4efa16f0728a4 (diff) |
Resolve "More RESTful API: include resource URLs in responses"
Diffstat (limited to 'lib/api/helpers')
-rw-r--r-- | lib/api/helpers/related_resources_helpers.rb | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/lib/api/helpers/related_resources_helpers.rb b/lib/api/helpers/related_resources_helpers.rb new file mode 100644 index 00000000000..769cc1457fc --- /dev/null +++ b/lib/api/helpers/related_resources_helpers.rb @@ -0,0 +1,28 @@ +module API + module Helpers + module RelatedResourcesHelpers + include GrapeRouteHelpers::NamedRouteMatcher + + def issues_available?(project, options) + available?(:issues, project, options[:current_user]) + end + + def mrs_available?(project, options) + available?(:merge_requests, project, options[:current_user]) + end + + def expose_url(path) + url_options = Rails.application.routes.default_url_options + protocol, host, port = url_options.slice(:protocol, :host, :port).values + + URI::HTTP.build(scheme: protocol, host: host, port: port, path: path).to_s + end + + private + + def available?(feature, project, current_user) + project.feature_available?(feature, current_user) + end + end + end +end |