feat: Add ability to resolve API channel conversations (#8348)

- Create a new endpoint to fetch a single conversation in client apis
- Create a new endpoint to resolve a single conversation in client apis
- Update swagger API definition to include missing endpoints

Fixes: #6329

Co-authored-by: Cristian Duta <Cristian.Duta@ti8m.ch>
This commit is contained in:
CristianDuta
2024-02-21 13:11:20 +01:00
committed by GitHub
parent cc47ccaa2c
commit ebae547a60
11 changed files with 298 additions and 4 deletions

View File

@@ -894,6 +894,149 @@
}
}
},
"/public/api/v1/inboxes/{inbox_identifier}/contacts/{contact_identifier}/conversations/{conversation_id}": {
"parameters": [
{
"$ref": "#/parameters/public_inbox_identifier"
},
{
"$ref": "#/parameters/public_contact_identifier"
},
{
"$ref": "#/parameters/conversation_id"
}
],
"get": {
"tags": [
"Conversations API"
],
"operationId": "get-single-conversation",
"summary": "Get a single conversation",
"description": "Retrieves the details of a specific conversation",
"responses": {
"200": {
"description": "Success",
"schema": {
"$ref": "#/definitions/public_conversation"
}
},
"401": {
"description": "Unauthorized"
},
"404": {
"description": "Conversation not found"
}
}
}
},
"/public/api/v1/inboxes/{inbox_identifier}/contacts/{contact_identifier}/conversations/{conversation_id}/toggle_status": {
"parameters": [
{
"$ref": "#/parameters/public_inbox_identifier"
},
{
"$ref": "#/parameters/public_contact_identifier"
},
{
"$ref": "#/parameters/conversation_id"
}
],
"post": {
"tags": [
"Conversations API"
],
"operationId": "resolve-conversation",
"summary": "Resolve a conversation",
"description": "Marks a conversation as resolved",
"responses": {
"200": {
"description": "Conversation resolved successfully",
"schema": {
"$ref": "#/definitions/public_conversation"
}
},
"401": {
"description": "Unauthorized"
},
"404": {
"description": "Conversation not found"
}
}
}
},
"/public/api/v1/inboxes/{inbox_identifier}/contacts/{contact_identifier}/conversations/{conversation_id}/toggle_typing": {
"parameters": [
{
"$ref": "#/parameters/public_inbox_identifier"
},
{
"$ref": "#/parameters/public_contact_identifier"
},
{
"$ref": "#/parameters/conversation_id"
}
],
"post": {
"tags": [
"Conversations API"
],
"operationId": "toggle-typing-status",
"summary": "Toggle typing status",
"description": "Toggles the typing status in a conversation",
"parameters": [
{
"name": "typing_status",
"in": "query",
"required": true,
"type": "string",
"description": "Typing status, either 'on' or 'off'"
}
],
"responses": {
"200": {
"description": "Typing status toggled successfully"
},
"401": {
"description": "Unauthorized"
},
"404": {
"description": "Conversation not found"
}
}
}
},
"/public/api/v1/inboxes/{inbox_identifier}/contacts/{contact_identifier}/conversations/{conversation_id}/update_last_seen": {
"parameters": [
{
"$ref": "#/parameters/public_inbox_identifier"
},
{
"$ref": "#/parameters/public_contact_identifier"
},
{
"$ref": "#/parameters/conversation_id"
}
],
"post": {
"tags": [
"Conversations API"
],
"operationId": "update-last-seen",
"summary": "Update last seen",
"description": "Updates the last seen time of the contact in a conversation",
"responses": {
"200": {
"description": "Last seen updated successfully"
},
"401": {
"description": "Unauthorized"
},
"404": {
"description": "Conversation not found"
}
}
}
},
"/public/api/v1/inboxes/{inbox_identifier}/contacts/{contact_identifier}/conversations/{conversation_id}/messages": {
"parameters": [
{