# dev.knotless.addReaction

> Published by [lexicons.knotless.dev](https://lexicon.garden/identity/did:plc:yqsg7znbbhfmj3a2nrpnaerk)

✓ This is the authoritative definition for this NSID.

## Description

Reacts to a pull, an issue or a comment as the account logged in to this appview's pages.

## Links

- [View on Lexicon Garden](https://lexicon.garden/lexicon/did:plc:yqsg7znbbhfmj3a2nrpnaerk/dev.knotless.addReaction)
- [Documentation](https://lexicon.garden/lexicon/did:plc:yqsg7znbbhfmj3a2nrpnaerk/dev.knotless.addReaction/docs)
- [Examples](https://lexicon.garden/lexicon/did:plc:yqsg7znbbhfmj3a2nrpnaerk/dev.knotless.addReaction/examples)

## Definitions

### `dev.knotless.addReaction`

**Type**: `procedure`

Writes a dev.knotless.reaction record naming the subject, with the content, in the account logged in to this appview's web pages, unless one is there already. Requires the session cookie the pages' login sets: the appview writes with the session it keeps for that account. Clients holding their own session write the record themselves.

#### Input

**Encoding**: `application/json`

| Property | Type | Required | Description |
|----------|------|----------|-------------|
| `content` | `ref` → `dev.knotless.defs#reactionContent` | Yes |  |
| `repo` | `string` (at-uri) | Yes | The repository's dev.knotless.repo record, as dev.knotless.getThread takes it. |
| `subject` | `string` (at-uri) | Yes | The dev.knotless.pull, dev.knotless.issue or dev.knotless.comment record on that repository. |

#### Output

**Encoding**: `application/json`

#### Errors

- **NotFound**: No such public repository, or no such pull, issue or comment on it.
- **AuthenticationRequired**: No account is logged in to the pages, or its session has ended.

## Raw Schema

```json
{
  "$type": "com.atproto.lexicon.schema",
  "defs": {
    "main": {
      "description": "Writes a dev.knotless.reaction record naming the subject, with the content, in the account logged in to this appview's web pages, unless one is there already. Requires the session cookie the pages' login sets: the appview writes with the session it keeps for that account. Clients holding their own session write the record themselves.",
      "errors": [
        {
          "description": "No such public repository, or no such pull, issue or comment on it.",
          "name": "NotFound"
        },
        {
          "description": "No account is logged in to the pages, or its session has ended.",
          "name": "AuthenticationRequired"
        }
      ],
      "input": {
        "encoding": "application/json",
        "schema": {
          "properties": {
            "content": {
              "ref": "dev.knotless.defs#reactionContent",
              "type": "ref"
            },
            "repo": {
              "description": "The repository's dev.knotless.repo record, as dev.knotless.getThread takes it.",
              "format": "at-uri",
              "type": "string"
            },
            "subject": {
              "description": "The dev.knotless.pull, dev.knotless.issue or dev.knotless.comment record on that repository.",
              "format": "at-uri",
              "type": "string"
            }
          },
          "required": [
            "repo",
            "subject",
            "content"
          ],
          "type": "object"
        }
      },
      "output": {
        "encoding": "application/json",
        "schema": {
          "ref": "dev.knotless.defs#reactionState",
          "type": "ref"
        }
      },
      "type": "procedure"
    }
  },
  "description": "Reacts to a pull, an issue or a comment as the account logged in to this appview's pages.",
  "id": "dev.knotless.addReaction",
  "lexicon": 1
}
```
