This repository has no description
0

Configure Feed

Select the types of activity you want to include in your feed.

refactor: simplify feed service and activity types to single card collected type

Co-authored-by: aider (anthropic/claude-sonnet-4-20250514) <aider@aider.chat>

+6 -46
+1 -4
src/modules/feeds/domain/FeedActivity.ts
··· 51 51 52 52 // Type guards for metadata 53 53 get cardCollected(): boolean { 54 - return ( 55 - this.props.type.value === ActivityTypeEnum.CARD_ADDED_TO_LIBRARY || 56 - this.props.type.value === ActivityTypeEnum.CARD_ADDED_TO_COLLECTION 57 - ); 54 + return this.props.type.value === ActivityTypeEnum.CARD_COLLECTED; 58 55 } 59 56 60 57 private constructor(props: ActivityProps, id?: UniqueEntityID) {
+2 -34
src/modules/feeds/domain/services/FeedService.ts
··· 16 16 export class FeedService implements DomainService { 17 17 constructor(private feedRepository: IFeedRepository) {} 18 18 19 - async addCardAddedToLibraryActivity( 20 - actorId: CuratorId, 21 - cardId: CardId, 22 - ): Promise<Result<FeedActivity, FeedServiceError>> { 23 - try { 24 - const activityResult = FeedActivity.createCardCollected(actorId, cardId); 25 - 26 - if (activityResult.isErr()) { 27 - return err(new FeedServiceError(activityResult.error.message)); 28 - } 29 - 30 - const activity = activityResult.value; 31 - const saveResult = await this.feedRepository.addActivity(activity); 32 - 33 - if (saveResult.isErr()) { 34 - return err( 35 - new FeedServiceError( 36 - `Failed to save activity: ${saveResult.error.message}`, 37 - ), 38 - ); 39 - } 40 - 41 - return ok(activity); 42 - } catch (error) { 43 - return err( 44 - new FeedServiceError( 45 - `Unexpected error: ${error instanceof Error ? error.message : 'Unknown error'}`, 46 - ), 47 - ); 48 - } 49 - } 50 - 51 - async addCardAddedToCollectionActivity( 19 + async addCardCollectedActivity( 52 20 actorId: CuratorId, 53 21 cardId: CardId, 54 - collectionIds: CollectionId[], 22 + collectionIds?: CollectionId[], 55 23 ): Promise<Result<FeedActivity, FeedServiceError>> { 56 24 try { 57 25 const activityResult = FeedActivity.createCardCollected(
+3 -8
src/modules/feeds/domain/value-objects/ActivityType.ts
··· 2 2 import { Result, ok, err } from '../../../../shared/core/Result'; 3 3 4 4 export enum ActivityTypeEnum { 5 - CARD_ADDED_TO_LIBRARY = 'CARD_ADDED_TO_LIBRARY', 6 - CARD_ADDED_TO_COLLECTION = 'CARD_ADDED_TO_COLLECTION', 5 + CARD_COLLECTED = 'CARD_COLLECTED', 7 6 } 8 7 9 8 interface ActivityTypeProps { ··· 26 25 return ok(new ActivityType({ value: type })); 27 26 } 28 27 29 - public static cardAddedToLibrary(): Result<ActivityType> { 30 - return this.create(ActivityTypeEnum.CARD_ADDED_TO_LIBRARY); 31 - } 32 - 33 - public static cardAddedToCollection(): Result<ActivityType> { 34 - return this.create(ActivityTypeEnum.CARD_ADDED_TO_COLLECTION); 28 + public static cardCollected(): Result<ActivityType> { 29 + return this.create(ActivityTypeEnum.CARD_COLLECTED); 35 30 } 36 31 }