lib/zold/commands/push.rb in zold-0.0.8 vs lib/zold/commands/push.rb in zold-0.1
- old
+ new
@@ -1,6 +1,6 @@
-# Copyright (c) 2018 Zerocracy, Inc.
+# Copyright (c) 2018 Yegor Bugayenko
#
# Permission is hereby granted, free of charge, to any person obtaining a copy
# of this software and associated documentation files (the 'Software'), to deal
# in the Software without restriction, including without limitation the rights
# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
@@ -18,32 +18,32 @@
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
# SOFTWARE.
require 'net/http'
require_relative '../log.rb'
+require_relative '../http.rb'
# PUSH command.
# Author:: Yegor Bugayenko (yegor256@gmail.com)
-# Copyright:: Copyright (c) 2018 Zerocracy, Inc.
+# Copyright:: Copyright (c) 2018 Yegor Bugayenko
# License:: MIT
module Zold
# Wallet pushing command
class Push
- def initialize(wallet:, log: Log::Quiet.new)
+ def initialize(wallet:, remotes:, log: Log::Quiet.new)
@wallet = wallet
+ @remotes = remotes
@log = log
end
- def run
+ def run(_ = [])
raise 'The wallet is absent' unless @wallet.exists?
- request = Net::HTTP::Put.new("/wallets/#{@wallet.id}")
- request.body = File.read(@wallet.path)
- response = Net::HTTP.new('b1.zold.io', 80).start do |http|
- http.request(request)
+ remote = @remotes.all[0]
+ uri = URI("#{remote[:home]}/wallet/#{@wallet.id}")
+ response = Http.new(uri).put(File.read(@wallet.path))
+ unless response.code == '200'
+ raise "Failed to push to #{uri}: #{response.code}/#{response.message}"
end
- unless response.code.to_i == 200
- raise "Failed to push to the node, code=#{response.code}"
- end
- @log.info("The #{@wallet.id} pushed to the server")
+ @log.info("The #{@wallet.id} pushed to #{uri}")
end
end
end