mirror of
https://git.mirrors.martin98.com/https://github.com/langgenius/dify.git
synced 2025-07-31 00:12:03 +08:00
fix: properly escape collectionName
in query string parameters (#14476)
This commit is contained in:
parent
ddf9eb1f9a
commit
002b16e1c6
16
web/service/_tools_util.spec.ts
Normal file
16
web/service/_tools_util.spec.ts
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
import { buildProviderQuery } from './_tools_util'
|
||||||
|
|
||||||
|
describe('makeProviderQuery', () => {
|
||||||
|
test('collectionName without special chars', () => {
|
||||||
|
expect(buildProviderQuery('ABC')).toBe('provider=ABC')
|
||||||
|
})
|
||||||
|
test('should escape &', () => {
|
||||||
|
expect(buildProviderQuery('ABC&DEF')).toBe('provider=ABC%26DEF')
|
||||||
|
})
|
||||||
|
test('should escape /', () => {
|
||||||
|
expect(buildProviderQuery('ABC/DEF')).toBe('provider=ABC%2FDEF')
|
||||||
|
})
|
||||||
|
test('should escape ?', () => {
|
||||||
|
expect(buildProviderQuery('ABC?DEF')).toBe('provider=ABC%3FDEF')
|
||||||
|
})
|
||||||
|
})
|
5
web/service/_tools_util.ts
Normal file
5
web/service/_tools_util.ts
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
export const buildProviderQuery = (collectionName: string): string => {
|
||||||
|
const query = new URLSearchParams()
|
||||||
|
query.set('provider', collectionName)
|
||||||
|
return query.toString()
|
||||||
|
}
|
@ -10,6 +10,7 @@ import type {
|
|||||||
} from '@/app/components/tools/types'
|
} from '@/app/components/tools/types'
|
||||||
import type { ToolWithProvider } from '@/app/components/workflow/types'
|
import type { ToolWithProvider } from '@/app/components/workflow/types'
|
||||||
import type { Label } from '@/app/components/tools/labels/constant'
|
import type { Label } from '@/app/components/tools/labels/constant'
|
||||||
|
import { buildProviderQuery } from './_tools_util'
|
||||||
|
|
||||||
export const fetchCollectionList = () => {
|
export const fetchCollectionList = () => {
|
||||||
return get<Collection[]>('/workspaces/current/tool-providers')
|
return get<Collection[]>('/workspaces/current/tool-providers')
|
||||||
@ -24,11 +25,13 @@ export const fetchBuiltInToolList = (collectionName: string) => {
|
|||||||
}
|
}
|
||||||
|
|
||||||
export const fetchCustomToolList = (collectionName: string) => {
|
export const fetchCustomToolList = (collectionName: string) => {
|
||||||
return get<Tool[]>(`/workspaces/current/tool-provider/api/tools?provider=${collectionName}`)
|
const query = buildProviderQuery(collectionName)
|
||||||
|
return get<Tool[]>(`/workspaces/current/tool-provider/api/tools?${query}`)
|
||||||
}
|
}
|
||||||
|
|
||||||
export const fetchModelToolList = (collectionName: string) => {
|
export const fetchModelToolList = (collectionName: string) => {
|
||||||
return get<Tool[]>(`/workspaces/current/tool-provider/model/tools?provider=${collectionName}`)
|
const query = buildProviderQuery(collectionName)
|
||||||
|
return get<Tool[]>(`/workspaces/current/tool-provider/model/tools?${query}`)
|
||||||
}
|
}
|
||||||
|
|
||||||
export const fetchWorkflowToolList = (appID: string) => {
|
export const fetchWorkflowToolList = (appID: string) => {
|
||||||
@ -65,7 +68,8 @@ export const parseParamsSchema = (schema: string) => {
|
|||||||
}
|
}
|
||||||
|
|
||||||
export const fetchCustomCollection = (collectionName: string) => {
|
export const fetchCustomCollection = (collectionName: string) => {
|
||||||
return get<CustomCollectionBackend>(`/workspaces/current/tool-provider/api/get?provider=${collectionName}`)
|
const query = buildProviderQuery(collectionName)
|
||||||
|
return get<CustomCollectionBackend>(`/workspaces/current/tool-provider/api/get?${query}`)
|
||||||
}
|
}
|
||||||
|
|
||||||
export const createCustomCollection = (collection: CustomCollectionBackend) => {
|
export const createCustomCollection = (collection: CustomCollectionBackend) => {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user