Method: CF::Badge.update

Defined in:
lib/cf/badge.rb

.update(badge_name, update_params) ⇒ Object



71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
# File 'lib/cf/badge.rb', line 71

def self.update(badge_name, update_params)
  badge_name = badge_name.parameterize
  update_params.symbolize_keys!
  if update_params[:form] && update_params[:form].class != Hash && File.exist?(update_params[:form])
    file_type = IO.popen(["file", "--brief", "--mime-type", update_params[:form]], in: :close, err: :close).read.chomp
    if file_type == "text/html"
      update_params[:form] = {:title => "#{update_params[:name]}_form",:_type => "CustomTaskForm", :raw_html => File.read(update_params[:form])}
    else
      return
    end
  end

  update_params[:known_answers] = customize_known_answers(update_params[:known_answers], update_params[:name]) if update_params[:known_answers].present?

  request =
  {
    :body =>
    {
      :api_key => CF.api_key,
      :badge => update_params
    }
  }
  resp = HTTParty.put("#{CF.api_url}#{CF.api_version}/accounts/#{CF.account_name}/badges/#{badge_name}.json",request)
  return resp
end