Class: GraphQL::Tracing::DetailedTrace::ActiveRecordBackend
- Inherits:
-
Object
- Object
- GraphQL::Tracing::DetailedTrace::ActiveRecordBackend
show all
- Defined in:
- lib/graphql/tracing/detailed_trace/active_record_backend.rb
Defined Under Namespace
Classes: GraphqlDetailedTrace
Instance Method Summary
collapse
Constructor Details
#initialize(limit: nil, model_class: nil) ⇒ ActiveRecordBackend
Returns a new instance of ActiveRecordBackend.
10
11
12
13
|
# File 'lib/graphql/tracing/detailed_trace/active_record_backend.rb', line 10
def initialize(limit: nil, model_class: nil)
@limit = limit
@model_class = model_class || GraphqlDetailedTrace
end
|
Instance Method Details
#delete_all_traces ⇒ Object
31
32
33
|
# File 'lib/graphql/tracing/detailed_trace/active_record_backend.rb', line 31
def delete_all_traces
@model_class.all.destroy_all
end
|
#delete_trace(id) ⇒ Object
26
27
28
29
|
# File 'lib/graphql/tracing/detailed_trace/active_record_backend.rb', line 26
def delete_trace(id)
@model_class.where(id: id).destroy_all
nil
end
|
#find_trace(id) ⇒ Object
35
36
37
38
39
40
41
42
|
# File 'lib/graphql/tracing/detailed_trace/active_record_backend.rb', line 35
def find_trace(id)
gdt = @model_class.find_by(id: id)
if gdt
record_to_stored_trace(gdt)
else
nil
end
end
|
#save_trace(operation_name, duration_ms, begin_ms, trace_data) ⇒ Object
44
45
46
47
48
49
50
51
52
53
54
55
56
57
|
# File 'lib/graphql/tracing/detailed_trace/active_record_backend.rb', line 44
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
|
#traces(last:, before:) ⇒ Object
15
16
17
18
19
20
21
22
23
24
|
# File 'lib/graphql/tracing/detailed_trace/active_record_backend.rb', line 15
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
|