Skip to content
Snippets Groups Projects
Commit 87760a29 authored by Jeroen van Baarsen's avatar Jeroen van Baarsen
Browse files

Added an UrlBuilder for building rails named routes

parent 45e1941f
No related branches found
No related tags found
No related merge requests found
module Issues module Issues
class BaseService < ::BaseService class BaseService < ::BaseService
include Rails.application.routes.url_helpers
   
private private
   
Loading
@@ -10,9 +9,7 @@ module Issues
Loading
@@ -10,9 +9,7 @@ module Issues
   
def execute_hooks(issue, action = 'open') def execute_hooks(issue, action = 'open')
issue_data = issue.to_hook_data issue_data = issue.to_hook_data
issue_url = project_issue_url(id: issue.iid, issue_url = Gitlab::UrlBuilder.new(:issue).build(issue.id)
project_id: issue.project,
host: Settings.gitlab['url'])
issue_data[:object_attributes].merge!(url: issue_url, action: action) issue_data[:object_attributes].merge!(url: issue_url, action: action)
issue.project.execute_hooks(issue_data, :issue_hooks) issue.project.execute_hooks(issue_data, :issue_hooks)
end end
Loading
Loading
module Gitlab
class UrlBuilder
include Rails.application.routes.url_helpers
def initialize(type)
@type = type
end
def build(id)
case @type
when :issue
issue_url(id)
end
end
private
def issue_url(id)
issue = Issue.find(id)
project_issue_url(id: issue.iid,
project_id: issue.project,
host: Settings.gitlab['url'])
end
end
end
require 'spec_helper'
describe Gitlab::UrlBuilder do
describe 'When asking for an issue' do
it 'returns the issue url' do
issue = create(:issue)
url = Gitlab::UrlBuilder.new(:issue).build(issue.id)
expect(url).to eq "#{Settings.gitlab['url']}/namespace1/gitlabhq/issues/#{issue.iid}"
end
end
end
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment