Repository URL to install this package:
|
Version:
0.1.7 ▾
|
# frozen_string_literal: true
require 'semantic_logger'
require 'kiwi/errors/version'
require 'kiwi/errors/handler'
require 'kiwi/errors/renderer'
# SemanticLogger.default_level = :debug
module Kiwi
# Kiwi Errors
module Errors
include Handler
include Renderer
# Error
def logger
@logger ||= SemanticLogger[self.class.name]
end
class Error < StandardError; end
# Api Error
class ApiError < Error
attr_reader :code, :status
def initialize(message, code, status)
super(message)
@code = code
@status = status
end
end
class Unauthorized < ApiError; end
class RecordNotFound < ApiError; end
# RecordInvaild
class RecordInvalid < Error
attr_reader :record
def initialize(record = nil)
@record = record if record
message = 'Record invalid'
super(message)
end
end
def self.included(action)
action.class_eval do
handle_exception StandardError => :app_exception
end
end
def app_exception(exception)
logger.error exception
sleep 0.5
api_errors(exception)
rescue StandardError => e
p "Errors: #{e}"
end
end
end