diff --git a/packages/api/src/events/user/user_created.ts b/packages/api/src/events/user/user_created.ts index eb882c39b..25c5e15cc 100644 --- a/packages/api/src/events/user/user_created.ts +++ b/packages/api/src/events/user/user_created.ts @@ -4,7 +4,6 @@ import { InsertEvent, } from 'typeorm' import { Profile } from '../../entity/profile' -import { env } from '../../env' import { createPubSubClient } from '../../pubsub' import { addPopularReadsForNewUser } from '../../services/popular_reads' import { IntercomClient } from '../../utils/intercom' diff --git a/packages/api/src/resolvers/recommendations/index.ts b/packages/api/src/resolvers/recommendations/index.ts index 95f8585f2..d3062dc5d 100644 --- a/packages/api/src/resolvers/recommendations/index.ts +++ b/packages/api/src/resolvers/recommendations/index.ts @@ -283,9 +283,9 @@ export const recommendHighlightsResolver = authorized< { id: group.id, note: input.note, - recommender: user, + recommender: { id: uid }, createdAt: new Date(), - libraryItem: item, + libraryItem: { id: item.id }, }, auth, input.highlightIds diff --git a/packages/api/src/services/recommendation.ts b/packages/api/src/services/recommendation.ts index cd5558b97..85197f302 100644 --- a/packages/api/src/services/recommendation.ts +++ b/packages/api/src/services/recommendation.ts @@ -16,21 +16,6 @@ export const addRecommendation = async ( try { // check if the item is already recommended to the group let recommendedItem = await findLibraryItemByUrl(item.originalUrl, userId) - // if (existingItem) { - // const existingHighlights = existingItem.highlights || [] - - // // remove duplicates - // const newHighlights = - // highlights?.filter( - // (highlight) => - // !existingHighlights.find( - // (existingHighlight) => existingHighlight.quote === highlight.quote - // ) - // ) || [] - - // return existingItem - // } - if (!recommendedItem) { // create a new item const newItem: DeepPartial = { @@ -103,6 +88,6 @@ export const findRecommendationsByLibraryItemId = async ( relations: { group: true, recommender: true, - } + }, }) } diff --git a/packages/db/migrations/0129.do.add_recommender_names_to_library_item.sql b/packages/db/migrations/0129.do.add_recommender_names_to_library_item.sql index 68f5b20d2..bf1d8597a 100755 --- a/packages/db/migrations/0129.do.add_recommender_names_to_library_item.sql +++ b/packages/db/migrations/0129.do.add_recommender_names_to_library_item.sql @@ -4,33 +4,33 @@ BEGIN; -ALTER TABLE omnivore.library_item ADD COLUMN recommender_names text[] DEFAULT '{}'::text[]; +ALTER TABLE omnivore.library_item ADD COLUMN IF NOT EXISTS recommender_names text[] DEFAULT '{}'::text[]; CREATE OR REPLACE FUNCTION update_library_item_recommenders() RETURNS trigger AS $$ BEGIN -- update library_item recommender names from user and group table name column UPDATE omnivore.library_item - SET recommender_names = ( + SET recommender_names = array_cat(recommender_names, ( SELECT array_agg(DISTINCT name) FROM ( SELECT name FROM omnivore.user - WHERE id = NEW.user_id + WHERE id = NEW.recommender_id UNION SELECT name FROM omnivore.group WHERE id = NEW.group_id ) AS recommender_names - ) + )) WHERE id = NEW.library_item_id; - return NEW; + RETURN NEW; END; $$ LANGUAGE plpgsql; CREATE TRIGGER library_item_recommenders_update -AFTER INSERT ON omnivore.recommendation +BEFORE INSERT ON omnivore.recommendation FOR EACH ROW EXECUTE FUNCTION update_library_item_recommenders();