# Réactions

Documentation de référence sur les types de schéma GraphQL dans la catégorie Réactions.

## addReaction - mutation

Adds a reaction to a subject.

### Input fields for `addReaction`

* `input` (AddReactionInput!): 

### Return fields for `addReaction`

* `clientMutationId` (String): A unique identifier for the client performing the mutation.
* `reaction` (Reaction): The reaction object.
* `reactionGroups` ([ReactionGroup!]): The reaction groups for the subject.
* `subject` (Reactable): The reactable subject.

## AddReactionInput - input object

Autogenerated input type of AddReaction.

### Input fields for `AddReactionInput`

* `clientMutationId` (String): A unique identifier for the client performing the mutation.
* `content` (ReactionContent!): The name of the emoji to react with.
* `subjectId` (ID!): The Node ID of the subject to modify.

## Reactable - interface

Represents a subject that can be reacted on.

### Fields for `Reactable`

* `databaseId` (Int): Identifies the primary key from the database.
* `id` (ID!): The Node ID of the Reactable object.
* `reactionGroups` ([ReactionGroup!]): A list of reactions grouped by content left on the subject.
* `reactions` (ReactionConnection!): A list of Reactions left on the Issue.
  * `after` (String): Returns the elements in the list that come after the specified cursor.
  * `before` (String): Returns the elements in the list that come before the specified cursor.
  * `content` (ReactionContent): Allows filtering Reactions by emoji.
  * `first` (Int): Returns the first n elements from the list.
  * `last` (Int): Returns the last n elements from the list.
  * `orderBy` (ReactionOrder): Allows specifying the order in which reactions are returned.

* `viewerCanReact` (Boolean!): Can user react to this subject.

### Implemented by

* CommitComment
* Discussion
* DiscussionComment
* Issue
* IssueComment
* PullRequest
* PullRequestReview
* PullRequestReviewComment
* Release
* TeamDiscussion
* TeamDiscussionComment

## Reaction - object

An emoji reaction to a particular piece of content.

**Implements:** Node

### Fields for `Reaction`

* `content` (ReactionContent!): Identifies the emoji reaction.
* `createdAt` (DateTime!): Identifies the date and time when the object was created.
* `databaseId` (Int): Identifies the primary key from the database.
* `id` (ID!): The Node ID of the Reaction object.
* `reactable` (Reactable!): The reactable piece of content.
* `user` (User): Identifies the user who created this reaction.

## ReactionConnection - object

A list of reactions that have been left on the subject.

### Fields for `ReactionConnection`

* `edges` ([ReactionEdge]): A list of edges.
* `nodes` ([Reaction]): A list of nodes.
* `pageInfo` (PageInfo!): Information to aid in pagination.
* `totalCount` (Int!): Identifies the total count of items in the connection.
* `viewerHasReacted` (Boolean!): Whether or not the authenticated user has left a reaction on the subject.

## ReactionContent - enum

Emojis that can be attached to Issues, Pull Requests and Comments.

### Values for `ReactionContent`

* `CONFUSED`: Represents the :confused: emoji.
* `EYES`: Represents the :eyes: emoji.
* `HEART`: Represents the :heart: emoji.
* `HOORAY`: Represents the :hooray: emoji.
* `LAUGH`: Represents the :laugh: emoji.
* `ROCKET`: Represents the :rocket: emoji.
* `THUMBS_DOWN`: Represents the :-1: emoji.
* `THUMBS_UP`: Represents the :+1: emoji.

## ReactionEdge - object

An edge in a connection.

### Fields for `ReactionEdge`

* `cursor` (String!): A cursor for use in pagination.
* `node` (Reaction): The item at the end of the edge.

## ReactionGroup - object

A group of emoji reactions to a particular piece of content.

### Fields for `ReactionGroup`

* `content` (ReactionContent!): Identifies the emoji reaction.
* `createdAt` (DateTime): Identifies when the reaction was created.
* `reactors` (ReactorConnection!): Reactors to the reaction subject with the emotion represented by this reaction group. _(Pagination: `after`, `before`, `first`, `last`)_
* `subject` (Reactable!): The subject that was reacted to.
* `users` (ReactingUserConnection!): Users who have reacted to the reaction subject with the emotion represented by this reaction group. **Deprecated:** Reactors can now be mannequins, bots, and organizations. Use the reactors field instead. Removal on 2021-10-01 UTC. _(Pagination: `after`, `before`, `first`, `last`)_
* `viewerHasReacted` (Boolean!): Whether or not the authenticated user has left a reaction on the subject.

## ReactionOrder - input object

Ways in which lists of reactions can be ordered upon return.

### Input fields for `ReactionOrder`

* `direction` (OrderDirection!): The direction in which to order reactions by the specified field.
* `field` (ReactionOrderField!): The field in which to order reactions by.

## ReactionOrderField - enum

A list of fields that reactions can be ordered by.

### Values for `ReactionOrderField`

* `CREATED_AT`: Allows ordering a list of reactions by when they were created.

## Reactor - union

Types that can be assigned to reactions.

### Possible types for `Reactor`

* Bot
* Mannequin
* Organization
* User

## ReactorConnection - object

The connection type for Reactor.

### Fields for `ReactorConnection`

* `edges` ([ReactorEdge]): A list of edges.
* `nodes` ([Reactor]): A list of nodes.
* `pageInfo` (PageInfo!): Information to aid in pagination.
* `totalCount` (Int!): Identifies the total count of items in the connection.

## ReactorEdge - object

Represents an author of a reaction.

### Fields for `ReactorEdge`

* `cursor` (String!): A cursor for use in pagination.
* `node` (Reactor!): The author of the reaction.
* `reactedAt` (DateTime!): The moment when the user made the reaction.

## removeReaction - mutation

Removes a reaction from a subject.

### Input fields for `removeReaction`

* `input` (RemoveReactionInput!): 

### Return fields for `removeReaction`

* `clientMutationId` (String): A unique identifier for the client performing the mutation.
* `reaction` (Reaction): The reaction object.
* `reactionGroups` ([ReactionGroup!]): The reaction groups for the subject.
* `subject` (Reactable): The reactable subject.

## RemoveReactionInput - input object

Autogenerated input type of RemoveReaction.

### Input fields for `RemoveReactionInput`

* `clientMutationId` (String): A unique identifier for the client performing the mutation.
* `content` (ReactionContent!): The name of the emoji reaction to remove.
* `subjectId` (ID!): The Node ID of the subject to modify.