require "http/client/response"
require "./api/models/error_response"
module Docker
class DockerException < Exception; end
class ApiError < DockerException
def self.from_response(response : HTTP::Client::Response)
if response.success?
raise ArgumentError.new "response is valid"
else
error = Api::Models::ErrorResponse.from_json response.body
new response.status_code, error.message
end
end
def initialize(@status_code, message = "")
super message
end
getter status_code : Int32
end
class BuildError < DockerException
def initialize(build_output : Array(String), message = "")
@build_log = build_output.join
super message
end
getter build_log : String
end
end