module Gitlabarty::IssueRequest

Public Class Methods

create(params) click to toggle source
# File lib/gitlabarty/issuerequest.rb, line 10
def self.create(params)
  default_params = { title: 'New Issue' }
  params = default_params.merge(post_params(params))

  post = Net::HTTP::Post.new("#{issue_url}?#{URI.encode_www_form(params)}")
  post['PRIVATE-TOKEN'] = Gitlabarty.configuration.private_token

  response = send_request(post)
  JSON.parse(response.body).to_s
end
delete(id) click to toggle source
# File lib/gitlabarty/issuerequest.rb, line 43
def self.delete(id)
  return unless id

  del = Net::HTTP::Delete.new("#{issue_url}/#{id}")
  del['PRIVATE-TOKEN'] = Gitlabarty.configuration.private_token

  response = send_request(del)
  JSON.parse(response.body).to_s
end
issue_url() click to toggle source
# File lib/gitlabarty/issuerequest.rb, line 6
def self.issue_url
  "#{Gitlabarty.configuration.url}/#{Gitlabarty.configuration.id}/issues"
end
post_params(params) click to toggle source
# File lib/gitlabarty/issuerequest.rb, line 53
def self.post_params(params)
  params.slice(:title, :description, :confidential, :assignee_ids,
               :milestone_id, :labels, :created_at, :due_date, :merge_request_to_resolve_discussions_of,
               :discussion_to_resolve, :weight, :epic_id, :epic_iid)
end
put_params(params) click to toggle source
# File lib/gitlabarty/issuerequest.rb, line 59
def self.put_params(params)
  params.slice(:title, :description, :confidential, :assignee_ids,
               :milestone_id, :labels, :state_event, :updated_at, :due_date, :weight,
               :discussion_locked, :epic_id, :epic_iid)
end
read(id) click to toggle source
# File lib/gitlabarty/issuerequest.rb, line 21
def self.read(id)
  return unless id

  get = Net::HTTP::Get.new("#{issue_url}/#{id}")
  get['PRIVATE-TOKEN'] = Gitlabarty.configuration.private_token

  response = send_request(get)
  JSON.parse(response.body).to_s
end
send_request(request) click to toggle source
# File lib/gitlabarty/issuerequest.rb, line 65
def self.send_request(request)
  response = nil
  uri = URI(Gitlabarty.configuration.url)
  Net::HTTP.start(uri.host, uri.port, use_ssl: true) do |http|
    response = http.request request
  end
  response
end
update(id, params) click to toggle source
# File lib/gitlabarty/issuerequest.rb, line 31
def self.update(id, params)
  return unless id

  params = put_params(params)

  put = Net::HTTP::Put.new("#{issue_url}/#{id}?#{URI.encode_www_form(params)}")
  put['PRIVATE-TOKEN'] = Gitlabarty.configuration.private_token

  response = send_request(put)
  JSON.parse(response.body).to_s
end