class GraphQL::Tracing::DetailedTrace::ActiveRecordBackend
Public Class Methods
# File lib/graphql/tracing/detailed_trace/active_record_backend.rb, line 11 def initialize(limit: nil, model_class: nil) @limit = limit @model_class = model_class || GraphqlDetailedTrace end
Public Instance Methods
Source
# File lib/graphql/tracing/detailed_trace/active_record_backend.rb, line 32 def delete_all_traces @model_class.all.destroy_all end
Source
# File lib/graphql/tracing/detailed_trace/active_record_backend.rb, line 27 def delete_trace(id) @model_class.where(id: id).destroy_all nil end
Source
# File lib/graphql/tracing/detailed_trace/active_record_backend.rb, line 36 def find_trace(id) gdt = @model_class.find_by(id: id) if gdt record_to_stored_trace(gdt) else nil end end
# File lib/graphql/tracing/detailed_trace/active_record_backend.rb, line 45 def save_trace(operation_name, duration_ms, begin_ms, trace_data) gdt = @model_class.create!( begin_ms: begin_ms, operation_name: operation_name, duration_ms: duration_ms, trace_data: trace_data, ) if @limit @model_class .where("id NOT IN(SELECT id FROM graphql_detailed_traces ORDER BY begin_ms DESC LIMIT ?)", @limit) .delete_all end gdt.id end
Source
# File lib/graphql/tracing/detailed_trace/active_record_backend.rb, line 16 def traces(last:, before:) gdts = @model_class.all.order("begin_ms DESC") if before gdts = gdts.where("begin_ms < ?", before) end if last gdts = gdts.limit(last) end gdts.map { |gdt| record_to_stored_trace(gdt) } end