// GetPagingParams modifies the base GetPagingParams method to replace // cursors that are "now" with the last seen ledger's cursor. func (action *Action) GetPagingParams() (cursor string, order string, limit uint64) { if action.Err != nil { return } cursor, order, limit = action.Base.GetPagingParams() if cursor == "now" { tid := toid.ID{ LedgerSequence: action.App.latestLedgerState.Horizon, TransactionOrder: toid.TransactionMask, OperationOrder: toid.OperationMask, } cursor = tid.String() } return }
// ForLedger filters the query to a only operations in a specific ledger, // specified by its sequence. func (q *OperationsQ) ForLedger(seq int32) *OperationsQ { var ledger Ledger q.Err = q.parent.LedgerBySequence(&ledger, seq) if q.Err != nil { return q } start := toid.ID{LedgerSequence: seq} end := toid.ID{LedgerSequence: seq + 1} q.sql = q.sql.Where( "hop.id >= ? AND hop.id < ?", start.ToInt64(), end.ToInt64(), ) return q }