1
0
mirror of https://github.com/xuthus83/pigallery2.git synced 2025-01-14 14:43:17 +08:00
pigallery2/common/entities/DirectoryDTO.ts

40 lines
900 B
TypeScript
Raw Normal View History

2018-11-04 19:28:32 +01:00
import {MediaDTO} from './MediaDTO';
2018-11-18 20:26:29 +01:00
import {PhotoDTO} from './PhotoDTO';
2016-12-27 20:55:51 +01:00
export interface DirectoryDTO {
id: number;
name: string;
path: string;
2017-07-19 20:47:09 +02:00
lastModified: number;
lastScanned: number;
2017-07-21 19:14:22 +02:00
isPartial?: boolean;
parent: DirectoryDTO;
directories: Array<DirectoryDTO>;
2018-11-04 19:28:32 +01:00
media: MediaDTO[];
}
2017-07-08 00:18:24 +02:00
2017-07-09 12:03:17 +02:00
export module DirectoryDTO {
export const addReferences = (dir: DirectoryDTO): void => {
2018-11-04 19:28:32 +01:00
dir.media.forEach((photo: MediaDTO) => {
2017-07-08 00:18:24 +02:00
photo.directory = dir;
});
dir.directories.forEach((directory: DirectoryDTO) => {
addReferences(directory);
directory.parent = dir;
});
};
2018-11-18 20:26:29 +01:00
export const removeReferences = (dir: DirectoryDTO) => {
dir.media.forEach((photo: PhotoDTO) => {
photo.directory = null;
});
dir.directories.forEach((directory: DirectoryDTO) => {
removeReferences(directory);
directory.parent = null;
});
};
2017-07-08 00:18:24 +02:00
}