class Bizside::Redmine::Client
Constants
- DEFAULT_CONFIG
- VERSION
Attributes
prefix[R]
Public Class Methods
new(overrides = {})
click to toggle source
# File lib/bizside/redmine/client.rb, line 30 def initialize(overrides = {}) overrides = overrides.symbolize_keys if logger = overrides.delete(:logger) @@logger = logger end @prefix = overrides[:prefix] || Bizside::Redmine::Client.config[:prefix] @connection = Bizside::Redmine::Connection.new(overrides) end
set_config(config)
click to toggle source
# File lib/bizside/redmine/client.rb, line 23 def self.set_config(config) @@config = DEFAULT_CONFIG.dup DEFAULT_CONFIG.keys.each do |key| @@config[key] = config[key] unless config[key].nil? end end
Public Instance Methods
create_aggregated_wiki_page(params)
click to toggle source
# File lib/bizside/redmine/client.rb, line 123 def create_aggregated_wiki_page(params) params.each do |project_identifier, hash| hash.each do |env, page_names| year_months = page_names.sort.reverse.join(" ").gsub(" ", "\n") content = "<wiki_page><text>#{year_months}</text></wiki_page>" connection.post_or_put("#{prefix}/projects/#{project_identifier}/wiki/#{env}-result-analyzer.xml", content) end end end
create_analyzed_wiki_pages(params)
click to toggle source
# File lib/bizside/redmine/client.rb, line 111 def create_analyzed_wiki_pages(params) content = "<wiki_page><text>#{params[:content]}</text></wiki_page>" response = connection.post_or_put("#{prefix}/projects/#{params[:project_identifier]}/wiki/#{params[:page_name]}.xml", content) Bizside::Redmine::ResultSet.new(:wiki_page, response.status) end
create_errors_wiki_pages(params)
click to toggle source
# File lib/bizside/redmine/client.rb, line 117 def create_errors_wiki_pages(params) content = "<wiki_page><text>h3. #{params[:page_name]} <notextile></notextile><pre>#{params[:content]}</pre></text></wiki_page>" response = connection.post_or_put("#{prefix}/projects/#{params[:project_identifier]}/wiki/#{params[:page_name]}.xml", content) Bizside::Redmine::ResultSet.new(:wiki_page, response.status) end
create_issue(params)
click to toggle source
# File lib/bizside/redmine/client.rb, line 63 def create_issue(params) params = params.symbolize_keys issue_params = params[:issue].symbolize_keys api_params = { :issue => { :project_id => issue_params[:project_id], :subject => issue_params[:subject], } } api_params[:issue][:tracker_id] = issue_params[:tracker_id] if issue_params[:tracker_id] api_params[:issue][:status_id] = issue_params[:status_id] if issue_params[:status_id] api_params[:issue][:priority_id] = issue_params[:priority_id] if issue_params[:priority_id] api_params[:issue][:description] = issue_params[:description] if issue_params[:description] api_params[:issue][:category_id] = issue_params[:category_id] if issue_params[:category_id] api_params[:issue][:fixed_version_id] = issue_params[:fixed_version_id] if issue_params[:fixed_version_id] api_params[:issue][:assigned_to_id] = issue_params[:assigned_to_id] if issue_params[:assigned_to_id] api_params[:issue][:parent_issue_id] = issue_params[:parent_issue_id] if issue_params[:parent_issue_id] api_params[:issue][:custom_fields] = issue_params[:custom_fields] if issue_params[:custom_fields] api_params[:issue][:watcher_user_ids] = issue_params[:watcher_user_ids] if issue_params[:watcher_user_ids] api_params[:issue][:uploads] = issue_params[:uploads] if issue_params[:uploads] response = connection.post("#{prefix}/issues.json", api_params) decode(:issue, response) end
create_wiki_page(params)
click to toggle source
# File lib/bizside/redmine/client.rb, line 104 def create_wiki_page(params) path = "#{prefix}/projects/#{params[:project_identifier]}/wiki/#{params[:page_name]}.xml" content = "<wiki_page><text>#{params[:content]}</text></wiki_page>" response = connection.post_or_put(path, content) Bizside::Redmine::ResultSet.new(:wiki_page, response.status) end
create_year_month_wiki_pages(params)
click to toggle source
# File lib/bizside/redmine/client.rb, line 133 def create_year_month_wiki_pages(params) params.each do |project_identifier, hash| hash.each do |year_month, page_names| page_names = page_names.sort.reverse.join(" ").gsub(" ", "\n") content = "<wiki_page><text>#{page_names}</text></wiki_page>" connection.post_or_put("#{prefix}/projects/#{project_identifier}/wiki/#{year_month}.xml", content) end end end
dms_commit_file(params)
click to toggle source
# File lib/bizside/redmine/client.rb, line 187 def dms_commit_file(params) params = params.symbolize_keys api_params = { attachments: { folder_id: params[:folder_id], uploaded_file: { name: params[:name], title: params[:title], description: params[:description].present? ? params[:description] : '-', comment: params[:comment].present? ? params[:comment] : '-', token: params[:token] } } } response = connection.post("#{prefix}/projects/#{params[:project_id]}/dmsf/commit.json", api_params) decode("", response) end
dms_create_folder(params)
click to toggle source
# File lib/bizside/redmine/client.rb, line 162 def dms_create_folder(params) params = params.symbolize_keys api_params = { dmsf_folder: { title: params[:title], description: params[:description].present? ? params[:description] : '-' } } api_params[:dmsf_folder_id] = params[:parent_folder_id] if params[:parent_folder_id].present? response = connection.post("#{prefix}/projects/#{params[:project_id]}/dmsf/create.json", api_params) decode("", response) end
dms_folders(params)
click to toggle source
# File lib/bizside/redmine/client.rb, line 152 def dms_folders(params) params = params.symbolize_keys api_params = {} api_params[:folder_id] = params[:folder_id] if params[:folder_id].present? response = connection.get("#{prefix}/projects/#{params[:project_id]}/dmsf.json", api_params) decode("", response) end
dms_upload_file(params)
click to toggle source
# File lib/bizside/redmine/client.rb, line 177 def dms_upload_file(params) params = params.symbolize_keys api_params = { :file => params[:file] } filename = File.basename(params[:file]) response = connection.post_with_multipart("#{prefix}/projects/#{params[:project_id]}/dmsf/upload.json?filename=#{filename}", api_params) decode('', response) end
projects(params = {})
click to toggle source
# File lib/bizside/redmine/client.rb, line 40 def projects(params = {}) params = params.symbolize_keys api_params = { include: 'trackers,issue_categories', page: params[:page] || 1, per: params[:per] || 100 } response = connection.get("#{prefix}/projects.json", api_params) decode(:projects, response) end
trackers()
click to toggle source
# File lib/bizside/redmine/client.rb, line 53 def trackers response = connection.get("#{prefix}/trackers.json") decode(:trackers, response) end
update_issue(id, params)
click to toggle source
# File lib/bizside/redmine/client.rb, line 89 def update_issue(id, params) params = params.symbolize_keys issue_params = params[:issue].symbolize_keys api_params = { :issue => { :notes => issue_params[:notes], } } api_params[:issue][:uploads] = issue_params[:uploads] if issue_params[:uploads] response = connection.put("#{prefix}/issues/#{id}.json", api_params) decode(:issue, response) end
upload_file(params)
click to toggle source
# File lib/bizside/redmine/client.rb, line 143 def upload_file(params) options = params.symbolize_keys api_params = { :file => options[:file] } response = connection.post_with_multipart("#{prefix}/uploads.json", api_params) decode(:upload, response) end
wiki_pages(project_identifier)
click to toggle source
# File lib/bizside/redmine/client.rb, line 58 def wiki_pages(project_identifier) response = connection.get("#{prefix}/projects/#{project_identifier}/wiki/index.json") decode(:wiki_pages, response) end
Private Instance Methods
connection()
click to toggle source
# File lib/bizside/redmine/client.rb, line 207 def connection @connection end
decode(key, response)
click to toggle source
# File lib/bizside/redmine/client.rb, line 211 def decode(key, response) Bizside::Redmine::ResultSet.new(key, response.status, response.body) end