Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorOswaldo Ferreira <oswaldo@gitlab.com>2017-07-25 12:35:45 +0300
committerRémy Coutable <remy@rymai.me>2017-07-25 12:35:45 +0300
commit33dc5171e5885bbc1de1db7b9be58453edfa9453 (patch)
tree70953a20215c456e1007a0df3849db00a98cbe34 /lib/api/helpers
parentd5801545ec25780402c30c4d30d4efa16f0728a4 (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.rb28
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