Prosody: use the user nickname.

This commit is contained in:
John Livingston
2021-05-04 16:33:32 +02:00
parent deff34ab95
commit ad2d7742e9
3 changed files with 45 additions and 4 deletions

View File

@ -48,11 +48,39 @@ function getAuthUser ({ peertubeHelpers }: RegisterServerOptions, res: Response)
return res.locals.oauth?.token?.User
}
// FIXME: Peertube <= 3.1.0 has no way to obtain user nickname
async function getUserNickname ({ peertubeHelpers }: RegisterServerOptions, id: number): Promise<string | undefined> {
const logger = peertubeHelpers.logger
if (!Number.isInteger(id)) {
logger.error('getUserNickname: Invalid User Id, should be an integer')
return undefined
}
const [results] = await peertubeHelpers.database.query(`SELECT name FROM "account" WHERE "userId" = ${id}`)
if (!Array.isArray(results)) {
logger.error('getUserNickname: query result is not an array.')
return undefined
}
if (!results[0]) {
logger.error(`getUserNickname: no result for id ${id}`)
return undefined
}
if (typeof results[0] !== 'object') {
logger.error('getUserNickname: query result is not an object')
return undefined
}
if (!('name' in results[0])) {
logger.error('getUserNickname: no name field in result')
return undefined
}
return results[0].name as string
}
export {
getBaseRouter,
getBaseStaticRoute,
isUserAdmin,
getAuthUser,
getUserNickname,
pluginName,
pluginShortName
}