Class: Bugsage::SessionClear

Inherits:
Object
  • Object
show all
Extended by:
JsonEndpoint
Defined in:
lib/bugsage/session_clear.rb

Constant Summary collapse

ENDPOINT =
"/bugsage/clear"

Class Method Summary collapse

Methods included from JsonEndpoint

error_response, json_response, not_found, parse_request_body

Class Method Details

.handle_request(env) ⇒ Object



9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
# File 'lib/bugsage/session_clear.rb', line 9

def self.handle_request(env)
  return not_found unless Bugsage.configuration.enabled?

  Store.clear!
  ConsoleContext.clear!
  AiContext.clear!

  redirect_to = "/bugsage"

  if json_request?(env)
    json_response({ ok: true, message: Bugsage.t("errors.session_logs_cleared") })
  else
    redirect_response(redirect_to)
  end
end

.json_request?(env) ⇒ Boolean

Returns:

  • (Boolean)


25
26
27
28
29
# File 'lib/bugsage/session_clear.rb', line 25

def self.json_request?(env)
  accept = env["HTTP_ACCEPT"].to_s
  content_type = env["CONTENT_TYPE"].to_s
  accept.include?("application/json") || content_type.include?("application/json")
end

.redirect_response(path) ⇒ Object



31
32
33
# File 'lib/bugsage/session_clear.rb', line 31

def self.redirect_response(path)
  [302, { "Location" => path, "Content-Type" => "text/plain" }, [Bugsage.t("errors.session_logs_cleared")]]
end