mirror of
https://github.com/IT4Change/Ocelot-Social.git
synced 2025-12-13 07:45:56 +00:00
In the search field, if the first charater is '!', '@' or '#' it only shows results for posts, users or hastags with a limit of 15 in the dropdown
This commit is contained in:
parent
2544edcb29
commit
e03d209c45
@ -41,8 +41,6 @@ const searchPostsSetup = {
|
|||||||
shoutedCount: toString(size(shouter))
|
shoutedCount: toString(size(shouter))
|
||||||
}`,
|
}`,
|
||||||
limit: 'LIMIT $limit',
|
limit: 'LIMIT $limit',
|
||||||
countKeyName: 'postCount',
|
|
||||||
resultKeyName: 'posts',
|
|
||||||
}
|
}
|
||||||
|
|
||||||
const searchUsersSetup = {
|
const searchUsersSetup = {
|
||||||
@ -52,8 +50,6 @@ const searchUsersSetup = {
|
|||||||
withClause: '',
|
withClause: '',
|
||||||
returnClause: 'resource {.*, __typename: labels(resource)[0]}',
|
returnClause: 'resource {.*, __typename: labels(resource)[0]}',
|
||||||
limit: 'LIMIT $limit',
|
limit: 'LIMIT $limit',
|
||||||
countKeyName: 'userCount',
|
|
||||||
resultKeyName: 'users',
|
|
||||||
}
|
}
|
||||||
|
|
||||||
const searchHashtagsSetup = {
|
const searchHashtagsSetup = {
|
||||||
@ -63,8 +59,6 @@ const searchHashtagsSetup = {
|
|||||||
withClause: '',
|
withClause: '',
|
||||||
returnClause: 'resource {.*, __typename: labels(resource)[0]}',
|
returnClause: 'resource {.*, __typename: labels(resource)[0]}',
|
||||||
limit: 'LIMIT $limit',
|
limit: 'LIMIT $limit',
|
||||||
countKeyName: 'hashtagCount',
|
|
||||||
resultKeyName: 'hashtags',
|
|
||||||
}
|
}
|
||||||
|
|
||||||
const countSetup = {
|
const countSetup = {
|
||||||
@ -110,12 +104,11 @@ const getSearchResults = async (context, setup, params, resultCallback = searchR
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
|
||||||
const multiSearchMap = [
|
const multiSearchMap = [
|
||||||
{ symbol: '!', setup: searchPostsSetup, resultName: 'posts' },
|
{ symbol: '!', setup: searchPostsSetup, resultName: 'posts' },
|
||||||
{ symbol: '@', setup: searchUsersSetup, resultName: 'users' },
|
{ symbol: '@', setup: searchUsersSetup, resultName: 'users' },
|
||||||
{ symbol: '#', setup: searchHashtagsSetup, resultName: 'hashtags' },
|
{ symbol: '#', setup: searchHashtagsSetup, resultName: 'hashtags' },
|
||||||
] */
|
]
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
Query: {
|
Query: {
|
||||||
@ -184,35 +177,26 @@ export default {
|
|||||||
const { query, limit } = args
|
const { query, limit } = args
|
||||||
const { id: userId } = context.user
|
const { id: userId } = context.user
|
||||||
|
|
||||||
// const searchType = query.replace(/^([!@#]?).*$/, '$1')
|
const searchType = query.replace(/^([!@#]?).*$/, '$1')
|
||||||
// const searchString = query.replace(/^([!@#])/, '')
|
const searchString = query.replace(/^([!@#])/, '')
|
||||||
|
|
||||||
/*
|
|
||||||
const params = {
|
const params = {
|
||||||
query: queryString(searchString),
|
query: queryString(searchString),
|
||||||
skip: 0,
|
skip: 0,
|
||||||
limit,
|
limit,
|
||||||
userId,
|
userId,
|
||||||
} */
|
}
|
||||||
|
|
||||||
return [
|
if (searchType === '')
|
||||||
...(await getSearchResults(context, searchPostsSetup, {
|
return [
|
||||||
query: queryString(query),
|
...(await getSearchResults(context, searchPostsSetup, params)),
|
||||||
skip: 0,
|
...(await getSearchResults(context, searchUsersSetup, params)),
|
||||||
limit,
|
...(await getSearchResults(context, searchHashtagsSetup, params)),
|
||||||
userId,
|
]
|
||||||
})),
|
|
||||||
...(await getSearchResults(context, searchUsersSetup, {
|
params.limit = 15
|
||||||
query: queryString(query),
|
const type = multiSearchMap.find((obj) => obj.symbol === searchType)
|
||||||
skip: 0,
|
return getSearchResults(context, type.setup, params)
|
||||||
limit,
|
|
||||||
})),
|
|
||||||
...(await getSearchResults(context, searchHashtagsSetup, {
|
|
||||||
query: queryString(query),
|
|
||||||
skip: 0,
|
|
||||||
limit,
|
|
||||||
})),
|
|
||||||
]
|
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user