mirror of
https://github.com/immich-app/immich.git
synced 2025-05-24 01:12:58 -04:00
refactor: stop using geodata entity type (#17444)
This commit is contained in:
parent
b352cf3336
commit
8203b6c450
@ -4,8 +4,8 @@ import { IsEnum, IsInt, IsNotEmpty, IsString, Max, Min } from 'class-validator';
|
||||
import { PropertyLifecycle } from 'src/decorators';
|
||||
import { AlbumResponseDto } from 'src/dtos/album.dto';
|
||||
import { AssetResponseDto } from 'src/dtos/asset-response.dto';
|
||||
import { GeodataPlacesEntity } from 'src/entities/geodata-places.entity';
|
||||
import { AssetOrder, AssetType } from 'src/enum';
|
||||
import { SearchPlacesItem } from 'src/types';
|
||||
import { Optional, ValidateBoolean, ValidateDate, ValidateUUID } from 'src/validation';
|
||||
|
||||
class BaseSearchDto {
|
||||
@ -226,15 +226,16 @@ export class PlacesResponseDto {
|
||||
admin2name?: string;
|
||||
}
|
||||
|
||||
export function mapPlaces(place: GeodataPlacesEntity): PlacesResponseDto {
|
||||
export function mapPlaces(place: SearchPlacesItem): PlacesResponseDto {
|
||||
return {
|
||||
name: place.name,
|
||||
latitude: place.latitude,
|
||||
longitude: place.longitude,
|
||||
admin1name: place.admin1Name,
|
||||
admin2name: place.admin2Name,
|
||||
admin1name: place.admin1Name ?? undefined,
|
||||
admin2name: place.admin2Name ?? undefined,
|
||||
};
|
||||
}
|
||||
|
||||
export enum SearchSuggestionType {
|
||||
COUNTRY = 'country',
|
||||
STATE = 'state',
|
||||
|
@ -1,13 +0,0 @@
|
||||
export class GeodataPlacesEntity {
|
||||
id!: number;
|
||||
name!: string;
|
||||
longitude!: number;
|
||||
latitude!: number;
|
||||
countryCode!: string;
|
||||
admin1Code!: string;
|
||||
admin2Code!: string;
|
||||
admin1Name!: string;
|
||||
admin2Name!: string;
|
||||
alternateNames!: string;
|
||||
modificationDate!: Date;
|
||||
}
|
@ -5,7 +5,6 @@ import { randomUUID } from 'node:crypto';
|
||||
import { DB } from 'src/db';
|
||||
import { DummyValue, GenerateSql } from 'src/decorators';
|
||||
import { AssetEntity, searchAssetBuilder } from 'src/entities/asset.entity';
|
||||
import { GeodataPlacesEntity } from 'src/entities/geodata-places.entity';
|
||||
import { AssetStatus, AssetType } from 'src/enum';
|
||||
import { LoggingRepository } from 'src/repositories/logging.repository';
|
||||
import { anyUuid, asUuid } from 'src/utils/database';
|
||||
@ -372,7 +371,7 @@ export class SearchRepository {
|
||||
}
|
||||
|
||||
@GenerateSql({ params: [DummyValue.STRING] })
|
||||
searchPlaces(placeName: string): Promise<GeodataPlacesEntity[]> {
|
||||
searchPlaces(placeName: string) {
|
||||
return this.db
|
||||
.selectFrom('geodata_places')
|
||||
.selectAll()
|
||||
@ -395,7 +394,7 @@ export class SearchRepository {
|
||||
`,
|
||||
)
|
||||
.limit(20)
|
||||
.execute() as Promise<GeodataPlacesEntity[]>;
|
||||
.execute();
|
||||
}
|
||||
|
||||
@GenerateSql({ params: [[DummyValue.UUID]] })
|
||||
|
@ -16,6 +16,7 @@ import {
|
||||
import { ActivityRepository } from 'src/repositories/activity.repository';
|
||||
import { ApiKeyRepository } from 'src/repositories/api-key.repository';
|
||||
import { MemoryRepository } from 'src/repositories/memory.repository';
|
||||
import { SearchRepository } from 'src/repositories/search.repository';
|
||||
import { SessionRepository } from 'src/repositories/session.repository';
|
||||
|
||||
export type DeepPartial<T> = T extends object ? { [K in keyof T]?: DeepPartial<T[K]> } : T;
|
||||
@ -25,12 +26,15 @@ export type RepositoryInterface<T extends object> = Pick<T, keyof T>;
|
||||
type IActivityRepository = RepositoryInterface<ActivityRepository>;
|
||||
type IApiKeyRepository = RepositoryInterface<ApiKeyRepository>;
|
||||
type IMemoryRepository = RepositoryInterface<MemoryRepository>;
|
||||
type ISearchRepository = RepositoryInterface<SearchRepository>;
|
||||
type ISessionRepository = RepositoryInterface<SessionRepository>;
|
||||
|
||||
export type ActivityItem =
|
||||
| Awaited<ReturnType<IActivityRepository['create']>>
|
||||
| Awaited<ReturnType<IActivityRepository['search']>>[0];
|
||||
|
||||
export type SearchPlacesItem = Awaited<ReturnType<ISearchRepository['searchPlaces']>>[0];
|
||||
|
||||
export type ApiKeyItem =
|
||||
| Awaited<ReturnType<IApiKeyRepository['create']>>
|
||||
| NonNullable<Awaited<ReturnType<IApiKeyRepository['getById']>>>
|
||||
|
Loading…
x
Reference in New Issue
Block a user