A social knowledge tool for researchers built on ATProto

refactor: use shared types in GetSimilarUrlsForUrlUseCase

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

Changed files
+6 -26
src
modules
search
application
domain
services
+5 -25
src/modules/search/application/useCases/queries/GetSimilarUrlsForUrlUseCase.ts
··· 4 4 import { AppError } from '../../../../../shared/core/AppError'; 5 5 import { URL } from '../../../../cards/domain/value-objects/URL'; 6 6 import { SearchService } from '../../../domain/services/SearchService'; 7 + import { GetSimilarUrlsForUrlParams } from '@semble/types/api/requests'; 8 + import { GetSimilarUrlsForUrlResponse, UrlView } from '@semble/types/api/responses'; 9 + import { Pagination } from '@semble/types/api/common'; 7 10 8 - export interface GetSimilarUrlsForUrlQuery { 9 - url: string; 11 + export interface GetSimilarUrlsForUrlQuery extends GetSimilarUrlsForUrlParams { 10 12 callingUserId?: string; 11 - page?: number; 12 - limit?: number; 13 - threshold?: number; 14 - } 15 - 16 - export interface UrlView { 17 - url: string; 18 - metadata: { 19 - url: string; 20 - title?: string; 21 - description?: string; 22 - author?: string; 23 - thumbnailUrl?: string; 24 - }; 25 - urlLibraryCount: number; 26 - urlInLibrary: boolean; 27 13 } 28 14 29 15 export interface GetSimilarUrlsForUrlResult { 30 16 urls: UrlView[]; 31 - pagination: { 32 - currentPage: number; 33 - totalPages: number; 34 - totalCount: number; 35 - hasMore: boolean; 36 - limit: number; 37 - }; 17 + pagination: Pagination; 38 18 } 39 19 40 20 export class ValidationError extends UseCaseError {
+1 -1
src/modules/search/domain/services/SearchService.ts
··· 3 3 import { IMetadataService } from '../../../cards/domain/services/IMetadataService'; 4 4 import { ICardQueryRepository } from '../../../cards/domain/ICardQueryRepository'; 5 5 import { IVectorDatabase, FindSimilarUrlsParams } from '../IVectorDatabase'; 6 - import { UrlView } from '../../application/useCases/queries/GetSimilarUrlsForUrlUseCase'; 6 + import { UrlView } from '@semble/types/api/responses'; 7 7 8 8 export class SearchService { 9 9 constructor(