nexo/services/core/api/v4/source/bookmarks.yaml

291 lines
9.6 KiB
YAML

/api/v4/channels/{channel_id}/bookmarks:
get:
tags:
- bookmarks
summary: Get channel bookmarks for Channel
description: |
__Minimum server version__: 9.5
operationId: ListChannelBookmarksForChannel
parameters:
- name: channel_id
in: path
description: Channel GUID
required: true
schema:
type: string
- name: bookmarks_since
in: query
description: |
Timestamp to filter the bookmarks with. If set, the
endpoint returns bookmarks that have been added, updated
or deleted since its value
required: false
schema:
type: number
format: int64
responses:
"201":
description: Channel Bookmarks retrieval successful
content:
application/json:
schema:
type: array
items:
$ref: "#/components/schemas/ChannelBookmarkWithFileInfo"
"400":
$ref: "#/components/responses/BadRequest"
"401":
$ref: "#/components/responses/Unauthorized"
"403":
$ref: "#/components/responses/Forbidden"
post:
tags:
- bookmarks
summary: Create channel bookmark
description: |
Creates a new channel bookmark for this channel.
__Minimum server version__: 9.5
##### Permissions
Must have the `add_bookmark_public_channel` or
`add_bookmark_private_channel` depending on the channel
type. If the channel is a DM or GM, must be a non-guest
member.
operationId: CreateChannelBookmark
parameters:
- name: channel_id
in: path
description: Channel GUID
required: true
schema:
type: string
body:
requestBody:
content:
application/json:
schema:
type: object
required:
- display_name
- type
properties:
file_id:
type: string
description: The ID of the file associated with the channel bookmark. Required for bookmarks of type 'file'
display_name:
type: string
description: The name of the channel bookmark
link_url:
type: string
description: The URL associated with the channel bookmark. Required for bookmarks of type 'link'
image_url:
type: string
description: The URL of the image associated with the channel bookmark. Optional, only applies for bookmarks of type 'link'
emoji:
type: string
description: The emoji of the channel bookmark
type:
type: string
enum: [link, file]
description: |
* `link` for channel bookmarks that reference a link. `link_url` is requied
* `file` for channel bookmarks that reference a file. `file_id` is required
description: Channel Bookmark object to be created
required: true
responses:
"201":
description: Channel Bookmark creation successful
content:
application/json:
schema:
$ref: "#/components/schemas/ChannelBookmarkWithFileInfo"
"400":
$ref: "#/components/responses/BadRequest"
"401":
$ref: "#/components/responses/Unauthorized"
"403":
$ref: "#/components/responses/Forbidden"
/api/v4/channels/{channel_id}/bookmarks/{bookmark_id}:
patch:
tags:
- bookmarks
summary: Update channel bookmark
description: |
Partially update a channel bookmark by providing only the
fields you want to update. Ommited fields will not be
updated. The fields that can be updated are defined in the
request body, all other provided fields will be ignored.
__Minimum server version__: 9.5
##### Permissions
Must have the `edit_bookmark_public_channel` or
`edit_bookmark_private_channel` depending on the channel
type. If the channel is a DM or GM, must be a non-guest
member.
operationId: UpdateChannelBookmark
parameters:
- name: channel_id
in: path
description: Channel GUID
required: true
schema:
type: string
- name: bookmark_id
in: path
description: Bookmark GUID
required: true
schema:
type: string
body:
requestBody:
content:
application/json:
schema:
type: object
properties:
file_id:
type: string
description: The ID of the file associated with the channel bookmark. Required for bookmarks of type 'file'
display_name:
type: string
description: The name of the channel bookmark
sort_order:
type: integer
format: int64
description: The order of the channel bookmark
link_url:
type: string
description: The URL associated with the channel bookmark. Required for type bookmarks of type 'link'
image_url:
type: string
description: The URL of the image associated with the channel bookmark
emoji:
type: string
description: The emoji of the channel bookmark
type:
type: string
enum: [link, file]
description: |
* `link` for channel bookmarks that reference a link. `link_url` is requied
* `file` for channel bookmarks that reference a file. `file_id` is required
description: Channel Bookmark object to be updated
required: true
responses:
"200":
description: Channel Bookmark update successful
content:
application/json:
schema:
$ref: "#/components/schemas/UpdateChannelBookmarkResponse"
"400":
$ref: "#/components/responses/BadRequest"
"401":
$ref: "#/components/responses/Unauthorized"
"403":
$ref: "#/components/responses/Forbidden"
"404":
$ref: "#/components/responses/NotFound"
delete:
tags:
- bookmarks
summary: Delete channel bookmark
description: |
Archives a channel bookmark. This will set the `deleteAt` to
the current timestamp in the database.
__Minimum server version__: 9.5
##### Permissions
Must have the `delete_bookmark_public_channel` or
`delete_bookmark_private_channel` depending on the channel
type. If the channel is a DM or GM, must be a non-guest
member.
operationId: DeleteChannelBookmark
parameters:
- name: channel_id
in: path
description: Channel GUID
required: true
schema:
type: string
- name: bookmark_id
in: path
description: Bookmark GUID
required: true
schema:
type: string
responses:
"200":
description: Channel Bookmark deletion successful
content:
application/json:
schema:
$ref: "#/components/schemas/ChannelBookmarkWithFileInfo"
"400":
$ref: "#/components/responses/BadRequest"
"401":
$ref: "#/components/responses/Unauthorized"
"403":
$ref: "#/components/responses/Forbidden"
"404":
$ref: "#/components/responses/NotFound"
/api/v4/channels/{channel_id}/bookmarks/{bookmark_id}/sort_order:
post:
tags:
- bookmarks
summary: Update channel bookmark's order
description: |
Updates the order of a channel bookmark, setting its new order
from the parameters and updating the rest of the bookmarks of
the channel to accomodate for this change.
__Minimum server version__: 9.5
##### Permissions
Must have the `order_bookmark_public_channel` or
`order_bookmark_private_channel` depending on the channel
type. If the channel is a DM or GM, must be a non-guest
member.
operationId: UpdateChannelBookmarkSortOrder
parameters:
- name: channel_id
in: path
description: Channel GUID
required: true
schema:
type: string
- name: bookmark_id
in: path
description: Bookmark GUID
required: true
schema:
type: string
body:
requestBody:
content:
application/json:
schema:
type: number
format: int64
description: The new sort order for the Channel Bookmark
responses:
"200":
description: Channel Bookmark Sort Order update successful
content:
application/json:
schema:
type: array
items:
$ref: "#/components/schemas/ChannelBookmarkWithFileInfo"
"400":
$ref: "#/components/responses/BadRequest"
"401":
$ref: "#/components/responses/Unauthorized"
"403":
$ref: "#/components/responses/Forbidden"