# guide.climbers.appview.getRounds

> Published by [gunnar.foo](https://lexicon.garden/identity/did:plc:f5gvem3uvafi2ord4txpyvjj)

## Links

- [View on Lexicon Garden](https://lexicon.garden/lexicon/did:plc:f5gvem3uvafi2ord4txpyvjj/guide.climbers.appview.getRounds)
- [Documentation](https://lexicon.garden/lexicon/did:plc:f5gvem3uvafi2ord4txpyvjj/guide.climbers.appview.getRounds/docs)
- [Examples](https://lexicon.garden/lexicon/did:plc:f5gvem3uvafi2ord4txpyvjj/guide.climbers.appview.getRounds/examples)

## Definitions

### `guide.climbers.appview.getRounds#attemptView`

**Type**: `object`

One logged go, as it is stored in the climber's space.

| Property | Type | Required | Description |
|----------|------|----------|-------------|
| `note` | `string` | No | Whatever the climber wants to remember about the go. |
| `outcome` | `string` | Yes | What came of the go, as a token reference. |
| `uri` | `string` (at-uri) | Yes |  |

### `guide.climbers.appview.getRounds`

**Type**: `query`

A climber's logged attempts, grouped into rounds. A round is an unbroken run of attempts within a timeframe sharing both route and wall angle.

#### Parameters

| Property | Type | Required | Description |
|----------|------|----------|-------------|
| `actor` | `string` (at-identifier) | Yes | The climber whose logbook to read. |
| `cursor` | `string` | No |  |
| `limit` | `integer` | No |  |
| `maxDuration` | `integer` | No | Longest a round may span, in seconds. Unbounded when omitted, so a round ends only when the route or the angle changes. |
| `route` | `string` (at-uri) | No | Narrow to one route. Every route is listed when it is omitted. |

#### Output

**Encoding**: `application/json`

| Property | Type | Required | Description |
|----------|------|----------|-------------|
| `cursor` | `string` | No |  |
| `rounds` | `array` | Yes |  |

### `guide.climbers.appview.getRounds#roundView`

**Type**: `object`

One unbroken run of attempts at one route.

| Property | Type | Required | Description |
|----------|------|----------|-------------|
| `angle` | `integer` | Yes | Wall angle the round was climbed at. |
| `attempts` | `array` | Yes | The goes making up the round, in chronological order. |
| `outcome` | `string` | Yes | What came of the go, as a token reference. |
| `route` | `ref` → `guide.climbers.appview.getBoardRoutes#routeView` | Yes |  |
| `startedAt` | `string` (datetime) | Yes | When the first attempt of the round was logged. |
| `wall` | `ref` → `guide.climbers.appview.getWall#wallView` | No |  |

## Raw Schema

```json
{
  "$type": "com.atproto.lexicon.schema",
  "defs": {
    "attemptView": {
      "description": "One logged go, as it is stored in the climber's space.",
      "properties": {
        "note": {
          "description": "Whatever the climber wants to remember about the go.",
          "type": "string"
        },
        "outcome": {
          "description": "What came of the go, as a token reference.",
          "knownValues": [
            "guide.climbers.dev.attempt#flash",
            "guide.climbers.dev.attempt#send",
            "guide.climbers.dev.attempt#top",
            "guide.climbers.dev.attempt#attempt"
          ],
          "type": "string"
        },
        "uri": {
          "format": "at-uri",
          "type": "string"
        }
      },
      "required": [
        "uri",
        "outcome"
      ],
      "type": "object"
    },
    "main": {
      "description": "A climber's logged attempts, grouped into rounds. A round is an unbroken run of attempts within a timeframe sharing both route and wall angle.",
      "output": {
        "encoding": "application/json",
        "schema": {
          "properties": {
            "cursor": {
              "type": "string"
            },
            "rounds": {
              "items": {
                "ref": "#roundView",
                "type": "ref"
              },
              "type": "array"
            }
          },
          "required": [
            "rounds"
          ],
          "type": "object"
        }
      },
      "parameters": {
        "properties": {
          "actor": {
            "description": "The climber whose logbook to read.",
            "format": "at-identifier",
            "type": "string"
          },
          "cursor": {
            "type": "string"
          },
          "limit": {
            "default": 50,
            "maximum": 100,
            "minimum": 1,
            "type": "integer"
          },
          "maxDuration": {
            "description": "Longest a round may span, in seconds. Unbounded when omitted, so a round ends only when the route or the angle changes.",
            "maximum": 86400,
            "minimum": 1,
            "type": "integer"
          },
          "route": {
            "description": "Narrow to one route. Every route is listed when it is omitted.",
            "format": "at-uri",
            "type": "string"
          }
        },
        "required": [
          "actor"
        ],
        "type": "params"
      },
      "type": "query"
    },
    "roundView": {
      "description": "One unbroken run of attempts at one route.",
      "properties": {
        "angle": {
          "description": "Wall angle the round was climbed at.",
          "type": "integer"
        },
        "attempts": {
          "description": "The goes making up the round, in chronological order.",
          "items": {
            "ref": "#attemptView",
            "type": "ref"
          },
          "type": "array"
        },
        "outcome": {
          "description": "What came of the go, as a token reference.",
          "knownValues": [
            "guide.climbers.dev.attempt#flash",
            "guide.climbers.dev.attempt#send",
            "guide.climbers.dev.attempt#top",
            "guide.climbers.dev.attempt#attempt"
          ],
          "type": "string"
        },
        "route": {
          "ref": "guide.climbers.appview.getBoardRoutes#routeView",
          "type": "ref"
        },
        "startedAt": {
          "description": "When the first attempt of the round was logged.",
          "format": "datetime",
          "type": "string"
        },
        "wall": {
          "ref": "guide.climbers.appview.getWall#wallView",
          "type": "ref"
        }
      },
      "required": [
        "route",
        "startedAt",
        "angle",
        "outcome",
        "attempts"
      ],
      "type": "object"
    }
  },
  "id": "guide.climbers.appview.getRounds",
  "lexicon": 1
}
```
