Class: Igniter::Store::HTTPAdapter::CompactionActivityHandler
- Inherits:
-
Object
- Object
- Igniter::Store::HTTPAdapter::CompactionActivityHandler
- Includes:
- ResponseHelper
- Defined in:
- lib/igniter/store/http_adapter.rb
Overview
GET /v1/compaction/activity — normalized compaction lifecycle activity.
Query params (all optional):
?store=orders
?kind=exact_prune
?since=1714000000
?limit=50
Returns same JSON shape as Protocol::Interpreter#compaction_activity. Non-GET → 405. Invalid numeric since/limit → 400.
Instance Method Summary collapse
- #call(env) ⇒ Object
-
#initialize(interpreter) ⇒ CompactionActivityHandler
constructor
A new instance of CompactionActivityHandler.
Constructor Details
#initialize(interpreter) ⇒ CompactionActivityHandler
Returns a new instance of CompactionActivityHandler.
289 290 291 |
# File 'lib/igniter/store/http_adapter.rb', line 289 def initialize(interpreter) @interpreter = interpreter end |
Instance Method Details
#call(env) ⇒ Object
293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 |
# File 'lib/igniter/store/http_adapter.rb', line 293 def call(env) return method_not_allowed unless env["REQUEST_METHOD"] == "GET" query = Rack::Utils.parse_query(env["QUERY_STRING"] || "") store = query["store"] kind = query["kind"] since_raw = query["since"] if since_raw since = Float(since_raw) rescue nil return json_response(400, { error: "Invalid numeric value for 'since': #{since_raw.inspect}" }) if since.nil? end limit_raw = query["limit"] if limit_raw limit = Integer(limit_raw, 10) rescue nil return json_response(400, { error: "Invalid integer value for 'limit': #{limit_raw.inspect}" }) if limit.nil? end result = @interpreter.compaction_activity( store: store, kind: kind, since: since, limit: limit ) json_response(200, result) end |