fix(server): library folder missing on new install (#2597)

This commit is contained in:
Jason Rasmussen 2023-05-28 21:48:07 -04:00 committed by GitHub
parent ffe397247e
commit caba462703
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 17 additions and 0 deletions

View file

@ -6,6 +6,7 @@ import {
MACHINE_LEARNING_ENABLED,
SearchService,
SERVER_VERSION,
StorageService,
} from '@app/domain';
import { RedisIoAdapter } from '@app/infra';
import { Logger } from '@nestjs/common';
@ -72,6 +73,8 @@ async function bootstrap() {
customSiteTitle: 'Immich API Documentation',
});
app.get(StorageService).init();
await app.listen(serverPort, () => {
if (process.env.NODE_ENV == 'development') {
// Generate API Documentation only in development mode

View file

@ -15,6 +15,13 @@ describe(StorageService.name, () => {
expect(sut).toBeDefined();
});
describe('init', () => {
it('should create the library folder on initialization', () => {
sut.init();
expect(storageMock.mkdirSync).toHaveBeenCalledWith('upload/library');
});
});
describe('handleDeleteFiles', () => {
it('should handle null values', async () => {
await sut.handleDeleteFiles({ files: [undefined, null] });

View file

@ -1,13 +1,20 @@
import { Inject, Injectable, Logger } from '@nestjs/common';
import { IDeleteFilesJob } from '../job';
import { StorageCore, StorageFolder } from './storage.core';
import { IStorageRepository } from './storage.repository';
@Injectable()
export class StorageService {
private logger = new Logger(StorageService.name);
private storageCore = new StorageCore();
constructor(@Inject(IStorageRepository) private storageRepository: IStorageRepository) {}
init() {
const libraryBase = this.storageCore.getBaseFolder(StorageFolder.LIBRARY);
this.storageRepository.mkdirSync(libraryBase);
}
async handleDeleteFiles(job: IDeleteFilesJob) {
const { files } = job;