module JsonError

  def create_errors_json(obj)

    # If we're passed a string, assume that is the error message
    return {errors: [obj]} if obj.is_a?(String)

    # If it looks like an activerecord object, extract its messages
    return {errors: obj.errors.full_messages } if obj.respond_to?(:errors) && obj.errors.present?

    # default to a generic error
    JsonError.generic_error
  end

  private

    def self.generic_error
      {errors: [I18n.t('js.generic_error')]}
    end

end