Add getPollVotes for a message (#115)
* Add getPollVotes for a message * Add swagger.json * CR fixes --------- Co-authored-by: nir <nir@severin>
This commit is contained in:
parent
c6c746afbc
commit
6894b8ecd6
3 changed files with 143 additions and 3 deletions
|
|
@ -187,7 +187,6 @@ const downloadMediaAsData = async (req, res) => {
|
||||||
* @param {string} req.body.messageId - The ID of the message to forward.
|
* @param {string} req.body.messageId - The ID of the message to forward.
|
||||||
* @param {string} req.body.chatId - The ID of the chat that contains the message to forward.
|
* @param {string} req.body.chatId - The ID of the chat that contains the message to forward.
|
||||||
* @param {string} req.body.destinationChatId - The ID of the chat to forward the message to.
|
* @param {string} req.body.destinationChatId - The ID of the chat to forward the message to.
|
||||||
* @param {string} req.params.sessionId - The ID of the session to use the Telegram API with.
|
|
||||||
* @param {Object} res - The response object to be sent back to the client.
|
* @param {Object} res - The response object to be sent back to the client.
|
||||||
* @returns {Object} - The response object with a JSON body containing the result of the forward operation.
|
* @returns {Object} - The response object with a JSON body containing the result of the forward operation.
|
||||||
* @throws Will throw an error if the message is not found or if there is an error during the forward operation.
|
* @throws Will throw an error if the message is not found or if there is an error during the forward operation.
|
||||||
|
|
@ -239,7 +238,6 @@ const forward = async (req, res) => {
|
||||||
* @param {Object} req.body - The body of the request object.
|
* @param {Object} req.body - The body of the request object.
|
||||||
* @param {string} req.body.messageId - The ID of the message to get information about.
|
* @param {string} req.body.messageId - The ID of the message to get information about.
|
||||||
* @param {string} req.body.chatId - The ID of the chat that contains the message to get information about.
|
* @param {string} req.body.chatId - The ID of the chat that contains the message to get information about.
|
||||||
* @param {string} req.params.sessionId - The ID of the session to use the Telegram API with.
|
|
||||||
* @param {Object} res - The response object to be sent back to the client.
|
* @param {Object} res - The response object to be sent back to the client.
|
||||||
* @returns {Object} - The response object with a JSON body containing the information about the message.
|
* @returns {Object} - The response object with a JSON body containing the information about the message.
|
||||||
* @throws Will throw an error if the message is not found or if there is an error during the get info operation.
|
* @throws Will throw an error if the message is not found or if there is an error during the get info operation.
|
||||||
|
|
@ -716,7 +714,7 @@ const edit = async (req, res) => {
|
||||||
* @param {string} req.params.sessionId - The session ID.
|
* @param {string} req.params.sessionId - The session ID.
|
||||||
* @param {string} req.body.messageId - The message ID.
|
* @param {string} req.body.messageId - The message ID.
|
||||||
* @param {string} req.body.chatId - The chat ID.
|
* @param {string} req.body.chatId - The chat ID.
|
||||||
* @returns {Promise} A Promise that resolves with the result of the message.getReactions() call.
|
* @returns {Promise} A Promise that resolves with the result of the message.getContact() call.
|
||||||
* @throws {Error} If message is not found, it throws an error with the message "Message not found".
|
* @throws {Error} If message is not found, it throws an error with the message "Message not found".
|
||||||
*/
|
*/
|
||||||
const getContact = async (req, res) => {
|
const getContact = async (req, res) => {
|
||||||
|
|
@ -735,6 +733,36 @@ const getContact = async (req, res) => {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gets vote results for a message with a poll.
|
||||||
|
* @async
|
||||||
|
* @function getPollVotes
|
||||||
|
* @param {Object} req - The request object received by the server.
|
||||||
|
* @param {Object} req.body - The body of the request object.
|
||||||
|
* @param {string} req.body.messageId - The ID of the message to get information about.
|
||||||
|
* @param {string} req.body.chatId - The ID of the chat that contains the message to get information about.
|
||||||
|
* @param {Object} res - The response object to be sent back to the client.
|
||||||
|
* @returns {Object} - The response object with a JSON body containing the poll results.
|
||||||
|
* @throws Will throw an error if the message is not found or if there is an error during the get poll votes operation.
|
||||||
|
*/
|
||||||
|
const getPollVotes = async (req, res) => {
|
||||||
|
/*
|
||||||
|
#swagger.summary = 'Get poll vote results for a message with a poll'
|
||||||
|
#swagger.description = 'May return null if the message does not exist or is not a poll.'
|
||||||
|
*/
|
||||||
|
try {
|
||||||
|
const { messageId, chatId } = req.body
|
||||||
|
const client = sessions.get(req.params.sessionId)
|
||||||
|
const message = await _getMessageById(client, messageId, chatId)
|
||||||
|
if (!message) { throw new Error('Message not found') }
|
||||||
|
const votes = await message.getPollVotes()
|
||||||
|
res.json({ success: true, votes })
|
||||||
|
} catch (error) {
|
||||||
|
sendErrorResponse(res, 500, error.message)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Executes a method on the message associated with the given sessionId.
|
* Executes a method on the message associated with the given sessionId.
|
||||||
*
|
*
|
||||||
|
|
@ -816,5 +844,6 @@ module.exports = {
|
||||||
getGroupMentions,
|
getGroupMentions,
|
||||||
edit,
|
edit,
|
||||||
getContact,
|
getContact,
|
||||||
|
getPollVotes,
|
||||||
runMethod
|
runMethod
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -201,6 +201,7 @@ messageRouter.post('/getReactions/:sessionId', [middleware.sessionNameValidation
|
||||||
messageRouter.post('/getGroupMentions/:sessionId', [middleware.sessionNameValidation, middleware.sessionValidation], messageController.getGroupMentions)
|
messageRouter.post('/getGroupMentions/:sessionId', [middleware.sessionNameValidation, middleware.sessionValidation], messageController.getGroupMentions)
|
||||||
messageRouter.post('/edit/:sessionId', [middleware.sessionNameValidation, middleware.sessionValidation], messageController.edit)
|
messageRouter.post('/edit/:sessionId', [middleware.sessionNameValidation, middleware.sessionValidation], messageController.edit)
|
||||||
messageRouter.post('/getContact/:sessionId', [middleware.sessionNameValidation, middleware.sessionValidation], messageController.getContact)
|
messageRouter.post('/getContact/:sessionId', [middleware.sessionNameValidation, middleware.sessionValidation], messageController.getContact)
|
||||||
|
messageRouter.post('/getPollVotes/:sessionId', [middleware.sessionNameValidation, middleware.sessionValidation], messageController.getPollVotes)
|
||||||
messageRouter.post('/runMethod/:sessionId', [middleware.sessionNameValidation, middleware.sessionValidation], messageController.runMethod)
|
messageRouter.post('/runMethod/:sessionId', [middleware.sessionNameValidation, middleware.sessionValidation], messageController.runMethod)
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
||||||
110
swagger.json
110
swagger.json
|
|
@ -12017,6 +12017,116 @@
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"/message/getPollVotes/{sessionId}": {
|
||||||
|
"post": {
|
||||||
|
"tags": [
|
||||||
|
"Message"
|
||||||
|
],
|
||||||
|
"summary": "Get poll vote results for a message with a poll",
|
||||||
|
"description": "May return null if the message does not exist or is not a poll.",
|
||||||
|
"parameters": [
|
||||||
|
{
|
||||||
|
"name": "sessionId",
|
||||||
|
"in": "path",
|
||||||
|
"required": true,
|
||||||
|
"schema": {
|
||||||
|
"type": "string"
|
||||||
|
},
|
||||||
|
"description": "Unique identifier for the session (alphanumeric and - allowed)",
|
||||||
|
"example": "f8377d8d-a589-4242-9ba6-9486a04ef80c"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"responses": {
|
||||||
|
"200": {
|
||||||
|
"description": "OK"
|
||||||
|
},
|
||||||
|
"403": {
|
||||||
|
"description": "Forbidden.",
|
||||||
|
"content": {
|
||||||
|
"application/json": {
|
||||||
|
"schema": {
|
||||||
|
"$ref": "#/components/schemas/ForbiddenResponse"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"404": {
|
||||||
|
"description": "Not Found.",
|
||||||
|
"content": {
|
||||||
|
"application/json": {
|
||||||
|
"schema": {
|
||||||
|
"$ref": "#/components/schemas/NotFoundResponse"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"422": {
|
||||||
|
"description": "Unprocessable Entity.",
|
||||||
|
"content": {
|
||||||
|
"application/json": {
|
||||||
|
"schema": {
|
||||||
|
"$ref": "#/components/schemas/ErrorResponse"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"500": {
|
||||||
|
"description": "Server failure.",
|
||||||
|
"content": {
|
||||||
|
"application/json": {
|
||||||
|
"schema": {
|
||||||
|
"$ref": "#/components/schemas/ErrorResponse"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"security": [
|
||||||
|
{
|
||||||
|
"apiKeyAuth": []
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"requestBody": {
|
||||||
|
"required": true,
|
||||||
|
"content": {
|
||||||
|
"application/json": {
|
||||||
|
"schema": {
|
||||||
|
"type": "object",
|
||||||
|
"properties": {
|
||||||
|
"chatId": {
|
||||||
|
"type": "string",
|
||||||
|
"description": "The chat id which contains the message",
|
||||||
|
"example": "6281288888888@c.us"
|
||||||
|
},
|
||||||
|
"messageId": {
|
||||||
|
"type": "string",
|
||||||
|
"description": "Unique WhatsApp ID for the message",
|
||||||
|
"example": "ABCDEF999999999"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"application/xml": {
|
||||||
|
"schema": {
|
||||||
|
"type": "object",
|
||||||
|
"properties": {
|
||||||
|
"chatId": {
|
||||||
|
"type": "string",
|
||||||
|
"description": "The chat id which contains the message",
|
||||||
|
"example": "6281288888888@c.us"
|
||||||
|
},
|
||||||
|
"messageId": {
|
||||||
|
"type": "string",
|
||||||
|
"description": "Unique WhatsApp ID for the message",
|
||||||
|
"example": "ABCDEF999999999"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
"/message/runMethod/{sessionId}": {
|
"/message/runMethod/{sessionId}": {
|
||||||
"post": {
|
"post": {
|
||||||
"tags": [
|
"tags": [
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue