diff --git a/src/modules/feeds/application/useCases/commands/AddActivityToFeedUseCase.ts b/src/modules/feeds/application/useCases/commands/AddActivityToFeedUseCase.ts index b7692d94..6b377249 100644 --- a/src/modules/feeds/application/useCases/commands/AddActivityToFeedUseCase.ts +++ b/src/modules/feeds/application/useCases/commands/AddActivityToFeedUseCase.ts @@ -6,7 +6,6 @@ import { CuratorId } from '../../../../cards/domain/value-objects/CuratorId'; import { CardId } from '../../../../cards/domain/value-objects/CardId'; import { CollectionId } from '../../../../cards/domain/value-objects/CollectionId'; import { ConnectionId } from '../../../../cards/domain/value-objects/ConnectionId'; -import { ActivityTypeEnum } from '../../../domain/value-objects/ActivityType'; import { FeedService } from 'src/modules/feeds/domain/services/FeedService'; import { ICardRepository } from '../../../../cards/domain/ICardRepository'; import { SourceTypeEnum } from '../../../domain/value-objects/SourceType'; @@ -17,6 +16,7 @@ import { FollowTargetType, FollowTargetTypeEnum, } from '../../../../user/domain/value-objects/FollowTargetType'; +import { ActivityType as ActivityTypeEnum } from '@semble/types'; export interface AddCardCollectedActivityDTO { type: ActivityTypeEnum.CARD_COLLECTED; diff --git a/src/modules/feeds/application/useCases/queries/GetFollowingFeedUseCase.ts b/src/modules/feeds/application/useCases/queries/GetFollowingFeedUseCase.ts index b642b2d4..992c45d6 100644 --- a/src/modules/feeds/application/useCases/queries/GetFollowingFeedUseCase.ts +++ b/src/modules/feeds/application/useCases/queries/GetFollowingFeedUseCase.ts @@ -4,7 +4,6 @@ import { UseCaseError } from '../../../../../shared/core/UseCaseError'; import { AppError } from '../../../../../shared/core/AppError'; import { IFeedRepository } from '../../../domain/IFeedRepository'; import { ActivityId } from '../../../domain/value-objects/ActivityId'; -import { ActivityTypeEnum } from '../../../domain/value-objects/ActivityType'; import { IProfileService } from '../../../../cards/domain/services/IProfileService'; import { ICardQueryRepository, @@ -28,6 +27,7 @@ import { CardCollectedMetadata, ConnectionCreatedMetadata, } from '../../../domain/FeedActivity'; +import { ActivityType as ActivityTypeEnum } from '@semble/types'; export interface GetFollowingFeedQuery { callingUserId: string; diff --git a/src/modules/feeds/application/useCases/queries/GetGlobalFeedUseCase.ts b/src/modules/feeds/application/useCases/queries/GetGlobalFeedUseCase.ts index f4fdb761..19aaca12 100644 --- a/src/modules/feeds/application/useCases/queries/GetGlobalFeedUseCase.ts +++ b/src/modules/feeds/application/useCases/queries/GetGlobalFeedUseCase.ts @@ -29,7 +29,7 @@ import { CardCollectedMetadata, ConnectionCreatedMetadata, } from '../../../domain/FeedActivity'; -import { ActivityTypeEnum } from 'src/modules/feeds/domain/value-objects/ActivityType'; +import { ActivityType as ActivityTypeEnum } from '@semble/types'; export interface GetGlobalFeedQuery { callingUserId?: string; diff --git a/src/modules/feeds/domain/FeedActivity.ts b/src/modules/feeds/domain/FeedActivity.ts index a73b0f38..985fa83d 100644 --- a/src/modules/feeds/domain/FeedActivity.ts +++ b/src/modules/feeds/domain/FeedActivity.ts @@ -2,12 +2,13 @@ import { Entity } from '../../../shared/domain/Entity'; import { UniqueEntityID } from '../../../shared/domain/UniqueEntityID'; import { Result, ok, err } from '../../../shared/core/Result'; import { ActivityId } from './value-objects/ActivityId'; -import { ActivityType, ActivityTypeEnum } from './value-objects/ActivityType'; +import { ActivityType } from './value-objects/ActivityType'; import { CuratorId } from '../../cards/domain/value-objects/CuratorId'; import { CardId } from '../../cards/domain/value-objects/CardId'; import { CollectionId } from '../../cards/domain/value-objects/CollectionId'; import { ConnectionId } from '../../cards/domain/value-objects/ConnectionId'; import { UrlType } from '../../cards/domain/value-objects/UrlType'; +import { ActivityType as ActivityTypeEnum } from '@semble/types'; export class ActivityValidationError extends Error { constructor(message: string) { diff --git a/src/modules/feeds/domain/value-objects/ActivityType.ts b/src/modules/feeds/domain/value-objects/ActivityType.ts index c8266847..149640a5 100644 --- a/src/modules/feeds/domain/value-objects/ActivityType.ts +++ b/src/modules/feeds/domain/value-objects/ActivityType.ts @@ -1,10 +1,8 @@ import { ValueObject } from '../../../../shared/domain/ValueObject'; import { Result, ok, err } from '../../../../shared/core/Result'; +import { ActivityType as ActivityTypeEnum } from '@semble/types'; -export enum ActivityTypeEnum { - CARD_COLLECTED = 'CARD_COLLECTED', - CONNECTION_CREATED = 'CONNECTION_CREATED', -} +export { ActivityTypeEnum }; interface ActivityTypeProps { value: ActivityTypeEnum; diff --git a/src/types/src/api/responses.ts b/src/types/src/api/responses.ts index b6c88ec8..bcf9d25d 100644 --- a/src/types/src/api/responses.ts +++ b/src/types/src/api/responses.ts @@ -197,6 +197,11 @@ export interface GenerateExtensionTokensResponse { } // Feed response types +export enum ActivityType { + CARD_COLLECTED = 'CARD_COLLECTED', + CONNECTION_CREATED = 'CONNECTION_CREATED', +} + export interface BaseFeedItem { id: string; user: User; @@ -204,13 +209,13 @@ export interface BaseFeedItem { } export interface CardCollectedFeedItem extends BaseFeedItem { - activityType: 'CARD_COLLECTED'; + activityType: ActivityType.CARD_COLLECTED; card: UrlCard; collections: Collection[]; } export interface ConnectionCreatedFeedItem extends BaseFeedItem { - activityType: 'CONNECTION_CREATED'; + activityType: ActivityType.CONNECTION_CREATED; connection: ConnectionWithSourceAndTarget; } diff --git a/src/webapp/api-client/clients/FeedClient.ts b/src/webapp/api-client/clients/FeedClient.ts index 669793e1..89f6b10d 100644 --- a/src/webapp/api-client/clients/FeedClient.ts +++ b/src/webapp/api-client/clients/FeedClient.ts @@ -17,6 +17,11 @@ export class FeedClient extends BaseClient { searchParams.set('beforeActivityId', params.beforeActivityId); if (params?.urlType) searchParams.set('urlType', params.urlType); if (params?.source) searchParams.set('source', params.source); + if (params?.activityTypes) { + params.activityTypes.forEach((type) => + searchParams.append('activityTypes', type), + ); + } const queryString = searchParams.toString(); const endpoint = queryString @@ -34,6 +39,11 @@ export class FeedClient extends BaseClient { if (params?.limit) searchParams.set('limit', params.limit.toString()); if (params?.urlType) searchParams.set('urlType', params.urlType); if (params?.source) searchParams.set('source', params.source); + if (params?.activityTypes) { + params.activityTypes.forEach((type) => + searchParams.append('activityTypes', type), + ); + } const queryString = searchParams.toString(); const endpoint = queryString @@ -53,6 +63,11 @@ export class FeedClient extends BaseClient { searchParams.set('beforeActivityId', params.beforeActivityId); if (params?.urlType) searchParams.set('urlType', params.urlType); if (params?.source) searchParams.set('source', params.source); + if (params?.activityTypes) { + params.activityTypes.forEach((type) => + searchParams.append('activityTypes', type), + ); + } const queryString = searchParams.toString(); const endpoint = queryString