gateway/app/jobs/dns_update_job.rb
2022-04-02 21:49:32 +03:00

31 lines
756 B
Ruby

require "dnsimple"
class DnsUpdateJob < ApplicationJob
queue_as :default
def client
@client ||= Dnsimple::Client.new(access_token: Rails.application.credentials.simple_token)
end
def simple_id
Rails.application.credentials.simple_id
end
def my_ip
HTTParty.get("https://jsonip.com/")["ip"]
end
def find_record(name , host)
zones = client.zones.list_zone_records(simple_id, host, filter: { type: 'A' , name: name })
zones.data.first
end
def same_ip
my_ip == find_record("gateway" , "hubfeenix.fi").content
end
def update_ip
record = find_record("gateway" , "hubfeenix.fi")
client.zones.update_zone_record(simple_id,"hubfeenix.fi", record.id , content: my_ip)
end
def perform(*args)
end
end