Module: RailsAuditLog::Graphql::Queries::AuditLogEntriesQueryMixin
- Defined in:
- lib/rails_audit_log/graphql/queries/audit_log_entries_query_mixin.rb
Class Method Summary collapse
Instance Method Summary collapse
- #resolve_audit_log_entries(event: nil, item_type: nil, item_id: nil, actor_id: nil, page: 1, per_page: 25) ⇒ Object
- #resolve_audit_log_entry(id:) ⇒ Object
Class Method Details
.included(base) ⇒ Object
7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 |
# File 'lib/rails_audit_log/graphql/queries/audit_log_entries_query_mixin.rb', line 7 def self.included(base) base.field( :audit_log_entry, RailsAuditLog::Graphql::Types::AuditLogEntryType, null: true, description: "Fetch a single audit log entry by ID. Returns nil if not found.", resolver_method: :resolve_audit_log_entry ) do argument :id, GraphQL::Types::ID, required: true, description: "ID of the audit log entry." end base.field( :audit_log_entries, [RailsAuditLog::Graphql::Types::AuditLogEntryType, null: false], null: false, description: "List audit log entries with optional filters. Offset-paginated.", resolver_method: :resolve_audit_log_entries ) do argument :event, String, required: false, description: "Filter by event type (create, update, destroy)." argument :item_type, String, required: false, description: "Filter by audited model class name." argument :item_id, GraphQL::Types::ID, required: false, description: "Filter by audited record ID." argument :actor_id, GraphQL::Types::ID, required: false, description: "Filter by actor ID." argument :page, GraphQL::Types::Int, required: false, default_value: 1, description: "Page number (1-based)." argument :per_page, GraphQL::Types::Int, required: false, default_value: 25, description: "Number of results per page." end end |
Instance Method Details
#resolve_audit_log_entries(event: nil, item_type: nil, item_id: nil, actor_id: nil, page: 1, per_page: 25) ⇒ Object
40 41 42 43 44 45 46 47 48 |
# File 'lib/rails_audit_log/graphql/queries/audit_log_entries_query_mixin.rb', line 40 def resolve_audit_log_entries(event: nil, item_type: nil, item_id: nil, actor_id: nil, page: 1, per_page: 25) check_authentication! scope = RailsAuditLog::AuditLogEntry.order(created_at: :desc) scope = scope.where(event: event) if event scope = scope.where(item_type: item_type) if item_type scope = scope.where(item_id: item_id) if item_id scope = scope.where(actor_id: actor_id) if actor_id scope.limit(per_page).offset((page - 1) * per_page) end |
#resolve_audit_log_entry(id:) ⇒ Object
35 36 37 38 |
# File 'lib/rails_audit_log/graphql/queries/audit_log_entries_query_mixin.rb', line 35 def resolve_audit_log_entry(id:) check_authentication! RailsAuditLog::AuditLogEntry.find_by(id: id) end |