class Dozenscli::API
Public Class Methods
new()
click to toggle source
# File lib/dozenscli/api.rb, line 7 def initialize @base_url = 'http://dozens.jp' home = File.expand_path('~') conf = IniFile.load("#{home}/.dozenscli.conf") dozens_id = conf['profile']['dozens_id'] api_key = conf['profile']['api_key'] if dozens_id.nil? || api_key.nil? abort("\x1b[31;01m[ERROR]\x1b[39;49;00m Configuration file is missing some required information") end @headers = { 'X-Auth-User' => dozens_id, 'X-Auth-Key' => api_key, 'Host' => 'dozens.jp', 'Content-Type' => 'application/json' } uri = URI.parse("#{@base_url}/api/authorize.json") res = Net::HTTP.start(uri.host, uri.port) do |http| http.get(uri.path, @headers) end @auth_token = JSON.parse(res.body)['auth_token'] end
Public Instance Methods
create_record(params)
click to toggle source
# File lib/dozenscli/api.rb, line 80 def create_record(params) uri = URI.parse("#{@base_url}/api/record/create.json") begin JSON.parse(params) rescue JSON::ParserError => e abort("\x1b[31;01m[ERROR]\x1b[39;49;00m #{e.message}") else post_data(uri, params) end end
create_zone(zone_name)
click to toggle source
# File lib/dozenscli/api.rb, line 64 def create_zone(zone_name) uri = URI.parse("#{@base_url}/api/zone/create.json") data = JSON.generate({"name" => zone_name}) post_data(uri, data) end
delete_data(uri)
click to toggle source
# File lib/dozenscli/api.rb, line 51 def delete_data(uri) @headers['X-Auth-Token'] = @auth_token http = Net::HTTP.new(uri.host, uri.port) res = http.delete(uri.request_uri, @headers) JSON.parse res.body end
delete_record(record_id)
click to toggle source
# File lib/dozenscli/api.rb, line 91 def delete_record(record_id) uri = URI.parse("#{@base_url}/api/record/delete/#{record_id}.json") delete_data(uri) end
delete_zone(zone_id)
click to toggle source
# File lib/dozenscli/api.rb, line 70 def delete_zone(zone_id) uri = URI.parse("#{@base_url}/api/zone/delete/#{zone_id}.json") delete_data(uri) end
get_data(uri)
click to toggle source
# File lib/dozenscli/api.rb, line 34 def get_data(uri) @headers['X-Auth-Token'] = @auth_token res = Net::HTTP.start(uri.host, uri.port) do |http| http.get(uri.path, @headers) end JSON.parse res.body end
get_record(zone_name)
click to toggle source
# File lib/dozenscli/api.rb, line 75 def get_record(zone_name) uri = URI.parse("#{@base_url}/api/record/#{zone_name}.json") get_data(uri) end
get_zone()
click to toggle source
# File lib/dozenscli/api.rb, line 59 def get_zone uri = URI.parse("#{@base_url}/api/zone.json") get_data(uri) end
post_data(uri, data)
click to toggle source
# File lib/dozenscli/api.rb, line 43 def post_data(uri, data) @headers['X-Auth-Token'] = @auth_token http = Net::HTTP.new(uri.host, uri.port) res = http.post(uri.request_uri, data, @headers) JSON.parse res.body end
update_record(record_id, params)
click to toggle source
# File lib/dozenscli/api.rb, line 96 def update_record(record_id, params) uri = URI.parse("#{@base_url}/api/record/update/#{record_id}.json") begin JSON.parse(params) rescue JSON::ParserError => e abort("\x1b[31;01m[ERROR]\x1b[39;49;00m #{e.message}") else post_data(uri, params) end end