mirror of
https://github.com/immich-app/immich.git
synced 2025-11-04 22:42:35 +09:00
feat(server): visibility column (#17939)
* feat: private view * pr feedback * sql generation * feat: visibility column * fix: set visibility value as the same as the still part after unlinked live photos * fix: test * pr feedback
This commit is contained in:
@@ -12,6 +12,7 @@ import {
|
||||
IsArray,
|
||||
IsBoolean,
|
||||
IsDate,
|
||||
IsEnum,
|
||||
IsHexColor,
|
||||
IsNotEmpty,
|
||||
IsOptional,
|
||||
@@ -29,6 +30,7 @@ import {
|
||||
import { CronJob } from 'cron';
|
||||
import { DateTime } from 'luxon';
|
||||
import sanitize from 'sanitize-filename';
|
||||
import { AssetVisibility } from 'src/enum';
|
||||
import { isIP, isIPRange } from 'validator';
|
||||
|
||||
@Injectable()
|
||||
@@ -146,6 +148,17 @@ export const ValidateDate = (options?: DateOptions) => {
|
||||
return applyDecorators(...decorators);
|
||||
};
|
||||
|
||||
type AssetVisibilityOptions = { optional?: boolean };
|
||||
export const ValidateAssetVisibility = (options?: AssetVisibilityOptions) => {
|
||||
const { optional } = { optional: false, ...options };
|
||||
const decorators = [IsEnum(AssetVisibility), ApiProperty({ enumName: 'AssetVisibility', enum: AssetVisibility })];
|
||||
|
||||
if (optional) {
|
||||
decorators.push(Optional());
|
||||
}
|
||||
return applyDecorators(...decorators);
|
||||
};
|
||||
|
||||
type BooleanOptions = { optional?: boolean };
|
||||
export const ValidateBoolean = (options?: BooleanOptions) => {
|
||||
const { optional } = { optional: false, ...options };
|
||||
|
||||
Reference in New Issue
Block a user