chore: import upstream snapshot with attribution
This commit is contained in:
@@ -0,0 +1,51 @@
|
||||
import * as sdk from '@botpress/sdk'
|
||||
import * as uuid from 'uuid'
|
||||
import { logger } from './logger'
|
||||
import * as types from './types'
|
||||
|
||||
type Request = sdk.Request
|
||||
type Response = sdk.Response | void
|
||||
|
||||
const requestId = () => {
|
||||
const v4 = uuid.v4()
|
||||
const short = v4.substring(0, 8)
|
||||
return short
|
||||
}
|
||||
|
||||
export const debugRequest = (req: Request) => {
|
||||
const id = requestId()
|
||||
const headersSummary = req.headers ? `headers=${summarize(JSON.stringify(req.headers))}` : 'headers=empty'
|
||||
const bodySummary = req.body ? `body=${summarize(req.body)}` : 'body=empty'
|
||||
logger.info(`[${id}] Incoming request ${req.method} ${req.path} ${headersSummary} ${bodySummary}`)
|
||||
return id
|
||||
}
|
||||
|
||||
const summarize = (text: string, len = 400) => {
|
||||
return text.length > len ? `${text.substring(0, len)}...` : text
|
||||
}
|
||||
|
||||
export const debugResponse = (id: string, res: Response) => {
|
||||
if (!res) {
|
||||
logger.info(`[${id}] Outgoing response empty`)
|
||||
return
|
||||
}
|
||||
const headersSummary = res.headers ? `headers=${summarize(JSON.stringify(res.headers))}` : 'headers=empty'
|
||||
const bodySummary = res.body ? `body=${summarize(res.body)}` : 'body=empty'
|
||||
logger.info(`[${id}] Outgoing response ${res.status} ${headersSummary} ${bodySummary}`)
|
||||
}
|
||||
|
||||
export const debugSignal = (args: types.MessageArgs | types.ActionArgs) => {
|
||||
if ('input' in args) {
|
||||
logger.debug(
|
||||
`Sending signal conversationId=${args.input.conversationId} event=${summarize(
|
||||
JSON.stringify(args.input.payload)
|
||||
)} user=${args.ctx.botUserId}`
|
||||
)
|
||||
} else {
|
||||
logger.debug(
|
||||
`Sending signal conversationId=${args.conversation.id} message=${summarize(JSON.stringify(args.message))} user=${
|
||||
args.user.id
|
||||
}`
|
||||
)
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user