0
Fork 0
mirror of https://github.com/immich-app/immich.git synced 2025-01-21 00:52:43 -05:00

chore(server): enable swagger to take class validator rules into account (#9022)

* enable swagger to take class validator rules into account

* chore: open api
This commit is contained in:
Daniel Dietzler 2024-04-23 00:13:44 +02:00 committed by GitHub
parent c9a079201a
commit 7f1651df71
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
15 changed files with 78 additions and 1 deletions

View file

@ -36,6 +36,7 @@ class CreateUserDto {
String password; String password;
/// Minimum value: 1
int? quotaSizeInBytes; int? quotaSizeInBytes;
/// ///

View file

@ -27,6 +27,7 @@ class DownloadInfoDto {
/// ///
String? albumId; String? albumId;
/// Minimum value: 1
/// ///
/// Please note: This property should have been non-nullable! Since the specification file /// Please note: This property should have been non-nullable! Since the specification file
/// does not include a default value (using the "default:" property), however, the generated /// does not include a default value (using the "default:" property), however, the generated

View file

@ -16,6 +16,7 @@ class JobSettingsDto {
required this.concurrency, required this.concurrency,
}); });
/// Minimum value: 1
int concurrency; int concurrency;
@override @override

View file

@ -260,6 +260,7 @@ class MetadataSearchDto {
/// ///
String? originalPath; String? originalPath;
/// Minimum value: 1
/// ///
/// Please note: This property should have been non-nullable! Since the specification file /// Please note: This property should have been non-nullable! Since the specification file
/// does not include a default value (using the "default:" property), however, the generated /// does not include a default value (using the "default:" property), however, the generated
@ -286,6 +287,8 @@ class MetadataSearchDto {
/// ///
String? resizePath; String? resizePath;
/// Minimum value: 1
/// Maximum value: 1000
/// ///
/// Please note: This property should have been non-nullable! Since the specification file /// Please note: This property should have been non-nullable! Since the specification file
/// does not include a default value (using the "default:" property), however, the generated /// does not include a default value (using the "default:" property), however, the generated

View file

@ -16,6 +16,7 @@ class OnThisDayDto {
required this.year, required this.year,
}); });
/// Minimum value: 1
num year; num year;
@override @override

View file

@ -23,10 +23,15 @@ class RecognitionConfig {
bool enabled; bool enabled;
/// Minimum value: 0
/// Maximum value: 2
double maxDistance; double maxDistance;
/// Minimum value: 1
int minFaces; int minFaces;
/// Minimum value: 0
/// Maximum value: 1
double minScore; double minScore;
String modelName; String modelName;

View file

@ -192,6 +192,7 @@ class SmartSearchDto {
/// ///
String? model; String? model;
/// Minimum value: 1
/// ///
/// Please note: This property should have been non-nullable! Since the specification file /// Please note: This property should have been non-nullable! Since the specification file
/// does not include a default value (using the "default:" property), however, the generated /// does not include a default value (using the "default:" property), however, the generated
@ -204,6 +205,8 @@ class SmartSearchDto {
String query; String query;
/// Minimum value: 1
/// Maximum value: 1000
/// ///
/// Please note: This property should have been non-nullable! Since the specification file /// Please note: This property should have been non-nullable! Since the specification file
/// does not include a default value (using the "default:" property), however, the generated /// does not include a default value (using the "default:" property), however, the generated

View file

@ -41,22 +41,30 @@ class SystemConfigFFmpegDto {
List<VideoCodec> acceptedVideoCodecs; List<VideoCodec> acceptedVideoCodecs;
/// Minimum value: -1
/// Maximum value: 16
int bframes; int bframes;
CQMode cqMode; CQMode cqMode;
/// Minimum value: 0
/// Maximum value: 51
int crf; int crf;
/// Minimum value: 0
int gopSize; int gopSize;
String maxBitrate; String maxBitrate;
/// Minimum value: 0
int npl; int npl;
String preferredHwDevice; String preferredHwDevice;
String preset; String preset;
/// Minimum value: 0
/// Maximum value: 6
int refs; int refs;
AudioCodec targetAudioCodec; AudioCodec targetAudioCodec;
@ -67,6 +75,7 @@ class SystemConfigFFmpegDto {
bool temporalAQ; bool temporalAQ;
/// Minimum value: 0
int threads; int threads;
ToneMapping tonemap; ToneMapping tonemap;

View file

@ -28,12 +28,16 @@ class SystemConfigImageDto {
ImageFormat previewFormat; ImageFormat previewFormat;
/// Minimum value: 1
int previewSize; int previewSize;
/// Minimum value: 1
/// Maximum value: 100
int quality; int quality;
ImageFormat thumbnailFormat; ImageFormat thumbnailFormat;
/// Minimum value: 1
int thumbnailSize; int thumbnailSize;
@override @override

View file

@ -39,6 +39,7 @@ class SystemConfigOAuthDto {
String clientSecret; String clientSecret;
/// Minimum value: 0
num defaultStorageQuota; num defaultStorageQuota;
bool enabled; bool enabled;

View file

@ -17,6 +17,7 @@ class SystemConfigTrashDto {
required this.enabled, required this.enabled,
}); });
/// Minimum value: 0
int days; int days;
bool enabled; bool enabled;

View file

@ -16,6 +16,7 @@ class SystemConfigUserDto {
required this.deleteDelay, required this.deleteDelay,
}); });
/// Minimum value: 1
int deleteDelay; int deleteDelay;
@override @override

View file

@ -75,6 +75,7 @@ class UpdateUserDto {
/// ///
String? password; String? password;
/// Minimum value: 1
int? quotaSizeInBytes; int? quotaSizeInBytes;
/// ///

View file

@ -1447,6 +1447,8 @@
"required": true, "required": true,
"in": "query", "in": "query",
"schema": { "schema": {
"minimum": 1,
"maximum": 31,
"type": "integer" "type": "integer"
} }
}, },
@ -1455,6 +1457,8 @@
"required": true, "required": true,
"in": "query", "in": "query",
"schema": { "schema": {
"minimum": 1,
"maximum": 12,
"type": "integer" "type": "integer"
} }
} }
@ -1499,6 +1503,7 @@
"required": false, "required": false,
"in": "query", "in": "query",
"schema": { "schema": {
"minimum": 1,
"type": "number" "type": "number"
} }
} }
@ -2086,6 +2091,7 @@
"required": false, "required": false,
"in": "query", "in": "query",
"schema": { "schema": {
"minimum": 1,
"type": "number" "type": "number"
} }
}, },
@ -2123,6 +2129,8 @@
"required": false, "required": false,
"in": "query", "in": "query",
"schema": { "schema": {
"minimum": 1,
"maximum": 1000,
"type": "number" "type": "number"
} }
}, },
@ -4456,6 +4464,7 @@
"required": false, "required": false,
"in": "query", "in": "query",
"schema": { "schema": {
"minimum": 1,
"type": "number" "type": "number"
} }
}, },
@ -4488,6 +4497,8 @@
"required": false, "required": false,
"in": "query", "in": "query",
"schema": { "schema": {
"minimum": 1,
"maximum": 1000,
"type": "number" "type": "number"
} }
}, },
@ -5622,6 +5633,7 @@
"required": true, "required": true,
"in": "query", "in": "query",
"schema": { "schema": {
"minimum": 1,
"type": "integer" "type": "integer"
} }
}, },
@ -8054,6 +8066,7 @@
"properties": { "properties": {
"newPassword": { "newPassword": {
"example": "password", "example": "password",
"minLength": 8,
"type": "string" "type": "string"
}, },
"password": { "password": {
@ -8286,6 +8299,7 @@
}, },
"quotaSizeInBytes": { "quotaSizeInBytes": {
"format": "int64", "format": "int64",
"minimum": 1,
"nullable": true, "nullable": true,
"type": "integer" "type": "integer"
}, },
@ -8391,6 +8405,7 @@
"type": "string" "type": "string"
}, },
"archiveSize": { "archiveSize": {
"minimum": 1,
"type": "integer" "type": "integer"
}, },
"assetIds": { "assetIds": {
@ -8731,6 +8746,7 @@
"JobSettingsDto": { "JobSettingsDto": {
"properties": { "properties": {
"concurrency": { "concurrency": {
"minimum": 1,
"type": "integer" "type": "integer"
} }
}, },
@ -9203,6 +9219,7 @@
"type": "string" "type": "string"
}, },
"page": { "page": {
"minimum": 1,
"type": "number" "type": "number"
}, },
"personIds": { "personIds": {
@ -9220,6 +9237,8 @@
"type": "string" "type": "string"
}, },
"size": { "size": {
"maximum": 1000,
"minimum": 1,
"type": "number" "type": "number"
}, },
"state": { "state": {
@ -9321,6 +9340,7 @@
"OnThisDayDto": { "OnThisDayDto": {
"properties": { "properties": {
"year": { "year": {
"minimum": 1,
"type": "number" "type": "number"
} }
}, },
@ -9676,13 +9696,18 @@
}, },
"maxDistance": { "maxDistance": {
"format": "float", "format": "float",
"maximum": 2,
"minimum": 0,
"type": "number" "type": "number"
}, },
"minFaces": { "minFaces": {
"minimum": 1,
"type": "integer" "type": "integer"
}, },
"minScore": { "minScore": {
"format": "float", "format": "float",
"maximum": 1,
"minimum": 0,
"type": "number" "type": "number"
}, },
"modelName": { "modelName": {
@ -10401,6 +10426,7 @@
"type": "string" "type": "string"
}, },
"page": { "page": {
"minimum": 1,
"type": "number" "type": "number"
}, },
"personIds": { "personIds": {
@ -10414,6 +10440,8 @@
"type": "string" "type": "string"
}, },
"size": { "size": {
"maximum": 1000,
"minimum": 1,
"type": "number" "type": "number"
}, },
"state": { "state": {
@ -10551,21 +10579,27 @@
"type": "array" "type": "array"
}, },
"bframes": { "bframes": {
"maximum": 16,
"minimum": -1,
"type": "integer" "type": "integer"
}, },
"cqMode": { "cqMode": {
"$ref": "#/components/schemas/CQMode" "$ref": "#/components/schemas/CQMode"
}, },
"crf": { "crf": {
"maximum": 51,
"minimum": 0,
"type": "integer" "type": "integer"
}, },
"gopSize": { "gopSize": {
"minimum": 0,
"type": "integer" "type": "integer"
}, },
"maxBitrate": { "maxBitrate": {
"type": "string" "type": "string"
}, },
"npl": { "npl": {
"minimum": 0,
"type": "integer" "type": "integer"
}, },
"preferredHwDevice": { "preferredHwDevice": {
@ -10575,6 +10609,8 @@
"type": "string" "type": "string"
}, },
"refs": { "refs": {
"maximum": 6,
"minimum": 0,
"type": "integer" "type": "integer"
}, },
"targetAudioCodec": { "targetAudioCodec": {
@ -10590,6 +10626,7 @@
"type": "boolean" "type": "boolean"
}, },
"threads": { "threads": {
"minimum": 0,
"type": "integer" "type": "integer"
}, },
"tonemap": { "tonemap": {
@ -10638,15 +10675,19 @@
"$ref": "#/components/schemas/ImageFormat" "$ref": "#/components/schemas/ImageFormat"
}, },
"previewSize": { "previewSize": {
"minimum": 1,
"type": "integer" "type": "integer"
}, },
"quality": { "quality": {
"maximum": 100,
"minimum": 1,
"type": "integer" "type": "integer"
}, },
"thumbnailFormat": { "thumbnailFormat": {
"$ref": "#/components/schemas/ImageFormat" "$ref": "#/components/schemas/ImageFormat"
}, },
"thumbnailSize": { "thumbnailSize": {
"minimum": 1,
"type": "integer" "type": "integer"
} }
}, },
@ -10835,6 +10876,7 @@
"type": "string" "type": "string"
}, },
"defaultStorageQuota": { "defaultStorageQuota": {
"minimum": 0,
"type": "number" "type": "number"
}, },
"enabled": { "enabled": {
@ -11013,6 +11055,7 @@
"SystemConfigTrashDto": { "SystemConfigTrashDto": {
"properties": { "properties": {
"days": { "days": {
"minimum": 0,
"type": "integer" "type": "integer"
}, },
"enabled": { "enabled": {
@ -11028,6 +11071,7 @@
"SystemConfigUserDto": { "SystemConfigUserDto": {
"properties": { "properties": {
"deleteDelay": { "deleteDelay": {
"minimum": 1,
"type": "integer" "type": "integer"
} }
}, },
@ -11254,6 +11298,7 @@
}, },
"quotaSizeInBytes": { "quotaSizeInBytes": {
"format": "int64", "format": "int64",
"minimum": 1,
"nullable": true, "nullable": true,
"type": "integer" "type": "integer"
}, },

View file

@ -9,7 +9,7 @@
{ {
"name": "@nestjs/swagger", "name": "@nestjs/swagger",
"options": { "options": {
"classValidatorShim": false, "classValidatorShim": true,
"introspectComments": true "introspectComments": true
} }
} }