remove rule
This commit is contained in:
parent
51ffac5d15
commit
69c95e2b73
5 changed files with 790 additions and 11 deletions
|
@ -402,6 +402,13 @@
|
||||||
},
|
},
|
||||||
"responses": {
|
"responses": {
|
||||||
"201": {
|
"201": {
|
||||||
|
"content": {
|
||||||
|
"application/json": {
|
||||||
|
"schema": {
|
||||||
|
"$ref": "#/components/schemas/AlbumEntity"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
"description": ""
|
"description": ""
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
@ -4820,6 +4827,85 @@
|
||||||
],
|
],
|
||||||
"type": "object"
|
"type": "object"
|
||||||
},
|
},
|
||||||
|
"AlbumEntity": {
|
||||||
|
"properties": {
|
||||||
|
"albumName": {
|
||||||
|
"type": "string"
|
||||||
|
},
|
||||||
|
"albumThumbnailAsset": {
|
||||||
|
"allOf": [
|
||||||
|
{
|
||||||
|
"$ref": "#/components/schemas/AssetEntity"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"nullable": true
|
||||||
|
},
|
||||||
|
"albumThumbnailAssetId": {
|
||||||
|
"nullable": true,
|
||||||
|
"type": "string"
|
||||||
|
},
|
||||||
|
"assets": {
|
||||||
|
"items": {
|
||||||
|
"$ref": "#/components/schemas/AssetEntity"
|
||||||
|
},
|
||||||
|
"type": "array"
|
||||||
|
},
|
||||||
|
"createdAt": {
|
||||||
|
"format": "date-time",
|
||||||
|
"type": "string"
|
||||||
|
},
|
||||||
|
"description": {
|
||||||
|
"type": "string"
|
||||||
|
},
|
||||||
|
"id": {
|
||||||
|
"type": "string"
|
||||||
|
},
|
||||||
|
"owner": {
|
||||||
|
"$ref": "#/components/schemas/UserEntity"
|
||||||
|
},
|
||||||
|
"ownerId": {
|
||||||
|
"type": "string"
|
||||||
|
},
|
||||||
|
"rules": {
|
||||||
|
"items": {
|
||||||
|
"$ref": "#/components/schemas/RuleEntity"
|
||||||
|
},
|
||||||
|
"type": "array"
|
||||||
|
},
|
||||||
|
"sharedLinks": {
|
||||||
|
"items": {
|
||||||
|
"$ref": "#/components/schemas/SharedLinkEntity"
|
||||||
|
},
|
||||||
|
"type": "array"
|
||||||
|
},
|
||||||
|
"sharedUsers": {
|
||||||
|
"items": {
|
||||||
|
"$ref": "#/components/schemas/UserEntity"
|
||||||
|
},
|
||||||
|
"type": "array"
|
||||||
|
},
|
||||||
|
"updatedAt": {
|
||||||
|
"format": "date-time",
|
||||||
|
"type": "string"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"required": [
|
||||||
|
"id",
|
||||||
|
"owner",
|
||||||
|
"ownerId",
|
||||||
|
"albumName",
|
||||||
|
"description",
|
||||||
|
"createdAt",
|
||||||
|
"updatedAt",
|
||||||
|
"albumThumbnailAsset",
|
||||||
|
"albumThumbnailAssetId",
|
||||||
|
"sharedUsers",
|
||||||
|
"assets",
|
||||||
|
"sharedLinks",
|
||||||
|
"rules"
|
||||||
|
],
|
||||||
|
"type": "object"
|
||||||
|
},
|
||||||
"AlbumResponseDto": {
|
"AlbumResponseDto": {
|
||||||
"properties": {
|
"properties": {
|
||||||
"albumName": {
|
"albumName": {
|
||||||
|
@ -5015,6 +5101,223 @@
|
||||||
],
|
],
|
||||||
"type": "object"
|
"type": "object"
|
||||||
},
|
},
|
||||||
|
"AssetEntity": {
|
||||||
|
"properties": {
|
||||||
|
"albums": {
|
||||||
|
"items": {
|
||||||
|
"$ref": "#/components/schemas/AlbumEntity"
|
||||||
|
},
|
||||||
|
"type": "array"
|
||||||
|
},
|
||||||
|
"checksum": {
|
||||||
|
"type": "object"
|
||||||
|
},
|
||||||
|
"createdAt": {
|
||||||
|
"format": "date-time",
|
||||||
|
"type": "string"
|
||||||
|
},
|
||||||
|
"deviceAssetId": {
|
||||||
|
"type": "string"
|
||||||
|
},
|
||||||
|
"deviceId": {
|
||||||
|
"type": "string"
|
||||||
|
},
|
||||||
|
"duration": {
|
||||||
|
"nullable": true,
|
||||||
|
"type": "string"
|
||||||
|
},
|
||||||
|
"encodedVideoPath": {
|
||||||
|
"nullable": true,
|
||||||
|
"type": "string"
|
||||||
|
},
|
||||||
|
"exifInfo": {
|
||||||
|
"$ref": "#/components/schemas/ExifEntity"
|
||||||
|
},
|
||||||
|
"faces": {
|
||||||
|
"items": {
|
||||||
|
"$ref": "#/components/schemas/AssetFaceEntity"
|
||||||
|
},
|
||||||
|
"type": "array"
|
||||||
|
},
|
||||||
|
"fileCreatedAt": {
|
||||||
|
"format": "date-time",
|
||||||
|
"type": "string"
|
||||||
|
},
|
||||||
|
"fileModifiedAt": {
|
||||||
|
"format": "date-time",
|
||||||
|
"type": "string"
|
||||||
|
},
|
||||||
|
"id": {
|
||||||
|
"type": "string"
|
||||||
|
},
|
||||||
|
"isArchived": {
|
||||||
|
"type": "boolean"
|
||||||
|
},
|
||||||
|
"isFavorite": {
|
||||||
|
"type": "boolean"
|
||||||
|
},
|
||||||
|
"isReadOnly": {
|
||||||
|
"type": "boolean"
|
||||||
|
},
|
||||||
|
"isVisible": {
|
||||||
|
"type": "boolean"
|
||||||
|
},
|
||||||
|
"livePhotoVideo": {
|
||||||
|
"allOf": [
|
||||||
|
{
|
||||||
|
"$ref": "#/components/schemas/AssetEntity"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"nullable": true
|
||||||
|
},
|
||||||
|
"livePhotoVideoId": {
|
||||||
|
"nullable": true,
|
||||||
|
"type": "string"
|
||||||
|
},
|
||||||
|
"originalFileName": {
|
||||||
|
"type": "string"
|
||||||
|
},
|
||||||
|
"originalPath": {
|
||||||
|
"type": "string"
|
||||||
|
},
|
||||||
|
"owner": {
|
||||||
|
"$ref": "#/components/schemas/UserEntity"
|
||||||
|
},
|
||||||
|
"ownerId": {
|
||||||
|
"type": "string"
|
||||||
|
},
|
||||||
|
"resizePath": {
|
||||||
|
"nullable": true,
|
||||||
|
"type": "string"
|
||||||
|
},
|
||||||
|
"sharedLinks": {
|
||||||
|
"items": {
|
||||||
|
"$ref": "#/components/schemas/SharedLinkEntity"
|
||||||
|
},
|
||||||
|
"type": "array"
|
||||||
|
},
|
||||||
|
"sidecarPath": {
|
||||||
|
"nullable": true,
|
||||||
|
"type": "string"
|
||||||
|
},
|
||||||
|
"smartInfo": {
|
||||||
|
"$ref": "#/components/schemas/SmartInfoEntity"
|
||||||
|
},
|
||||||
|
"tags": {
|
||||||
|
"items": {
|
||||||
|
"$ref": "#/components/schemas/TagEntity"
|
||||||
|
},
|
||||||
|
"type": "array"
|
||||||
|
},
|
||||||
|
"thumbhash": {
|
||||||
|
"nullable": true,
|
||||||
|
"type": "object"
|
||||||
|
},
|
||||||
|
"type": {
|
||||||
|
"enum": [
|
||||||
|
"IMAGE",
|
||||||
|
"VIDEO",
|
||||||
|
"AUDIO",
|
||||||
|
"OTHER"
|
||||||
|
],
|
||||||
|
"type": "string"
|
||||||
|
},
|
||||||
|
"updatedAt": {
|
||||||
|
"format": "date-time",
|
||||||
|
"type": "string"
|
||||||
|
},
|
||||||
|
"webpPath": {
|
||||||
|
"nullable": true,
|
||||||
|
"type": "string"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"required": [
|
||||||
|
"id",
|
||||||
|
"deviceAssetId",
|
||||||
|
"owner",
|
||||||
|
"ownerId",
|
||||||
|
"deviceId",
|
||||||
|
"type",
|
||||||
|
"originalPath",
|
||||||
|
"resizePath",
|
||||||
|
"webpPath",
|
||||||
|
"thumbhash",
|
||||||
|
"encodedVideoPath",
|
||||||
|
"createdAt",
|
||||||
|
"updatedAt",
|
||||||
|
"fileCreatedAt",
|
||||||
|
"fileModifiedAt",
|
||||||
|
"isFavorite",
|
||||||
|
"isArchived",
|
||||||
|
"isReadOnly",
|
||||||
|
"checksum",
|
||||||
|
"duration",
|
||||||
|
"isVisible",
|
||||||
|
"livePhotoVideo",
|
||||||
|
"livePhotoVideoId",
|
||||||
|
"originalFileName",
|
||||||
|
"sidecarPath",
|
||||||
|
"tags",
|
||||||
|
"sharedLinks",
|
||||||
|
"faces"
|
||||||
|
],
|
||||||
|
"type": "object"
|
||||||
|
},
|
||||||
|
"AssetFaceEntity": {
|
||||||
|
"properties": {
|
||||||
|
"asset": {
|
||||||
|
"$ref": "#/components/schemas/AssetEntity"
|
||||||
|
},
|
||||||
|
"assetId": {
|
||||||
|
"type": "string"
|
||||||
|
},
|
||||||
|
"boundingBoxX1": {
|
||||||
|
"type": "number"
|
||||||
|
},
|
||||||
|
"boundingBoxX2": {
|
||||||
|
"type": "number"
|
||||||
|
},
|
||||||
|
"boundingBoxY1": {
|
||||||
|
"type": "number"
|
||||||
|
},
|
||||||
|
"boundingBoxY2": {
|
||||||
|
"type": "number"
|
||||||
|
},
|
||||||
|
"embedding": {
|
||||||
|
"items": {
|
||||||
|
"type": "number"
|
||||||
|
},
|
||||||
|
"nullable": true,
|
||||||
|
"type": "array"
|
||||||
|
},
|
||||||
|
"imageHeight": {
|
||||||
|
"type": "number"
|
||||||
|
},
|
||||||
|
"imageWidth": {
|
||||||
|
"type": "number"
|
||||||
|
},
|
||||||
|
"person": {
|
||||||
|
"$ref": "#/components/schemas/PersonEntity"
|
||||||
|
},
|
||||||
|
"personId": {
|
||||||
|
"type": "string"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"required": [
|
||||||
|
"assetId",
|
||||||
|
"personId",
|
||||||
|
"embedding",
|
||||||
|
"imageWidth",
|
||||||
|
"imageHeight",
|
||||||
|
"boundingBoxX1",
|
||||||
|
"boundingBoxY1",
|
||||||
|
"boundingBoxX2",
|
||||||
|
"boundingBoxY2",
|
||||||
|
"asset",
|
||||||
|
"person"
|
||||||
|
],
|
||||||
|
"type": "object"
|
||||||
|
},
|
||||||
"AssetFileUploadResponseDto": {
|
"AssetFileUploadResponseDto": {
|
||||||
"properties": {
|
"properties": {
|
||||||
"duplicate": {
|
"duplicate": {
|
||||||
|
@ -5657,6 +5960,142 @@
|
||||||
],
|
],
|
||||||
"type": "object"
|
"type": "object"
|
||||||
},
|
},
|
||||||
|
"ExifEntity": {
|
||||||
|
"properties": {
|
||||||
|
"asset": {
|
||||||
|
"$ref": "#/components/schemas/AssetEntity"
|
||||||
|
},
|
||||||
|
"assetId": {
|
||||||
|
"type": "string"
|
||||||
|
},
|
||||||
|
"city": {
|
||||||
|
"nullable": true,
|
||||||
|
"type": "string"
|
||||||
|
},
|
||||||
|
"country": {
|
||||||
|
"nullable": true,
|
||||||
|
"type": "string"
|
||||||
|
},
|
||||||
|
"dateTimeOriginal": {
|
||||||
|
"format": "date-time",
|
||||||
|
"nullable": true,
|
||||||
|
"type": "string"
|
||||||
|
},
|
||||||
|
"description": {
|
||||||
|
"description": "General info",
|
||||||
|
"type": "string"
|
||||||
|
},
|
||||||
|
"exifImageHeight": {
|
||||||
|
"nullable": true,
|
||||||
|
"type": "number"
|
||||||
|
},
|
||||||
|
"exifImageWidth": {
|
||||||
|
"nullable": true,
|
||||||
|
"type": "number"
|
||||||
|
},
|
||||||
|
"exifTextSearchableColumn": {
|
||||||
|
"type": "string"
|
||||||
|
},
|
||||||
|
"exposureTime": {
|
||||||
|
"nullable": true,
|
||||||
|
"type": "string"
|
||||||
|
},
|
||||||
|
"fNumber": {
|
||||||
|
"nullable": true,
|
||||||
|
"type": "number"
|
||||||
|
},
|
||||||
|
"fileSizeInByte": {
|
||||||
|
"nullable": true,
|
||||||
|
"type": "number"
|
||||||
|
},
|
||||||
|
"focalLength": {
|
||||||
|
"nullable": true,
|
||||||
|
"type": "number"
|
||||||
|
},
|
||||||
|
"fps": {
|
||||||
|
"description": "Video info",
|
||||||
|
"nullable": true,
|
||||||
|
"type": "number"
|
||||||
|
},
|
||||||
|
"iso": {
|
||||||
|
"nullable": true,
|
||||||
|
"type": "number"
|
||||||
|
},
|
||||||
|
"latitude": {
|
||||||
|
"nullable": true,
|
||||||
|
"type": "number"
|
||||||
|
},
|
||||||
|
"lensModel": {
|
||||||
|
"nullable": true,
|
||||||
|
"type": "string"
|
||||||
|
},
|
||||||
|
"livePhotoCID": {
|
||||||
|
"nullable": true,
|
||||||
|
"type": "string"
|
||||||
|
},
|
||||||
|
"longitude": {
|
||||||
|
"nullable": true,
|
||||||
|
"type": "number"
|
||||||
|
},
|
||||||
|
"make": {
|
||||||
|
"description": "Image info",
|
||||||
|
"nullable": true,
|
||||||
|
"type": "string"
|
||||||
|
},
|
||||||
|
"model": {
|
||||||
|
"nullable": true,
|
||||||
|
"type": "string"
|
||||||
|
},
|
||||||
|
"modifyDate": {
|
||||||
|
"format": "date-time",
|
||||||
|
"nullable": true,
|
||||||
|
"type": "string"
|
||||||
|
},
|
||||||
|
"orientation": {
|
||||||
|
"nullable": true,
|
||||||
|
"type": "string"
|
||||||
|
},
|
||||||
|
"projectionType": {
|
||||||
|
"nullable": true,
|
||||||
|
"type": "string"
|
||||||
|
},
|
||||||
|
"state": {
|
||||||
|
"nullable": true,
|
||||||
|
"type": "string"
|
||||||
|
},
|
||||||
|
"timeZone": {
|
||||||
|
"nullable": true,
|
||||||
|
"type": "string"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"required": [
|
||||||
|
"assetId",
|
||||||
|
"description",
|
||||||
|
"exifImageWidth",
|
||||||
|
"exifImageHeight",
|
||||||
|
"fileSizeInByte",
|
||||||
|
"orientation",
|
||||||
|
"dateTimeOriginal",
|
||||||
|
"modifyDate",
|
||||||
|
"timeZone",
|
||||||
|
"latitude",
|
||||||
|
"longitude",
|
||||||
|
"projectionType",
|
||||||
|
"city",
|
||||||
|
"livePhotoCID",
|
||||||
|
"state",
|
||||||
|
"country",
|
||||||
|
"make",
|
||||||
|
"model",
|
||||||
|
"lensModel",
|
||||||
|
"fNumber",
|
||||||
|
"focalLength",
|
||||||
|
"iso",
|
||||||
|
"exposureTime",
|
||||||
|
"exifTextSearchableColumn"
|
||||||
|
],
|
||||||
|
"type": "object"
|
||||||
|
},
|
||||||
"ExifResponseDto": {
|
"ExifResponseDto": {
|
||||||
"properties": {
|
"properties": {
|
||||||
"city": {
|
"city": {
|
||||||
|
@ -6154,6 +6593,54 @@
|
||||||
],
|
],
|
||||||
"type": "object"
|
"type": "object"
|
||||||
},
|
},
|
||||||
|
"PersonEntity": {
|
||||||
|
"properties": {
|
||||||
|
"createdAt": {
|
||||||
|
"format": "date-time",
|
||||||
|
"type": "string"
|
||||||
|
},
|
||||||
|
"faces": {
|
||||||
|
"items": {
|
||||||
|
"$ref": "#/components/schemas/AssetFaceEntity"
|
||||||
|
},
|
||||||
|
"type": "array"
|
||||||
|
},
|
||||||
|
"id": {
|
||||||
|
"type": "string"
|
||||||
|
},
|
||||||
|
"isHidden": {
|
||||||
|
"type": "boolean"
|
||||||
|
},
|
||||||
|
"name": {
|
||||||
|
"type": "string"
|
||||||
|
},
|
||||||
|
"owner": {
|
||||||
|
"$ref": "#/components/schemas/UserEntity"
|
||||||
|
},
|
||||||
|
"ownerId": {
|
||||||
|
"type": "string"
|
||||||
|
},
|
||||||
|
"thumbnailPath": {
|
||||||
|
"type": "string"
|
||||||
|
},
|
||||||
|
"updatedAt": {
|
||||||
|
"format": "date-time",
|
||||||
|
"type": "string"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"required": [
|
||||||
|
"id",
|
||||||
|
"createdAt",
|
||||||
|
"updatedAt",
|
||||||
|
"ownerId",
|
||||||
|
"owner",
|
||||||
|
"name",
|
||||||
|
"thumbnailPath",
|
||||||
|
"faces",
|
||||||
|
"isHidden"
|
||||||
|
],
|
||||||
|
"type": "object"
|
||||||
|
},
|
||||||
"PersonResponseDto": {
|
"PersonResponseDto": {
|
||||||
"properties": {
|
"properties": {
|
||||||
"id": {
|
"id": {
|
||||||
|
@ -6209,6 +6696,46 @@
|
||||||
],
|
],
|
||||||
"type": "object"
|
"type": "object"
|
||||||
},
|
},
|
||||||
|
"RuleEntity": {
|
||||||
|
"properties": {
|
||||||
|
"album": {
|
||||||
|
"$ref": "#/components/schemas/AlbumEntity"
|
||||||
|
},
|
||||||
|
"albumId": {
|
||||||
|
"type": "string"
|
||||||
|
},
|
||||||
|
"id": {
|
||||||
|
"type": "string"
|
||||||
|
},
|
||||||
|
"key": {
|
||||||
|
"enum": [
|
||||||
|
"personId",
|
||||||
|
"exifInfo.city",
|
||||||
|
"asset.fileCreatedAt"
|
||||||
|
],
|
||||||
|
"type": "string"
|
||||||
|
},
|
||||||
|
"ownerId": {
|
||||||
|
"type": "string"
|
||||||
|
},
|
||||||
|
"user": {
|
||||||
|
"$ref": "#/components/schemas/UserEntity"
|
||||||
|
},
|
||||||
|
"value": {
|
||||||
|
"type": "string"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"required": [
|
||||||
|
"id",
|
||||||
|
"key",
|
||||||
|
"value",
|
||||||
|
"ownerId",
|
||||||
|
"user",
|
||||||
|
"albumId",
|
||||||
|
"album"
|
||||||
|
],
|
||||||
|
"type": "object"
|
||||||
|
},
|
||||||
"RuleKey": {
|
"RuleKey": {
|
||||||
"enum": [
|
"enum": [
|
||||||
"personId",
|
"personId",
|
||||||
|
@ -6600,6 +7127,80 @@
|
||||||
},
|
},
|
||||||
"type": "object"
|
"type": "object"
|
||||||
},
|
},
|
||||||
|
"SharedLinkEntity": {
|
||||||
|
"properties": {
|
||||||
|
"album": {
|
||||||
|
"$ref": "#/components/schemas/AlbumEntity"
|
||||||
|
},
|
||||||
|
"albumId": {
|
||||||
|
"nullable": true,
|
||||||
|
"type": "string"
|
||||||
|
},
|
||||||
|
"allowDownload": {
|
||||||
|
"type": "boolean"
|
||||||
|
},
|
||||||
|
"allowUpload": {
|
||||||
|
"type": "boolean"
|
||||||
|
},
|
||||||
|
"assets": {
|
||||||
|
"items": {
|
||||||
|
"$ref": "#/components/schemas/AssetEntity"
|
||||||
|
},
|
||||||
|
"type": "array"
|
||||||
|
},
|
||||||
|
"createdAt": {
|
||||||
|
"format": "date-time",
|
||||||
|
"type": "string"
|
||||||
|
},
|
||||||
|
"description": {
|
||||||
|
"nullable": true,
|
||||||
|
"type": "string"
|
||||||
|
},
|
||||||
|
"expiresAt": {
|
||||||
|
"format": "date-time",
|
||||||
|
"nullable": true,
|
||||||
|
"type": "string"
|
||||||
|
},
|
||||||
|
"id": {
|
||||||
|
"type": "string"
|
||||||
|
},
|
||||||
|
"key": {
|
||||||
|
"type": "object"
|
||||||
|
},
|
||||||
|
"showExif": {
|
||||||
|
"type": "boolean"
|
||||||
|
},
|
||||||
|
"type": {
|
||||||
|
"enum": [
|
||||||
|
"ALBUM",
|
||||||
|
"INDIVIDUAL"
|
||||||
|
],
|
||||||
|
"type": "string"
|
||||||
|
},
|
||||||
|
"user": {
|
||||||
|
"$ref": "#/components/schemas/UserEntity"
|
||||||
|
},
|
||||||
|
"userId": {
|
||||||
|
"type": "string"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"required": [
|
||||||
|
"id",
|
||||||
|
"description",
|
||||||
|
"userId",
|
||||||
|
"user",
|
||||||
|
"key",
|
||||||
|
"type",
|
||||||
|
"createdAt",
|
||||||
|
"expiresAt",
|
||||||
|
"allowUpload",
|
||||||
|
"allowDownload",
|
||||||
|
"showExif",
|
||||||
|
"assets",
|
||||||
|
"albumId"
|
||||||
|
],
|
||||||
|
"type": "object"
|
||||||
|
},
|
||||||
"SharedLinkResponseDto": {
|
"SharedLinkResponseDto": {
|
||||||
"properties": {
|
"properties": {
|
||||||
"album": {
|
"album": {
|
||||||
|
@ -6695,6 +7296,44 @@
|
||||||
],
|
],
|
||||||
"type": "object"
|
"type": "object"
|
||||||
},
|
},
|
||||||
|
"SmartInfoEntity": {
|
||||||
|
"properties": {
|
||||||
|
"asset": {
|
||||||
|
"$ref": "#/components/schemas/AssetEntity"
|
||||||
|
},
|
||||||
|
"assetId": {
|
||||||
|
"type": "string"
|
||||||
|
},
|
||||||
|
"clipEmbedding": {
|
||||||
|
"items": {
|
||||||
|
"type": "number"
|
||||||
|
},
|
||||||
|
"nullable": true,
|
||||||
|
"type": "array"
|
||||||
|
},
|
||||||
|
"objects": {
|
||||||
|
"items": {
|
||||||
|
"type": "string"
|
||||||
|
},
|
||||||
|
"nullable": true,
|
||||||
|
"type": "array"
|
||||||
|
},
|
||||||
|
"tags": {
|
||||||
|
"items": {
|
||||||
|
"type": "string"
|
||||||
|
},
|
||||||
|
"nullable": true,
|
||||||
|
"type": "array"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"required": [
|
||||||
|
"assetId",
|
||||||
|
"tags",
|
||||||
|
"objects",
|
||||||
|
"clipEmbedding"
|
||||||
|
],
|
||||||
|
"type": "object"
|
||||||
|
},
|
||||||
"SmartInfoResponseDto": {
|
"SmartInfoResponseDto": {
|
||||||
"properties": {
|
"properties": {
|
||||||
"objects": {
|
"objects": {
|
||||||
|
@ -6987,6 +7626,50 @@
|
||||||
],
|
],
|
||||||
"type": "object"
|
"type": "object"
|
||||||
},
|
},
|
||||||
|
"TagEntity": {
|
||||||
|
"properties": {
|
||||||
|
"assets": {
|
||||||
|
"items": {
|
||||||
|
"$ref": "#/components/schemas/AssetEntity"
|
||||||
|
},
|
||||||
|
"type": "array"
|
||||||
|
},
|
||||||
|
"id": {
|
||||||
|
"type": "string"
|
||||||
|
},
|
||||||
|
"name": {
|
||||||
|
"type": "string"
|
||||||
|
},
|
||||||
|
"renameTagId": {
|
||||||
|
"nullable": true,
|
||||||
|
"type": "string"
|
||||||
|
},
|
||||||
|
"type": {
|
||||||
|
"enum": [
|
||||||
|
"OBJECT",
|
||||||
|
"FACE",
|
||||||
|
"CUSTOM"
|
||||||
|
],
|
||||||
|
"type": "string"
|
||||||
|
},
|
||||||
|
"user": {
|
||||||
|
"$ref": "#/components/schemas/UserEntity"
|
||||||
|
},
|
||||||
|
"userId": {
|
||||||
|
"type": "string"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"required": [
|
||||||
|
"id",
|
||||||
|
"type",
|
||||||
|
"name",
|
||||||
|
"user",
|
||||||
|
"userId",
|
||||||
|
"renameTagId",
|
||||||
|
"assets"
|
||||||
|
],
|
||||||
|
"type": "object"
|
||||||
|
},
|
||||||
"TagResponseDto": {
|
"TagResponseDto": {
|
||||||
"properties": {
|
"properties": {
|
||||||
"id": {
|
"id": {
|
||||||
|
@ -7205,6 +7888,92 @@
|
||||||
],
|
],
|
||||||
"type": "object"
|
"type": "object"
|
||||||
},
|
},
|
||||||
|
"UserEntity": {
|
||||||
|
"properties": {
|
||||||
|
"assets": {
|
||||||
|
"items": {
|
||||||
|
"$ref": "#/components/schemas/AssetEntity"
|
||||||
|
},
|
||||||
|
"type": "array"
|
||||||
|
},
|
||||||
|
"createdAt": {
|
||||||
|
"format": "date-time",
|
||||||
|
"type": "string"
|
||||||
|
},
|
||||||
|
"deletedAt": {
|
||||||
|
"format": "date-time",
|
||||||
|
"nullable": true,
|
||||||
|
"type": "string"
|
||||||
|
},
|
||||||
|
"email": {
|
||||||
|
"type": "string"
|
||||||
|
},
|
||||||
|
"externalPath": {
|
||||||
|
"nullable": true,
|
||||||
|
"type": "string"
|
||||||
|
},
|
||||||
|
"firstName": {
|
||||||
|
"type": "string"
|
||||||
|
},
|
||||||
|
"id": {
|
||||||
|
"type": "string"
|
||||||
|
},
|
||||||
|
"isAdmin": {
|
||||||
|
"type": "boolean"
|
||||||
|
},
|
||||||
|
"lastName": {
|
||||||
|
"type": "string"
|
||||||
|
},
|
||||||
|
"memoriesEnabled": {
|
||||||
|
"type": "boolean"
|
||||||
|
},
|
||||||
|
"oauthId": {
|
||||||
|
"type": "string"
|
||||||
|
},
|
||||||
|
"password": {
|
||||||
|
"type": "string"
|
||||||
|
},
|
||||||
|
"profileImagePath": {
|
||||||
|
"type": "string"
|
||||||
|
},
|
||||||
|
"shouldChangePassword": {
|
||||||
|
"type": "boolean"
|
||||||
|
},
|
||||||
|
"storageLabel": {
|
||||||
|
"nullable": true,
|
||||||
|
"type": "string"
|
||||||
|
},
|
||||||
|
"tags": {
|
||||||
|
"items": {
|
||||||
|
"$ref": "#/components/schemas/TagEntity"
|
||||||
|
},
|
||||||
|
"type": "array"
|
||||||
|
},
|
||||||
|
"updatedAt": {
|
||||||
|
"format": "date-time",
|
||||||
|
"type": "string"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"required": [
|
||||||
|
"id",
|
||||||
|
"firstName",
|
||||||
|
"lastName",
|
||||||
|
"isAdmin",
|
||||||
|
"email",
|
||||||
|
"storageLabel",
|
||||||
|
"externalPath",
|
||||||
|
"oauthId",
|
||||||
|
"profileImagePath",
|
||||||
|
"shouldChangePassword",
|
||||||
|
"createdAt",
|
||||||
|
"deletedAt",
|
||||||
|
"updatedAt",
|
||||||
|
"memoriesEnabled",
|
||||||
|
"tags",
|
||||||
|
"assets"
|
||||||
|
],
|
||||||
|
"type": "object"
|
||||||
|
},
|
||||||
"UserResponseDto": {
|
"UserResponseDto": {
|
||||||
"properties": {
|
"properties": {
|
||||||
"createdAt": {
|
"createdAt": {
|
||||||
|
|
|
@ -285,10 +285,10 @@ export class AlbumService {
|
||||||
return album;
|
return album;
|
||||||
}
|
}
|
||||||
|
|
||||||
async addRule(authUser: AuthUserDto, id: string, dto: CreateRuleDto) {
|
async addRule(authUser: AuthUserDto, albumId: string, dto: CreateRuleDto) {
|
||||||
await this.access.requirePermission(authUser, Permission.ALBUM_READ, id);
|
await this.access.requirePermission(authUser, Permission.ALBUM_READ, albumId);
|
||||||
|
|
||||||
const album = await this.findOrFail(id);
|
const album = await this.findOrFail(albumId);
|
||||||
const user = await this.userRepository.get(authUser.id);
|
const user = await this.userRepository.get(authUser.id);
|
||||||
|
|
||||||
if (!user) {
|
if (!user) {
|
||||||
|
@ -305,8 +305,18 @@ export class AlbumService {
|
||||||
|
|
||||||
await this.ruleRepository.create(rule);
|
await this.ruleRepository.create(rule);
|
||||||
|
|
||||||
return await this.findOrFail(id);
|
return await this.findOrFail(albumId);
|
||||||
}
|
}
|
||||||
|
|
||||||
async removeRule(authUser: AuthUserDto, ruleId: string) {}
|
async removeRule(authUser: AuthUserDto, albumId: string, ruleId: string) {
|
||||||
|
await this.access.requirePermission(authUser, Permission.ALBUM_READ, albumId);
|
||||||
|
|
||||||
|
const album = await this.findOrFail(albumId);
|
||||||
|
const rule = album.rules.find((rule) => rule.id === ruleId);
|
||||||
|
if (!rule) {
|
||||||
|
throw new BadRequestException('Rule not found');
|
||||||
|
}
|
||||||
|
|
||||||
|
await this.ruleRepository.delete(rule);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -4,5 +4,5 @@ export const IRuleRepository = 'IRuleRepository';
|
||||||
|
|
||||||
export interface IRuleRepository {
|
export interface IRuleRepository {
|
||||||
create(rule: RuleEntity): Promise<RuleEntity>;
|
create(rule: RuleEntity): Promise<RuleEntity>;
|
||||||
delete(rule: RuleEntity): Promise<void>;
|
delete(rule: RuleEntity): Promise<RuleEntity>;
|
||||||
}
|
}
|
||||||
|
|
|
@ -99,6 +99,6 @@ export class AlbumController {
|
||||||
@Param() { id }: UUIDParamDto,
|
@Param() { id }: UUIDParamDto,
|
||||||
@Param('ruleId', new ParseMeUUIDPipe({ version: '4' })) ruleId: string,
|
@Param('ruleId', new ParseMeUUIDPipe({ version: '4' })) ruleId: string,
|
||||||
) {
|
) {
|
||||||
throw new Error('Not implemented');
|
return this.service.removeRule(authUser, id, ruleId);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -4,13 +4,13 @@ import { Repository } from 'typeorm';
|
||||||
import { RuleEntity } from '../entities';
|
import { RuleEntity } from '../entities';
|
||||||
|
|
||||||
export class RuleRepository implements IRuleRepository {
|
export class RuleRepository implements IRuleRepository {
|
||||||
constructor(@InjectRepository(RuleEntity) private assetRepository: Repository<RuleEntity>) {}
|
constructor(@InjectRepository(RuleEntity) private repository: Repository<RuleEntity>) {}
|
||||||
|
|
||||||
create(rule: RuleEntity): Promise<RuleEntity> {
|
create(rule: RuleEntity): Promise<RuleEntity> {
|
||||||
return this.assetRepository.save(rule);
|
return this.repository.save(rule);
|
||||||
}
|
}
|
||||||
|
|
||||||
delete(rule: RuleEntity): Promise<void> {
|
delete(rule: RuleEntity): Promise<RuleEntity> {
|
||||||
throw new Error('Method not implemented.');
|
return this.repository.remove(rule);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue