fix recommendations not filtered correctly by rules
This commit is contained in:
@ -171,7 +171,7 @@ export const recommendResolver = authorized<
|
||||
member.user.id,
|
||||
item.id,
|
||||
{
|
||||
group: { id: group.id },
|
||||
group: { id: group.id, name: group.name },
|
||||
note: input.note,
|
||||
recommender: { id: uid },
|
||||
createdAt: new Date(),
|
||||
@ -278,11 +278,11 @@ export const recommendHighlightsResolver = authorized<
|
||||
member.user.id,
|
||||
item.id,
|
||||
{
|
||||
id: group.id,
|
||||
note: input.note,
|
||||
recommender: { id: uid },
|
||||
createdAt: new Date(),
|
||||
libraryItem: { id: item.id },
|
||||
group: { id: group.id, name: group.name },
|
||||
},
|
||||
auth,
|
||||
input.highlightIds
|
||||
|
||||
@ -259,7 +259,7 @@ export const createLabelAndRuleForGroup = async (
|
||||
},
|
||||
],
|
||||
// add a condition to check if the page is created
|
||||
filter: `event:created recommendedBy:"${groupName}"`,
|
||||
filter: `recommendedBy:"${groupName}"`,
|
||||
})
|
||||
|
||||
await Promise.all([addLabelPromise, sendNotificationPromise])
|
||||
|
||||
@ -1528,16 +1528,17 @@ export const filterItemEvents = (
|
||||
return event.id && ids.includes(event.id.toString())
|
||||
}
|
||||
case 'recommendedby': {
|
||||
if (lowercasedValue === '*') {
|
||||
// select all if * is provided
|
||||
return event.recommenderNames && event.recommenderNames.length > 0
|
||||
if (!event.recommenderNames) {
|
||||
return false
|
||||
}
|
||||
|
||||
return (
|
||||
event.recommenderNames &&
|
||||
(event.recommenderNames as string[]).some(
|
||||
(name) => name.toLowerCase() === lowercasedValue
|
||||
)
|
||||
if (lowercasedValue === '*') {
|
||||
// select all if * is provided
|
||||
return event.recommenderNames.length > 0
|
||||
}
|
||||
|
||||
return (event.recommenderNames as string[]).some(
|
||||
(name) => name.toLowerCase() === lowercasedValue
|
||||
)
|
||||
}
|
||||
case 'no':
|
||||
|
||||
@ -9,6 +9,7 @@ import {
|
||||
createOrUpdateLibraryItem,
|
||||
CreateOrUpdateLibraryItemArgs,
|
||||
findLibraryItemByUrl,
|
||||
updateLibraryItem,
|
||||
} from './library_item'
|
||||
|
||||
export const addRecommendation = async (
|
||||
@ -41,7 +42,7 @@ export const addRecommendation = async (
|
||||
uploadFile: item.uploadFile,
|
||||
wordCount: item.wordCount,
|
||||
publishedAt: item.publishedAt,
|
||||
recommenderNames: item.recommenderNames,
|
||||
recommenderNames: [recommendation.group?.name],
|
||||
}
|
||||
|
||||
recommendedItem = await createOrUpdateLibraryItem(newItem, userId)
|
||||
@ -66,6 +67,15 @@ export const addRecommendation = async (
|
||||
if (highlights) {
|
||||
await createHighlights(highlights, userId)
|
||||
}
|
||||
} else {
|
||||
// update the item
|
||||
await updateLibraryItem(
|
||||
recommendedItem.id,
|
||||
{
|
||||
recommenderNames: [recommendation.group?.name],
|
||||
},
|
||||
userId
|
||||
)
|
||||
}
|
||||
|
||||
await createRecommendation(
|
||||
|
||||
Reference in New Issue
Block a user