Flowise
1import { webCrawl, xmlScrape } from 'flowise-components'
2import { StatusCodes } from 'http-status-codes'
3import { InternalFlowiseError } from '../../errors/internalFlowiseError'
4import { getErrorMessage } from '../../errors/utils'
5
6const getAllLinks = async (requestUrl: string, relativeLinksMethod: string, queryLimit: string): Promise<any> => {
7try {
8const url = decodeURIComponent(requestUrl)
9if (!relativeLinksMethod) {
10throw new InternalFlowiseError(
11StatusCodes.INTERNAL_SERVER_ERROR,
12`Please choose a Relative Links Method in Additional Parameters!`
13)
14}
15const limit = parseInt(queryLimit)
16if (process.env.DEBUG === 'true') console.info(`Start ${relativeLinksMethod}`)
17const links: string[] = relativeLinksMethod === 'webCrawl' ? await webCrawl(url, limit) : await xmlScrape(url, limit)
18if (process.env.DEBUG === 'true') console.info(`Finish ${relativeLinksMethod}`)
19const dbResponse = {
20status: 'OK',
21links
22}
23return dbResponse
24} catch (error) {
25throw new InternalFlowiseError(
26StatusCodes.INTERNAL_SERVER_ERROR,
27`Error: fetchLinksService.getAllLinks - ${getErrorMessage(error)}`
28)
29}
30}
31
32export default {
33getAllLinks
34}
35