mirror of
https://github.com/Art051/immich.git
synced 2025-08-11 19:29:00 +00:00
chore(server): use absolute import paths (#8080)
update server to use absolute import paths
This commit is contained in:
@@ -1,42 +1,33 @@
|
||||
import { AssetEntity, AssetType } from '@app/infra/entities';
|
||||
import { BadRequestException, UnauthorizedException } from '@nestjs/common';
|
||||
import {
|
||||
IAccessRepositoryMock,
|
||||
assetStackStub,
|
||||
assetStub,
|
||||
authStub,
|
||||
faceStub,
|
||||
newAccessRepositoryMock,
|
||||
newAssetRepositoryMock,
|
||||
newAssetStackRepositoryMock,
|
||||
newCommunicationRepositoryMock,
|
||||
newJobRepositoryMock,
|
||||
newPartnerRepositoryMock,
|
||||
newStorageRepositoryMock,
|
||||
newSystemConfigRepositoryMock,
|
||||
newUserRepositoryMock,
|
||||
partnerStub,
|
||||
userStub,
|
||||
} from '@test';
|
||||
import { when } from 'jest-when';
|
||||
import { JobName } from '../job';
|
||||
import {
|
||||
AssetStats,
|
||||
ClientEvent,
|
||||
IAssetRepository,
|
||||
IAssetStackRepository,
|
||||
ICommunicationRepository,
|
||||
IJobRepository,
|
||||
IPartnerRepository,
|
||||
IStorageRepository,
|
||||
ISystemConfigRepository,
|
||||
IUserRepository,
|
||||
JobItem,
|
||||
TimeBucketSize,
|
||||
} from '../repositories';
|
||||
import { AssetService, UploadFieldName } from './asset.service';
|
||||
import { AssetJobName, AssetStatsResponseDto } from './dto';
|
||||
import { mapAsset } from './response-dto';
|
||||
import { AssetService, UploadFieldName } from 'src/domain/asset/asset.service';
|
||||
import { AssetJobName } from 'src/domain/asset/dto/asset-ids.dto';
|
||||
import { AssetStatsResponseDto } from 'src/domain/asset/dto/asset-statistics.dto';
|
||||
import { mapAsset } from 'src/domain/asset/response-dto/asset-response.dto';
|
||||
import { JobName } from 'src/domain/job/job.constants';
|
||||
import { IAssetStackRepository } from 'src/domain/repositories/asset-stack.repository';
|
||||
import { AssetStats, IAssetRepository, TimeBucketSize } from 'src/domain/repositories/asset.repository';
|
||||
import { ClientEvent, ICommunicationRepository } from 'src/domain/repositories/communication.repository';
|
||||
import { IJobRepository, JobItem } from 'src/domain/repositories/job.repository';
|
||||
import { IPartnerRepository } from 'src/domain/repositories/partner.repository';
|
||||
import { IStorageRepository } from 'src/domain/repositories/storage.repository';
|
||||
import { ISystemConfigRepository } from 'src/domain/repositories/system-config.repository';
|
||||
import { IUserRepository } from 'src/domain/repositories/user.repository';
|
||||
import { AssetEntity, AssetType } from 'src/infra/entities/asset.entity';
|
||||
import { assetStackStub, assetStub } from 'test/fixtures/asset.stub';
|
||||
import { authStub } from 'test/fixtures/auth.stub';
|
||||
import { faceStub } from 'test/fixtures/face.stub';
|
||||
import { partnerStub } from 'test/fixtures/partner.stub';
|
||||
import { userStub } from 'test/fixtures/user.stub';
|
||||
import { IAccessRepositoryMock, newAccessRepositoryMock } from 'test/repositories/access.repository.mock';
|
||||
import { newAssetStackRepositoryMock } from 'test/repositories/asset-stack.repository.mock';
|
||||
import { newAssetRepositoryMock } from 'test/repositories/asset.repository.mock';
|
||||
import { newCommunicationRepositoryMock } from 'test/repositories/communication.repository.mock';
|
||||
import { newJobRepositoryMock } from 'test/repositories/job.repository.mock';
|
||||
import { newPartnerRepositoryMock } from 'test/repositories/partner.repository.mock';
|
||||
import { newStorageRepositoryMock } from 'test/repositories/storage.repository.mock';
|
||||
import { newSystemConfigRepositoryMock } from 'test/repositories/system-config.repository.mock';
|
||||
import { newUserRepositoryMock } from 'test/repositories/user.repository.mock';
|
||||
|
||||
const stats: AssetStats = {
|
||||
[AssetType.IMAGE]: 10,
|
||||
|
||||
@@ -1,54 +1,43 @@
|
||||
import { AssetEntity, LibraryType } from '@app/infra/entities';
|
||||
import { ImmichLogger } from '@app/infra/logger';
|
||||
import { BadRequestException, Inject } from '@nestjs/common';
|
||||
import _ from 'lodash';
|
||||
import { DateTime, Duration } from 'luxon';
|
||||
import { extname } from 'node:path';
|
||||
import sanitize from 'sanitize-filename';
|
||||
import { AccessCore, Permission } from '../access';
|
||||
import { AuthDto } from '../auth';
|
||||
import { mimeTypes } from '../domain.constant';
|
||||
import { usePagination } from '../domain.util';
|
||||
import { IAssetDeletionJob, ISidecarWriteJob, JOBS_ASSET_PAGINATION_SIZE, JobName } from '../job';
|
||||
import {
|
||||
ClientEvent,
|
||||
IAccessRepository,
|
||||
IAssetRepository,
|
||||
IAssetStackRepository,
|
||||
ICommunicationRepository,
|
||||
IJobRepository,
|
||||
IPartnerRepository,
|
||||
IStorageRepository,
|
||||
ISystemConfigRepository,
|
||||
IUserRepository,
|
||||
JobItem,
|
||||
JobStatus,
|
||||
TimeBucketOptions,
|
||||
} from '../repositories';
|
||||
import { StorageCore, StorageFolder } from '../storage';
|
||||
import { SystemConfigCore } from '../system-config';
|
||||
import {
|
||||
AssetBulkDeleteDto,
|
||||
AssetBulkUpdateDto,
|
||||
AssetJobName,
|
||||
AssetJobsDto,
|
||||
AssetStatsDto,
|
||||
MapMarkerDto,
|
||||
MemoryLaneDto,
|
||||
TimeBucketAssetDto,
|
||||
TimeBucketDto,
|
||||
UpdateAssetDto,
|
||||
UpdateStackParentDto,
|
||||
mapStats,
|
||||
} from './dto';
|
||||
import { AccessCore, Permission } from 'src/domain/access/access.core';
|
||||
import { AssetJobName, AssetJobsDto } from 'src/domain/asset/dto/asset-ids.dto';
|
||||
import { UpdateStackParentDto } from 'src/domain/asset/dto/asset-stack.dto';
|
||||
import { AssetStatsDto, mapStats } from 'src/domain/asset/dto/asset-statistics.dto';
|
||||
import { AssetBulkDeleteDto, AssetBulkUpdateDto, UpdateAssetDto } from 'src/domain/asset/dto/asset.dto';
|
||||
import { MapMarkerDto } from 'src/domain/asset/dto/map-marker.dto';
|
||||
import { MemoryLaneDto } from 'src/domain/asset/dto/memory-lane.dto';
|
||||
import { TimeBucketAssetDto, TimeBucketDto } from 'src/domain/asset/dto/time-bucket.dto';
|
||||
import {
|
||||
AssetResponseDto,
|
||||
MapMarkerResponseDto,
|
||||
MemoryLaneResponseDto,
|
||||
SanitizedAssetResponseDto,
|
||||
TimeBucketResponseDto,
|
||||
mapAsset,
|
||||
} from './response-dto';
|
||||
} from 'src/domain/asset/response-dto/asset-response.dto';
|
||||
import { MapMarkerResponseDto } from 'src/domain/asset/response-dto/map-marker-response.dto';
|
||||
import { TimeBucketResponseDto } from 'src/domain/asset/response-dto/time-bucket-response.dto';
|
||||
import { AuthDto } from 'src/domain/auth/auth.dto';
|
||||
import { mimeTypes } from 'src/domain/domain.constant';
|
||||
import { usePagination } from 'src/domain/domain.util';
|
||||
import { JOBS_ASSET_PAGINATION_SIZE, JobName } from 'src/domain/job/job.constants';
|
||||
import { IAssetDeletionJob, ISidecarWriteJob } from 'src/domain/job/job.interface';
|
||||
import { IAccessRepository } from 'src/domain/repositories/access.repository';
|
||||
import { IAssetStackRepository } from 'src/domain/repositories/asset-stack.repository';
|
||||
import { IAssetRepository, TimeBucketOptions } from 'src/domain/repositories/asset.repository';
|
||||
import { ClientEvent, ICommunicationRepository } from 'src/domain/repositories/communication.repository';
|
||||
import { IJobRepository, JobItem, JobStatus } from 'src/domain/repositories/job.repository';
|
||||
import { IPartnerRepository } from 'src/domain/repositories/partner.repository';
|
||||
import { IStorageRepository } from 'src/domain/repositories/storage.repository';
|
||||
import { ISystemConfigRepository } from 'src/domain/repositories/system-config.repository';
|
||||
import { IUserRepository } from 'src/domain/repositories/user.repository';
|
||||
import { StorageCore, StorageFolder } from 'src/domain/storage/storage.core';
|
||||
import { SystemConfigCore } from 'src/domain/system-config/system-config.core';
|
||||
import { AssetEntity } from 'src/infra/entities/asset.entity';
|
||||
import { LibraryType } from 'src/infra/entities/library.entity';
|
||||
import { ImmichLogger } from 'src/infra/logger';
|
||||
|
||||
export enum UploadFieldName {
|
||||
ASSET_DATA = 'assetData',
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import { ApiProperty } from '@nestjs/swagger';
|
||||
import { IsEnum } from 'class-validator';
|
||||
import { ValidateUUID } from '../../domain.util';
|
||||
import { ValidateUUID } from 'src/domain/domain.util';
|
||||
|
||||
export class AssetIdsDto {
|
||||
@ValidateUUID({ each: true })
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import { ValidateUUID } from '../../domain.util';
|
||||
import { ValidateUUID } from 'src/domain/domain.util';
|
||||
|
||||
export class UpdateStackParentDto {
|
||||
@ValidateUUID()
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
import { AssetType } from '@app/infra/entities';
|
||||
import { ApiProperty } from '@nestjs/swagger';
|
||||
import { ValidateBoolean } from '../../domain.util';
|
||||
import { AssetStats } from '../../repositories';
|
||||
import { ValidateBoolean } from 'src/domain/domain.util';
|
||||
import { AssetStats } from 'src/domain/repositories/asset.repository';
|
||||
import { AssetType } from 'src/infra/entities/asset.entity';
|
||||
|
||||
export class AssetStatsDto {
|
||||
@ValidateBoolean({ optional: true })
|
||||
|
||||
@@ -9,8 +9,8 @@ import {
|
||||
IsString,
|
||||
ValidateIf,
|
||||
} from 'class-validator';
|
||||
import { Optional, ValidateBoolean, ValidateUUID } from '../../domain.util';
|
||||
import { BulkIdsDto } from '../response-dto';
|
||||
import { BulkIdsDto } from 'src/domain/asset/response-dto/asset-ids-response.dto';
|
||||
import { Optional, ValidateBoolean, ValidateUUID } from 'src/domain/domain.util';
|
||||
|
||||
export class DeviceIdDto {
|
||||
@IsNotEmpty()
|
||||
|
||||
@@ -1,7 +0,0 @@
|
||||
export * from './asset-ids.dto';
|
||||
export * from './asset-stack.dto';
|
||||
export * from './asset-statistics.dto';
|
||||
export * from './asset.dto';
|
||||
export * from './map-marker.dto';
|
||||
export * from './memory-lane.dto';
|
||||
export * from './time-bucket.dto';
|
||||
@@ -1,4 +1,4 @@
|
||||
import { ValidateBoolean, ValidateDate } from '../../domain.util';
|
||||
import { ValidateBoolean, ValidateDate } from 'src/domain/domain.util';
|
||||
|
||||
export class MapMarkerDto {
|
||||
@ValidateBoolean({ optional: true })
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
import { AssetOrder } from '@app/infra/entities';
|
||||
import { ApiProperty } from '@nestjs/swagger';
|
||||
import { IsEnum, IsNotEmpty, IsString } from 'class-validator';
|
||||
import { Optional, ValidateBoolean, ValidateUUID } from '../../domain.util';
|
||||
import { TimeBucketSize } from '../../repositories';
|
||||
import { Optional, ValidateBoolean, ValidateUUID } from 'src/domain/domain.util';
|
||||
import { TimeBucketSize } from 'src/domain/repositories/asset.repository';
|
||||
import { AssetOrder } from 'src/infra/entities/album.entity';
|
||||
|
||||
export class TimeBucketDto {
|
||||
@IsNotEmpty()
|
||||
|
||||
@@ -1,3 +0,0 @@
|
||||
export * from './asset.service';
|
||||
export * from './dto';
|
||||
export * from './response-dto';
|
||||
@@ -1,4 +1,4 @@
|
||||
import { ValidateUUID } from '../../domain.util';
|
||||
import { ValidateUUID } from 'src/domain/domain.util';
|
||||
|
||||
/** @deprecated Use `BulkIdResponseDto` instead */
|
||||
export enum AssetIdErrorReason {
|
||||
|
||||
@@ -1,11 +1,12 @@
|
||||
import { AuthDto } from '@app/domain/auth/auth.dto';
|
||||
import { AssetEntity, AssetFaceEntity, AssetType } from '@app/infra/entities';
|
||||
import { ApiProperty } from '@nestjs/swagger';
|
||||
import { PersonWithFacesResponseDto, mapFacesWithoutPerson, mapPerson } from '../../person/person.dto';
|
||||
import { TagResponseDto, mapTag } from '../../tag';
|
||||
import { UserResponseDto, mapUser } from '../../user/response-dto/user-response.dto';
|
||||
import { ExifResponseDto, mapExif } from './exif-response.dto';
|
||||
import { SmartInfoResponseDto, mapSmartInfo } from './smart-info-response.dto';
|
||||
import { ExifResponseDto, mapExif } from 'src/domain/asset/response-dto/exif-response.dto';
|
||||
import { SmartInfoResponseDto, mapSmartInfo } from 'src/domain/asset/response-dto/smart-info-response.dto';
|
||||
import { AuthDto } from 'src/domain/auth/auth.dto';
|
||||
import { PersonWithFacesResponseDto, mapFacesWithoutPerson, mapPerson } from 'src/domain/person/person.dto';
|
||||
import { TagResponseDto, mapTag } from 'src/domain/tag/tag-response.dto';
|
||||
import { UserResponseDto, mapUser } from 'src/domain/user/response-dto/user-response.dto';
|
||||
import { AssetFaceEntity } from 'src/infra/entities/asset-face.entity';
|
||||
import { AssetEntity, AssetType } from 'src/infra/entities/asset.entity';
|
||||
|
||||
export class SanitizedAssetResponseDto {
|
||||
id!: string;
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import { ExifEntity } from '@app/infra/entities';
|
||||
import { ApiProperty } from '@nestjs/swagger';
|
||||
import { ExifEntity } from 'src/infra/entities/exif.entity';
|
||||
|
||||
export class ExifResponseDto {
|
||||
make?: string | null = null;
|
||||
|
||||
@@ -1,6 +0,0 @@
|
||||
export * from './asset-ids-response.dto';
|
||||
export * from './asset-response.dto';
|
||||
export * from './exif-response.dto';
|
||||
export * from './map-marker-response.dto';
|
||||
export * from './smart-info-response.dto';
|
||||
export * from './time-bucket-response.dto';
|
||||
@@ -1,4 +1,4 @@
|
||||
import { SmartInfoEntity } from '@app/infra/entities';
|
||||
import { SmartInfoEntity } from 'src/infra/entities/smart-info.entity';
|
||||
|
||||
export class SmartInfoResponseDto {
|
||||
tags?: string[] | null;
|
||||
|
||||
Reference in New Issue
Block a user