fluke/devops-service/app/api3/handlers/statistic.rb
Tim Lianov 03dc3d8d99 v3
2018-04-04 22:44:39 +03:00

43 lines
1.3 KiB
Ruby

require 'db/mongo/models/statistic'
require_relative "request_handler"
module Devops
module API3
module Handler
class Statistic < RequestHandler
# supported options:
# user
# response_code (format: 200)
# method
# path
# path_contains
# date_from (format: timestamp)
# date_till (format: timestamp)
# limit: default 20. Zero value is equal to no limit.
# sort_field: default 'created_at'. Could also be in [user, path, method, body, response_code, created_at].
# sort_order: default 'asc'. Could also be 'desc'
def statistic
filters = @request.params
limit =extract_limit_params_for_searching(20)
sort = extract_sort_params_for_searching
query = {}
%w(user method path).each do |key|
val = filters[key]
query[key] = val if val
end
query["response_code"] = filters["response_code"].to_i if filters["response_code"]
query["path"] = Regexp.new(filters["path_contains"], 'i') if filters["path_contains"]
fill_date_params_for_searching(query)
Devops::Model::Statistic.where(query).sort(sort).limit(limit)
end
end
end
end
end