Skip to main content

Friendship

Friendship

This module handles relationship between gamers of same application. Friendship is represented as a two way directed graph between the gamers.

info

Base Endpoint: /api/v1/friendship

Available Endpoints

1. Search for User

  • Method & PathGET /search
  • Description: Allows searching for users based on their display name.
  • Headers:
    • Authorization — Bearer token for user authentication.
  • Query Parameters:
    • displayName — The display name of the user to search for.
  • Response Body: An array of user search results, each containing:
    • id: Unique identifier of the user.
    • displayName: Display name of the user.
    • avatar: URL to the user's avatar image.

cURL Command

curl --request GET \
--url 'https://api.yarsaplay.com/api/v1/friendship/search?displayName=' \
--header 'Authorization: Bearer YOUR_SECRET_TOKEN'

Response Body

[
{
"avatar": "<string>",
"displayName": "<string>",
"id": "<uuid>"
},
{
"avatar": "<string>",
"displayName": "<string>",
"id": "<uuid>"
}
]

2. Send Friend Request

  • Method & Path: POST /
  • Description: Sends a friend request to another user.
  • Headers:
    • Authorization — Bearer token for user authentication.
  • Request Body:
    • target — Unique identifier of the target user to send a friend request to.
  • Response Body
    • ok — Boolean indicating the success of the operation.

cURL Command

curl --request POST \
--url https://api.yarsaplay.com/api/v1/friendship \
--header 'Authorization: Bearer YOUR_SECRET_TOKEN' \
--header 'Content-Type: application/json'

Response Body

{
"ok": <boolean>
}

3. Accept Friend Request

  • Method & Path: POST :friendshipId/accept
  • Description: Accepts a friend request from another user.
  • Headers:
    • Authorization — Bearer token for user authentication.
  • URL Parameters:
    • friendshipId — Unique identifier of the friendship relation.
  • Response Body:
    • ok — Boolean indicating the success of the operation.

cURL Command

curl --request POST \
--url https://api.yarsaplay.com/api/v1/friendship/__FRIENDSHIPID__/accept \
--header 'Authorization: Bearer YOUR_SECRET_TOKEN'

Response Body

{
"ok": <boolean>
}

4. Get Friend List

  • Method & Path: GET /
  • Description: Retrieves the list of friends for the authenticated user.
  • Headers:
    • Authorization — Bearer token for user authentication.
  • Response Body: An array of friend details, each containing:
    • id: Unique identifier of the friend.
    • displayName: Display name of the friend.
    • status: The status of the friendship (e.g., accepted).

cURL Command

curl --request GET \
--url https://api.yarsaplay.com/api/v1/friendship \
--header 'Authorization: Bearer YOUR_SECRET_TOKEN'

Response Body

[
{
"id": "<uuid>",
"status": "<string>",
"user": {
"avatar": "<string>",
"displayName": "<string>",
"id": "<uuid>"
}
},
{
"id": "<uuid>",
"status": "<string>",
"user": {
"avatar": "<string>",
"displayName": "<string>",
"id": "<uuid>"
}
}
]

5. Get Incoming Requests

  • Method & Path: GET /requests/incoming
  • Description: Retrieves incoming friend requests for the authenticated user.
  • Headers:
    • Authorization — Bearer token for user authentication.
  • Response Body: An array of incoming friend requests, each containing:
    • id: Unique identifier of the friend request.
    • from: Details of the user who sent the request.

cURL Command

curl --request GET \
--url https://api.yarsaplay.com/api/v1/friendship/requests/incoming \
--header 'Authorization: Bearer YOUR_SECRET_TOKEN'

Response Body

[
{
"id": "<uuid>",
"status": "<string>",
"user": {
"avatar": "<string>",
"displayName": "<string>",
"id": "<uuid>"
}
},
{
"id": "<uuid>",
"status": "<string>",
"user": {
"avatar": "<string>",
"displayName": "<string>",
"id": "<uuid>"
}
}
]

6. Get Outgoing Request

  • Method & Path: GET /requests/outgoing
  • Description: Retrieves incoming friend requests for the authenticated user.
  • Headers:
    • Authorization — Bearer token for user authentication.
  • Response Body: An array of incoming friend requests, each containing:
    • id: Unique identifier of the friend request.
    • to: Details of the user who sent the request.

cURL Command

curl --request GET \
--url https://api.yarsaplay.com/api/v1/friendship/requests/outgoing \
--header 'Authorization: Bearer YOUR_SECRET_TOKEN'

Response Body

[
{
"id": "<uuid>",
"status": "<string>",
"user": {
"avatar": "<string>",
"displayName": "<string>",
"id": "<uuid>"
}
},
{
"id": "<uuid>",
"status": "<string>",
"user": {
"avatar": "<string>",
"displayName": "<string>",
"id": "<uuid>"
}
}
]

7. Reject Incoming Request

  • Method & Path: DELETE /requests/incoming/:friendshipId
  • Description: Rejects an incoming friend request.
  • Headers:
    • Authorization — Bearer token for user authentication.
  • URL Parameters:
    • friendshipId — Unique identifier of the friendship relation.
  • Response Body:
    • ok — Boolean indicating the success of the operation.

cURL Command

curl --request DELETE \
--url https://api.yarsaplay.com/api/v1/friendship/requests/incoming/__FRIENDSHIPID__ \
--header 'Authorization: Bearer YOUR_SECRET_TOKEN'

Response Body

{
"ok": <boolean>
}

8. Cancel Outgoing Request

  • Method & Path: DELETE /requests/outgoing/:friendshipId
  • Description: Cancels an outgoing friend request.
  • Headers:
    • Authorization — Bearer token for user authentication.
  • URL Parameters:
    • friendshipId — Unique identifier of the friendship relation.
  • Response Body:
    • ok — Boolean indicating the success of the operation.

cURL Command

curl --request DELETE \
--url https://api.yarsaplay.com/api/v1/friendship/requests/outgoing/__FRIENDSHIPID__ \
--header 'Authorization: Bearer YOUR_SECRET_TOKEN'

Response Body

{
"ok": <boolean>
}

9. Unblock Gamer

  • Method & Path: DELETE /blocked/:friendshipId
  • Description: Unblocks a previously blocked user.
  • Headers:
    • Authorization — Bearer token for user authentication.
  • URL Parameters:
    • friendshipId — Unique identifier of the blocked relation.
  • Response Body:
    • ok — Boolean indicating the success of the operation.

cURL Command

curl --request DELETE \
--url https://api.yarsaplay.com/api/v1/friendship/blocked/__FRIENDSHIPID__ \
--header 'Authorization: Bearer YOUR_SECRET_TOKEN'

Response Body

{
"ok": <boolean>
}

10. Block Gamer

  • Method & Path: POST /block
  • Description: Blocks a user, preventing them from sending friend requests or messages.
  • Headers:
    • Authorization — Bearer token for user authentication.
  • Request Body:
    • target — Unique identifier of the user to block.
  • Response Body:
    • ok — Boolean indicating the success of the operation.

cURL Command

curl --request POST \
--url https://api.yarsaplay.com/api/v1/friendship/block \
--header 'Authorization: Bearer YOUR_SECRET_TOKEN' \
--header 'Content-Type: application/json'

Response Body

{
"ok": <boolean>
}

11. Unfriend a Gamer

  • Method & Path: DELETE /:friendshipId
  • Description: Removes a user from the friend list, effectively "unfriending" them.
  • Headers:
    • Authorization — Bearer token for user authentication.
  • URL Parameters:
    • friendshipId — Unique identifier of the friendship relation.
  • Response Body:
    • ok — Boolean indicating the success of the operation.

cURL Command

curl --request DELETE \
--url https://api.yarsaplay.com/api/v1/friendship/__FRIENDSHIPID__ \
--header 'Authorization: Bearer YOUR_SECRET_TOKEN'

Response Body

{
"ok": <boolean>
}

12. Get Blocked Gamer List

  • Method & Path: GET /blocked
  • Description: Retrieves a list of users that the authenticated user has blocked.
  • Headers: Authorization — Bearer token for user authentication.
  • Response Body: An array of blocked user details, each containing:
    • id: Unique identifier of the blocked user.
    • displayName: Display name of the blocked user.

cURL Command

curl --request GET \
--url https://api.yarsaplay.com/api/v1/friendship/blocked \
--header 'Authorization: Bearer YOUR_SECRET_TOKEN'

Response Body

[
{
"id": "<uuid>",
"toGamer": {
"avatar": "<string>",
"displayName": "<string>",
"id": "<uuid>"
}
},
{
"id": "<uuid>",
"toGamer": {
"avatar": "<string>",
"displayName": "<string>",
"id": "<uuid>"
}
}
]