mirror of
https://github.com/xuthus83/pigallery2.git
synced 2024-11-03 21:04:03 +08:00
40 lines
900 B
TypeScript
40 lines
900 B
TypeScript
import {MediaDTO} from './MediaDTO';
|
|
import {PhotoDTO} from './PhotoDTO';
|
|
|
|
export interface DirectoryDTO {
|
|
id: number;
|
|
name: string;
|
|
path: string;
|
|
lastModified: number;
|
|
lastScanned: number;
|
|
isPartial?: boolean;
|
|
parent: DirectoryDTO;
|
|
directories: Array<DirectoryDTO>;
|
|
media: MediaDTO[];
|
|
}
|
|
|
|
export module DirectoryDTO {
|
|
export const addReferences = (dir: DirectoryDTO): void => {
|
|
dir.media.forEach((photo: MediaDTO) => {
|
|
photo.directory = dir;
|
|
});
|
|
|
|
dir.directories.forEach((directory: DirectoryDTO) => {
|
|
addReferences(directory);
|
|
directory.parent = dir;
|
|
});
|
|
};
|
|
|
|
export const removeReferences = (dir: DirectoryDTO) => {
|
|
dir.media.forEach((photo: PhotoDTO) => {
|
|
photo.directory = null;
|
|
});
|
|
|
|
dir.directories.forEach((directory: DirectoryDTO) => {
|
|
removeReferences(directory);
|
|
directory.parent = null;
|
|
});
|
|
|
|
};
|
|
}
|