mirror of
https://github.com/immich-app/immich.git
synced 2025-01-21 03:02:44 +01:00
chore(server): remove getByDate from asset repo (#8211)
* remove getByDate * remove unused import
This commit is contained in:
parent
6e93ddf2f1
commit
604b8ff17c
4 changed files with 0 additions and 114 deletions
|
@ -139,7 +139,6 @@ export const IAssetRepository = 'IAssetRepository';
|
||||||
|
|
||||||
export interface IAssetRepository {
|
export interface IAssetRepository {
|
||||||
create(asset: AssetCreate): Promise<AssetEntity>;
|
create(asset: AssetCreate): Promise<AssetEntity>;
|
||||||
getByDate(ownerId: string, date: Date): Promise<AssetEntity[]>;
|
|
||||||
getByIds(
|
getByIds(
|
||||||
ids: string[],
|
ids: string[],
|
||||||
relations?: FindOptionsRelations<AssetEntity>,
|
relations?: FindOptionsRelations<AssetEntity>,
|
||||||
|
|
|
@ -1,81 +1,5 @@
|
||||||
-- NOTE: This file is auto generated by ./sql-generator
|
-- NOTE: This file is auto generated by ./sql-generator
|
||||||
|
|
||||||
-- AssetRepository.getByDate
|
|
||||||
SELECT
|
|
||||||
"AssetEntity"."id" AS "AssetEntity_id",
|
|
||||||
"AssetEntity"."deviceAssetId" AS "AssetEntity_deviceAssetId",
|
|
||||||
"AssetEntity"."ownerId" AS "AssetEntity_ownerId",
|
|
||||||
"AssetEntity"."libraryId" AS "AssetEntity_libraryId",
|
|
||||||
"AssetEntity"."deviceId" AS "AssetEntity_deviceId",
|
|
||||||
"AssetEntity"."type" AS "AssetEntity_type",
|
|
||||||
"AssetEntity"."originalPath" AS "AssetEntity_originalPath",
|
|
||||||
"AssetEntity"."resizePath" AS "AssetEntity_resizePath",
|
|
||||||
"AssetEntity"."webpPath" AS "AssetEntity_webpPath",
|
|
||||||
"AssetEntity"."thumbhash" AS "AssetEntity_thumbhash",
|
|
||||||
"AssetEntity"."encodedVideoPath" AS "AssetEntity_encodedVideoPath",
|
|
||||||
"AssetEntity"."createdAt" AS "AssetEntity_createdAt",
|
|
||||||
"AssetEntity"."updatedAt" AS "AssetEntity_updatedAt",
|
|
||||||
"AssetEntity"."deletedAt" AS "AssetEntity_deletedAt",
|
|
||||||
"AssetEntity"."fileCreatedAt" AS "AssetEntity_fileCreatedAt",
|
|
||||||
"AssetEntity"."localDateTime" AS "AssetEntity_localDateTime",
|
|
||||||
"AssetEntity"."fileModifiedAt" AS "AssetEntity_fileModifiedAt",
|
|
||||||
"AssetEntity"."isFavorite" AS "AssetEntity_isFavorite",
|
|
||||||
"AssetEntity"."isArchived" AS "AssetEntity_isArchived",
|
|
||||||
"AssetEntity"."isExternal" AS "AssetEntity_isExternal",
|
|
||||||
"AssetEntity"."isReadOnly" AS "AssetEntity_isReadOnly",
|
|
||||||
"AssetEntity"."isOffline" AS "AssetEntity_isOffline",
|
|
||||||
"AssetEntity"."checksum" AS "AssetEntity_checksum",
|
|
||||||
"AssetEntity"."duration" AS "AssetEntity_duration",
|
|
||||||
"AssetEntity"."isVisible" AS "AssetEntity_isVisible",
|
|
||||||
"AssetEntity"."livePhotoVideoId" AS "AssetEntity_livePhotoVideoId",
|
|
||||||
"AssetEntity"."originalFileName" AS "AssetEntity_originalFileName",
|
|
||||||
"AssetEntity"."sidecarPath" AS "AssetEntity_sidecarPath",
|
|
||||||
"AssetEntity"."stackId" AS "AssetEntity_stackId",
|
|
||||||
"AssetEntity__AssetEntity_exifInfo"."assetId" AS "AssetEntity__AssetEntity_exifInfo_assetId",
|
|
||||||
"AssetEntity__AssetEntity_exifInfo"."description" AS "AssetEntity__AssetEntity_exifInfo_description",
|
|
||||||
"AssetEntity__AssetEntity_exifInfo"."exifImageWidth" AS "AssetEntity__AssetEntity_exifInfo_exifImageWidth",
|
|
||||||
"AssetEntity__AssetEntity_exifInfo"."exifImageHeight" AS "AssetEntity__AssetEntity_exifInfo_exifImageHeight",
|
|
||||||
"AssetEntity__AssetEntity_exifInfo"."fileSizeInByte" AS "AssetEntity__AssetEntity_exifInfo_fileSizeInByte",
|
|
||||||
"AssetEntity__AssetEntity_exifInfo"."orientation" AS "AssetEntity__AssetEntity_exifInfo_orientation",
|
|
||||||
"AssetEntity__AssetEntity_exifInfo"."dateTimeOriginal" AS "AssetEntity__AssetEntity_exifInfo_dateTimeOriginal",
|
|
||||||
"AssetEntity__AssetEntity_exifInfo"."modifyDate" AS "AssetEntity__AssetEntity_exifInfo_modifyDate",
|
|
||||||
"AssetEntity__AssetEntity_exifInfo"."timeZone" AS "AssetEntity__AssetEntity_exifInfo_timeZone",
|
|
||||||
"AssetEntity__AssetEntity_exifInfo"."latitude" AS "AssetEntity__AssetEntity_exifInfo_latitude",
|
|
||||||
"AssetEntity__AssetEntity_exifInfo"."longitude" AS "AssetEntity__AssetEntity_exifInfo_longitude",
|
|
||||||
"AssetEntity__AssetEntity_exifInfo"."projectionType" AS "AssetEntity__AssetEntity_exifInfo_projectionType",
|
|
||||||
"AssetEntity__AssetEntity_exifInfo"."city" AS "AssetEntity__AssetEntity_exifInfo_city",
|
|
||||||
"AssetEntity__AssetEntity_exifInfo"."livePhotoCID" AS "AssetEntity__AssetEntity_exifInfo_livePhotoCID",
|
|
||||||
"AssetEntity__AssetEntity_exifInfo"."autoStackId" AS "AssetEntity__AssetEntity_exifInfo_autoStackId",
|
|
||||||
"AssetEntity__AssetEntity_exifInfo"."state" AS "AssetEntity__AssetEntity_exifInfo_state",
|
|
||||||
"AssetEntity__AssetEntity_exifInfo"."country" AS "AssetEntity__AssetEntity_exifInfo_country",
|
|
||||||
"AssetEntity__AssetEntity_exifInfo"."make" AS "AssetEntity__AssetEntity_exifInfo_make",
|
|
||||||
"AssetEntity__AssetEntity_exifInfo"."model" AS "AssetEntity__AssetEntity_exifInfo_model",
|
|
||||||
"AssetEntity__AssetEntity_exifInfo"."lensModel" AS "AssetEntity__AssetEntity_exifInfo_lensModel",
|
|
||||||
"AssetEntity__AssetEntity_exifInfo"."fNumber" AS "AssetEntity__AssetEntity_exifInfo_fNumber",
|
|
||||||
"AssetEntity__AssetEntity_exifInfo"."focalLength" AS "AssetEntity__AssetEntity_exifInfo_focalLength",
|
|
||||||
"AssetEntity__AssetEntity_exifInfo"."iso" AS "AssetEntity__AssetEntity_exifInfo_iso",
|
|
||||||
"AssetEntity__AssetEntity_exifInfo"."exposureTime" AS "AssetEntity__AssetEntity_exifInfo_exposureTime",
|
|
||||||
"AssetEntity__AssetEntity_exifInfo"."profileDescription" AS "AssetEntity__AssetEntity_exifInfo_profileDescription",
|
|
||||||
"AssetEntity__AssetEntity_exifInfo"."colorspace" AS "AssetEntity__AssetEntity_exifInfo_colorspace",
|
|
||||||
"AssetEntity__AssetEntity_exifInfo"."bitsPerSample" AS "AssetEntity__AssetEntity_exifInfo_bitsPerSample",
|
|
||||||
"AssetEntity__AssetEntity_exifInfo"."fps" AS "AssetEntity__AssetEntity_exifInfo_fps"
|
|
||||||
FROM
|
|
||||||
"assets" "AssetEntity"
|
|
||||||
LEFT JOIN "exif" "AssetEntity__AssetEntity_exifInfo" ON "AssetEntity__AssetEntity_exifInfo"."assetId" = "AssetEntity"."id"
|
|
||||||
WHERE
|
|
||||||
(
|
|
||||||
(
|
|
||||||
("AssetEntity"."ownerId" = $1)
|
|
||||||
AND ("AssetEntity"."isVisible" = $2)
|
|
||||||
AND ("AssetEntity"."isArchived" = $3)
|
|
||||||
AND (NOT ("AssetEntity"."resizePath" IS NULL))
|
|
||||||
AND ("AssetEntity"."fileCreatedAt" BETWEEN $4 AND $5)
|
|
||||||
)
|
|
||||||
)
|
|
||||||
AND ("AssetEntity"."deletedAt" IS NULL)
|
|
||||||
ORDER BY
|
|
||||||
"AssetEntity"."fileCreatedAt" DESC
|
|
||||||
|
|
||||||
-- AssetRepository.getByIds
|
-- AssetRepository.getByIds
|
||||||
SELECT
|
SELECT
|
||||||
"AssetEntity"."id" AS "AssetEntity_id",
|
"AssetEntity"."id" AS "AssetEntity_id",
|
||||||
|
|
|
@ -1,6 +1,5 @@
|
||||||
import { Injectable } from '@nestjs/common';
|
import { Injectable } from '@nestjs/common';
|
||||||
import { InjectRepository } from '@nestjs/typeorm';
|
import { InjectRepository } from '@nestjs/typeorm';
|
||||||
import { DateTime } from 'luxon';
|
|
||||||
import path from 'node:path';
|
import path from 'node:path';
|
||||||
import { Chunked, ChunkedArray, DummyValue, GenerateSql } from 'src/decorators';
|
import { Chunked, ChunkedArray, DummyValue, GenerateSql } from 'src/decorators';
|
||||||
import { AssetOrder } from 'src/entities/album.entity';
|
import { AssetOrder } from 'src/entities/album.entity';
|
||||||
|
@ -76,41 +75,6 @@ export class AssetRepository implements IAssetRepository {
|
||||||
return this.repository.save(asset);
|
return this.repository.save(asset);
|
||||||
}
|
}
|
||||||
|
|
||||||
@GenerateSql({ params: [DummyValue.UUID, DummyValue.DATE] })
|
|
||||||
getByDate(ownerId: string, date: Date): Promise<AssetEntity[]> {
|
|
||||||
// For reference of a correct approach although slower
|
|
||||||
|
|
||||||
// let builder = this.repository
|
|
||||||
// .createQueryBuilder('asset')
|
|
||||||
// .leftJoin('asset.exifInfo', 'exifInfo')
|
|
||||||
// .where('asset.ownerId = :ownerId', { ownerId })
|
|
||||||
// .andWhere(
|
|
||||||
// `coalesce(date_trunc('day', asset."fileCreatedAt", "exifInfo"."timeZone") at TIME ZONE "exifInfo"."timeZone", date_trunc('day', asset."fileCreatedAt")) IN (:date)`,
|
|
||||||
// { date },
|
|
||||||
// )
|
|
||||||
// .andWhere('asset.isVisible = true')
|
|
||||||
// .andWhere('asset.isArchived = false')
|
|
||||||
// .orderBy('asset.fileCreatedAt', 'DESC');
|
|
||||||
|
|
||||||
// return builder.getMany();
|
|
||||||
|
|
||||||
return this.repository.find({
|
|
||||||
where: {
|
|
||||||
ownerId,
|
|
||||||
isVisible: true,
|
|
||||||
isArchived: false,
|
|
||||||
resizePath: Not(IsNull()),
|
|
||||||
fileCreatedAt: OptionalBetween(date, DateTime.fromJSDate(date).plus({ day: 1 }).toJSDate()),
|
|
||||||
},
|
|
||||||
relations: {
|
|
||||||
exifInfo: true,
|
|
||||||
},
|
|
||||||
order: {
|
|
||||||
fileCreatedAt: 'DESC',
|
|
||||||
},
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
@GenerateSql({ params: [DummyValue.UUID, { day: 1, month: 1 }] })
|
@GenerateSql({ params: [DummyValue.UUID, { day: 1, month: 1 }] })
|
||||||
getByDayOfYear(ownerIds: string[], { day, month }: MonthDay): Promise<AssetEntity[]> {
|
getByDayOfYear(ownerIds: string[], { day, month }: MonthDay): Promise<AssetEntity[]> {
|
||||||
return this.repository
|
return this.repository
|
||||||
|
|
|
@ -5,7 +5,6 @@ export const newAssetRepositoryMock = (): jest.Mocked<IAssetRepository> => {
|
||||||
create: jest.fn(),
|
create: jest.fn(),
|
||||||
upsertExif: jest.fn(),
|
upsertExif: jest.fn(),
|
||||||
upsertJobStatus: jest.fn(),
|
upsertJobStatus: jest.fn(),
|
||||||
getByDate: jest.fn(),
|
|
||||||
getByDayOfYear: jest.fn(),
|
getByDayOfYear: jest.fn(),
|
||||||
getByIds: jest.fn().mockResolvedValue([]),
|
getByIds: jest.fn().mockResolvedValue([]),
|
||||||
getByIdsWithAllRelations: jest.fn().mockResolvedValue([]),
|
getByIdsWithAllRelations: jest.fn().mockResolvedValue([]),
|
||||||
|
|
Loading…
Reference in a new issue