self.list_tasks

in src/task.rb [124:161]


  def self.list_tasks(next_token:,max_items:)
    
    qbuilder = build_query.on_index(:reverse).
      key_expr(":table_name = ?", "TASK").
      scan_ascending(false).
      limit(max_items)
    if next_token
      esk = PaginationToken.unwrap(next_token)
      if esk.nil?
        return [
          nil,
          InvalidInputException.new("Invalid or expired pagination token.")
        ]
      end
      qbuilder.exclusive_start_key(esk)
    end
    query = qbuilder.complete!
    results = query.page
    next_token = nil
    if lek = query.last_evaluated_key
      next_token = PaginationToken.generate(lek)
      if next_token.nil?
        puts "[ERROR] Unable to generate pagination token from last evaluated key #{lek.to_json}"
        return [
          nil,
          ServerError.new
        ]
      end
    end
    return [
      {
        tasks: results,
        next_token: next_token
      },
      nil
    ]
  end