mirror of
https://github.com/samsonjs/immich.git
synced 2026-04-27 15:07:45 +00:00
chore(server): remove asset search endpoint (#5094)
* chore(server): remove unused search endpoint * chore: open api
This commit is contained in:
parent
ed68c49c16
commit
c7b3039a1a
17 changed files with 3 additions and 308 deletions
101
cli/src/api/open-api/api.ts
generated
101
cli/src/api/open-api/api.ts
generated
|
|
@ -2794,19 +2794,6 @@ export interface SearchAlbumResponseDto {
|
||||||
*/
|
*/
|
||||||
'total': number;
|
'total': number;
|
||||||
}
|
}
|
||||||
/**
|
|
||||||
*
|
|
||||||
* @export
|
|
||||||
* @interface SearchAssetDto
|
|
||||||
*/
|
|
||||||
export interface SearchAssetDto {
|
|
||||||
/**
|
|
||||||
*
|
|
||||||
* @type {string}
|
|
||||||
* @memberof SearchAssetDto
|
|
||||||
*/
|
|
||||||
'searchTerm': string;
|
|
||||||
}
|
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
* @export
|
* @export
|
||||||
|
|
@ -7792,50 +7779,6 @@ export const AssetApiAxiosParamCreator = function (configuration?: Configuration
|
||||||
options: localVarRequestOptions,
|
options: localVarRequestOptions,
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
/**
|
|
||||||
*
|
|
||||||
* @param {SearchAssetDto} searchAssetDto
|
|
||||||
* @param {*} [options] Override http request option.
|
|
||||||
* @throws {RequiredError}
|
|
||||||
*/
|
|
||||||
searchAsset: async (searchAssetDto: SearchAssetDto, options: AxiosRequestConfig = {}): Promise<RequestArgs> => {
|
|
||||||
// verify required parameter 'searchAssetDto' is not null or undefined
|
|
||||||
assertParamExists('searchAsset', 'searchAssetDto', searchAssetDto)
|
|
||||||
const localVarPath = `/asset/search`;
|
|
||||||
// use dummy base URL string because the URL constructor only accepts absolute URLs.
|
|
||||||
const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
|
|
||||||
let baseOptions;
|
|
||||||
if (configuration) {
|
|
||||||
baseOptions = configuration.baseOptions;
|
|
||||||
}
|
|
||||||
|
|
||||||
const localVarRequestOptions = { method: 'POST', ...baseOptions, ...options};
|
|
||||||
const localVarHeaderParameter = {} as any;
|
|
||||||
const localVarQueryParameter = {} as any;
|
|
||||||
|
|
||||||
// authentication cookie required
|
|
||||||
|
|
||||||
// authentication api_key required
|
|
||||||
await setApiKeyToObject(localVarHeaderParameter, "x-api-key", configuration)
|
|
||||||
|
|
||||||
// authentication bearer required
|
|
||||||
// http bearer authentication required
|
|
||||||
await setBearerAuthToObject(localVarHeaderParameter, configuration)
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
localVarHeaderParameter['Content-Type'] = 'application/json';
|
|
||||||
|
|
||||||
setSearchParams(localVarUrlObj, localVarQueryParameter);
|
|
||||||
let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
|
|
||||||
localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};
|
|
||||||
localVarRequestOptions.data = serializeDataIfNeeded(searchAssetDto, localVarRequestOptions, configuration)
|
|
||||||
|
|
||||||
return {
|
|
||||||
url: toPathString(localVarUrlObj),
|
|
||||||
options: localVarRequestOptions,
|
|
||||||
};
|
|
||||||
},
|
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
* @param {string} [id]
|
* @param {string} [id]
|
||||||
|
|
@ -8698,16 +8641,6 @@ export const AssetApiFp = function(configuration?: Configuration) {
|
||||||
const localVarAxiosArgs = await localVarAxiosParamCreator.runAssetJobs(assetJobsDto, options);
|
const localVarAxiosArgs = await localVarAxiosParamCreator.runAssetJobs(assetJobsDto, options);
|
||||||
return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
|
return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
|
||||||
},
|
},
|
||||||
/**
|
|
||||||
*
|
|
||||||
* @param {SearchAssetDto} searchAssetDto
|
|
||||||
* @param {*} [options] Override http request option.
|
|
||||||
* @throws {RequiredError}
|
|
||||||
*/
|
|
||||||
async searchAsset(searchAssetDto: SearchAssetDto, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<Array<AssetResponseDto>>> {
|
|
||||||
const localVarAxiosArgs = await localVarAxiosParamCreator.searchAsset(searchAssetDto, options);
|
|
||||||
return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
|
|
||||||
},
|
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
* @param {string} [id]
|
* @param {string} [id]
|
||||||
|
|
@ -9047,15 +8980,6 @@ export const AssetApiFactory = function (configuration?: Configuration, basePath
|
||||||
runAssetJobs(requestParameters: AssetApiRunAssetJobsRequest, options?: AxiosRequestConfig): AxiosPromise<void> {
|
runAssetJobs(requestParameters: AssetApiRunAssetJobsRequest, options?: AxiosRequestConfig): AxiosPromise<void> {
|
||||||
return localVarFp.runAssetJobs(requestParameters.assetJobsDto, options).then((request) => request(axios, basePath));
|
return localVarFp.runAssetJobs(requestParameters.assetJobsDto, options).then((request) => request(axios, basePath));
|
||||||
},
|
},
|
||||||
/**
|
|
||||||
*
|
|
||||||
* @param {AssetApiSearchAssetRequest} requestParameters Request parameters.
|
|
||||||
* @param {*} [options] Override http request option.
|
|
||||||
* @throws {RequiredError}
|
|
||||||
*/
|
|
||||||
searchAsset(requestParameters: AssetApiSearchAssetRequest, options?: AxiosRequestConfig): AxiosPromise<Array<AssetResponseDto>> {
|
|
||||||
return localVarFp.searchAsset(requestParameters.searchAssetDto, options).then((request) => request(axios, basePath));
|
|
||||||
},
|
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
* @param {AssetApiSearchAssetsRequest} requestParameters Request parameters.
|
* @param {AssetApiSearchAssetsRequest} requestParameters Request parameters.
|
||||||
|
|
@ -9645,20 +9569,6 @@ export interface AssetApiRunAssetJobsRequest {
|
||||||
readonly assetJobsDto: AssetJobsDto
|
readonly assetJobsDto: AssetJobsDto
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Request parameters for searchAsset operation in AssetApi.
|
|
||||||
* @export
|
|
||||||
* @interface AssetApiSearchAssetRequest
|
|
||||||
*/
|
|
||||||
export interface AssetApiSearchAssetRequest {
|
|
||||||
/**
|
|
||||||
*
|
|
||||||
* @type {SearchAssetDto}
|
|
||||||
* @memberof AssetApiSearchAsset
|
|
||||||
*/
|
|
||||||
readonly searchAssetDto: SearchAssetDto
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Request parameters for searchAssets operation in AssetApi.
|
* Request parameters for searchAssets operation in AssetApi.
|
||||||
* @export
|
* @export
|
||||||
|
|
@ -10415,17 +10325,6 @@ export class AssetApi extends BaseAPI {
|
||||||
return AssetApiFp(this.configuration).runAssetJobs(requestParameters.assetJobsDto, options).then((request) => request(this.axios, this.basePath));
|
return AssetApiFp(this.configuration).runAssetJobs(requestParameters.assetJobsDto, options).then((request) => request(this.axios, this.basePath));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
*
|
|
||||||
* @param {AssetApiSearchAssetRequest} requestParameters Request parameters.
|
|
||||||
* @param {*} [options] Override http request option.
|
|
||||||
* @throws {RequiredError}
|
|
||||||
* @memberof AssetApi
|
|
||||||
*/
|
|
||||||
public searchAsset(requestParameters: AssetApiSearchAssetRequest, options?: AxiosRequestConfig) {
|
|
||||||
return AssetApiFp(this.configuration).searchAsset(requestParameters.searchAssetDto, options).then((request) => request(this.axios, this.basePath));
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
* @param {AssetApiSearchAssetsRequest} requestParameters Request parameters.
|
* @param {AssetApiSearchAssetsRequest} requestParameters Request parameters.
|
||||||
|
|
|
||||||
3
mobile/openapi/.openapi-generator/FILES
generated
3
mobile/openapi/.openapi-generator/FILES
generated
|
|
@ -109,7 +109,6 @@ doc/RecognitionConfig.md
|
||||||
doc/ScanLibraryDto.md
|
doc/ScanLibraryDto.md
|
||||||
doc/SearchAlbumResponseDto.md
|
doc/SearchAlbumResponseDto.md
|
||||||
doc/SearchApi.md
|
doc/SearchApi.md
|
||||||
doc/SearchAssetDto.md
|
|
||||||
doc/SearchAssetResponseDto.md
|
doc/SearchAssetResponseDto.md
|
||||||
doc/SearchExploreItem.md
|
doc/SearchExploreItem.md
|
||||||
doc/SearchExploreResponseDto.md
|
doc/SearchExploreResponseDto.md
|
||||||
|
|
@ -293,7 +292,6 @@ lib/model/reaction_type.dart
|
||||||
lib/model/recognition_config.dart
|
lib/model/recognition_config.dart
|
||||||
lib/model/scan_library_dto.dart
|
lib/model/scan_library_dto.dart
|
||||||
lib/model/search_album_response_dto.dart
|
lib/model/search_album_response_dto.dart
|
||||||
lib/model/search_asset_dto.dart
|
|
||||||
lib/model/search_asset_response_dto.dart
|
lib/model/search_asset_response_dto.dart
|
||||||
lib/model/search_explore_item.dart
|
lib/model/search_explore_item.dart
|
||||||
lib/model/search_explore_response_dto.dart
|
lib/model/search_explore_response_dto.dart
|
||||||
|
|
@ -458,7 +456,6 @@ test/recognition_config_test.dart
|
||||||
test/scan_library_dto_test.dart
|
test/scan_library_dto_test.dart
|
||||||
test/search_album_response_dto_test.dart
|
test/search_album_response_dto_test.dart
|
||||||
test/search_api_test.dart
|
test/search_api_test.dart
|
||||||
test/search_asset_dto_test.dart
|
|
||||||
test/search_asset_response_dto_test.dart
|
test/search_asset_response_dto_test.dart
|
||||||
test/search_explore_item_test.dart
|
test/search_explore_item_test.dart
|
||||||
test/search_explore_response_dto_test.dart
|
test/search_explore_response_dto_test.dart
|
||||||
|
|
|
||||||
BIN
mobile/openapi/README.md
generated
BIN
mobile/openapi/README.md
generated
Binary file not shown.
BIN
mobile/openapi/doc/AssetApi.md
generated
BIN
mobile/openapi/doc/AssetApi.md
generated
Binary file not shown.
BIN
mobile/openapi/doc/SearchAssetDto.md
generated
BIN
mobile/openapi/doc/SearchAssetDto.md
generated
Binary file not shown.
BIN
mobile/openapi/lib/api.dart
generated
BIN
mobile/openapi/lib/api.dart
generated
Binary file not shown.
BIN
mobile/openapi/lib/api/asset_api.dart
generated
BIN
mobile/openapi/lib/api/asset_api.dart
generated
Binary file not shown.
BIN
mobile/openapi/lib/api_client.dart
generated
BIN
mobile/openapi/lib/api_client.dart
generated
Binary file not shown.
BIN
mobile/openapi/lib/model/search_asset_dto.dart
generated
BIN
mobile/openapi/lib/model/search_asset_dto.dart
generated
Binary file not shown.
BIN
mobile/openapi/test/asset_api_test.dart
generated
BIN
mobile/openapi/test/asset_api_test.dart
generated
Binary file not shown.
BIN
mobile/openapi/test/search_asset_dto_test.dart
generated
BIN
mobile/openapi/test/search_asset_dto_test.dart
generated
Binary file not shown.
|
|
@ -1763,51 +1763,6 @@
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"/asset/search": {
|
|
||||||
"post": {
|
|
||||||
"operationId": "searchAsset",
|
|
||||||
"parameters": [],
|
|
||||||
"requestBody": {
|
|
||||||
"content": {
|
|
||||||
"application/json": {
|
|
||||||
"schema": {
|
|
||||||
"$ref": "#/components/schemas/SearchAssetDto"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"required": true
|
|
||||||
},
|
|
||||||
"responses": {
|
|
||||||
"200": {
|
|
||||||
"content": {
|
|
||||||
"application/json": {
|
|
||||||
"schema": {
|
|
||||||
"items": {
|
|
||||||
"$ref": "#/components/schemas/AssetResponseDto"
|
|
||||||
},
|
|
||||||
"type": "array"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"description": ""
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"security": [
|
|
||||||
{
|
|
||||||
"bearer": []
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"cookie": []
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"api_key": []
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"tags": [
|
|
||||||
"Asset"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"/asset/search-terms": {
|
"/asset/search-terms": {
|
||||||
"get": {
|
"get": {
|
||||||
"operationId": "getAssetSearchTerms",
|
"operationId": "getAssetSearchTerms",
|
||||||
|
|
@ -8346,17 +8301,6 @@
|
||||||
],
|
],
|
||||||
"type": "object"
|
"type": "object"
|
||||||
},
|
},
|
||||||
"SearchAssetDto": {
|
|
||||||
"properties": {
|
|
||||||
"searchTerm": {
|
|
||||||
"type": "string"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"required": [
|
|
||||||
"searchTerm"
|
|
||||||
],
|
|
||||||
"type": "object"
|
|
||||||
},
|
|
||||||
"SearchAssetResponseDto": {
|
"SearchAssetResponseDto": {
|
||||||
"properties": {
|
"properties": {
|
||||||
"count": {
|
"count": {
|
||||||
|
|
|
||||||
|
|
@ -27,7 +27,6 @@ import { CheckExistingAssetsDto } from './dto/check-existing-assets.dto';
|
||||||
import { CreateAssetDto, ImportAssetDto } from './dto/create-asset.dto';
|
import { CreateAssetDto, ImportAssetDto } from './dto/create-asset.dto';
|
||||||
import { DeviceIdDto } from './dto/device-id.dto';
|
import { DeviceIdDto } from './dto/device-id.dto';
|
||||||
import { GetAssetThumbnailDto } from './dto/get-asset-thumbnail.dto';
|
import { GetAssetThumbnailDto } from './dto/get-asset-thumbnail.dto';
|
||||||
import { SearchAssetDto } from './dto/search-asset.dto';
|
|
||||||
import { ServeFileDto } from './dto/serve-file.dto';
|
import { ServeFileDto } from './dto/serve-file.dto';
|
||||||
import { AssetBulkUploadCheckResponseDto } from './response-dto/asset-check-response.dto';
|
import { AssetBulkUploadCheckResponseDto } from './response-dto/asset-check-response.dto';
|
||||||
import { AssetFileUploadResponseDto } from './response-dto/asset-file-upload-response.dto';
|
import { AssetFileUploadResponseDto } from './response-dto/asset-file-upload-response.dto';
|
||||||
|
|
@ -144,15 +143,6 @@ export class AssetController {
|
||||||
return this.assetService.getAssetSearchTerm(authUser);
|
return this.assetService.getAssetSearchTerm(authUser);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Post('/search')
|
|
||||||
@HttpCode(HttpStatus.OK)
|
|
||||||
searchAsset(
|
|
||||||
@AuthUser() authUser: AuthUserDto,
|
|
||||||
@Body(ValidationPipe) dto: SearchAssetDto,
|
|
||||||
): Promise<AssetResponseDto[]> {
|
|
||||||
return this.assetService.searchAsset(authUser, dto);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get all AssetEntity belong to the user
|
* Get all AssetEntity belong to the user
|
||||||
*/
|
*/
|
||||||
|
|
|
||||||
|
|
@ -13,7 +13,7 @@ import {
|
||||||
newStorageRepositoryMock,
|
newStorageRepositoryMock,
|
||||||
} from '@test';
|
} from '@test';
|
||||||
import { when } from 'jest-when';
|
import { when } from 'jest-when';
|
||||||
import { QueryFailedError, Repository } from 'typeorm';
|
import { QueryFailedError } from 'typeorm';
|
||||||
import { IAssetRepository } from './asset-repository';
|
import { IAssetRepository } from './asset-repository';
|
||||||
import { AssetService } from './asset.service';
|
import { AssetService } from './asset.service';
|
||||||
import { CreateAssetDto } from './dto/create-asset.dto';
|
import { CreateAssetDto } from './dto/create-asset.dto';
|
||||||
|
|
@ -85,7 +85,6 @@ const _getAssets = () => {
|
||||||
|
|
||||||
describe('AssetService', () => {
|
describe('AssetService', () => {
|
||||||
let sut: AssetService;
|
let sut: AssetService;
|
||||||
let a: Repository<AssetEntity>; // TO BE DELETED AFTER FINISHED REFACTORING
|
|
||||||
let accessMock: IAccessRepositoryMock;
|
let accessMock: IAccessRepositoryMock;
|
||||||
let assetRepositoryMock: jest.Mocked<IAssetRepository>;
|
let assetRepositoryMock: jest.Mocked<IAssetRepository>;
|
||||||
let cryptoMock: jest.Mocked<ICryptoRepository>;
|
let cryptoMock: jest.Mocked<ICryptoRepository>;
|
||||||
|
|
@ -115,7 +114,7 @@ describe('AssetService', () => {
|
||||||
storageMock = newStorageRepositoryMock();
|
storageMock = newStorageRepositoryMock();
|
||||||
libraryMock = newLibraryRepositoryMock();
|
libraryMock = newLibraryRepositoryMock();
|
||||||
|
|
||||||
sut = new AssetService(accessMock, assetRepositoryMock, a, cryptoMock, jobMock, libraryMock, storageMock);
|
sut = new AssetService(accessMock, assetRepositoryMock, cryptoMock, jobMock, libraryMock, storageMock);
|
||||||
|
|
||||||
when(assetRepositoryMock.get)
|
when(assetRepositoryMock.get)
|
||||||
.calledWith(assetStub.livePhotoStillAsset.id)
|
.calledWith(assetStub.livePhotoStillAsset.id)
|
||||||
|
|
|
||||||
|
|
@ -24,12 +24,11 @@ import {
|
||||||
Logger,
|
Logger,
|
||||||
NotFoundException,
|
NotFoundException,
|
||||||
} from '@nestjs/common';
|
} from '@nestjs/common';
|
||||||
import { InjectRepository } from '@nestjs/typeorm';
|
|
||||||
import { Response as Res, Response } from 'express';
|
import { Response as Res, Response } from 'express';
|
||||||
import { constants } from 'fs';
|
import { constants } from 'fs';
|
||||||
import fs from 'fs/promises';
|
import fs from 'fs/promises';
|
||||||
import path from 'path';
|
import path from 'path';
|
||||||
import { QueryFailedError, Repository } from 'typeorm';
|
import { QueryFailedError } from 'typeorm';
|
||||||
import { IAssetRepository } from './asset-repository';
|
import { IAssetRepository } from './asset-repository';
|
||||||
import { AssetCore } from './asset.core';
|
import { AssetCore } from './asset.core';
|
||||||
import { AssetBulkUploadCheckDto } from './dto/asset-check.dto';
|
import { AssetBulkUploadCheckDto } from './dto/asset-check.dto';
|
||||||
|
|
@ -37,7 +36,6 @@ import { AssetSearchDto } from './dto/asset-search.dto';
|
||||||
import { CheckExistingAssetsDto } from './dto/check-existing-assets.dto';
|
import { CheckExistingAssetsDto } from './dto/check-existing-assets.dto';
|
||||||
import { CreateAssetDto, ImportAssetDto } from './dto/create-asset.dto';
|
import { CreateAssetDto, ImportAssetDto } from './dto/create-asset.dto';
|
||||||
import { GetAssetThumbnailDto, GetAssetThumbnailFormatEnum } from './dto/get-asset-thumbnail.dto';
|
import { GetAssetThumbnailDto, GetAssetThumbnailFormatEnum } from './dto/get-asset-thumbnail.dto';
|
||||||
import { SearchAssetDto } from './dto/search-asset.dto';
|
|
||||||
import { SearchPropertiesDto } from './dto/search-properties.dto';
|
import { SearchPropertiesDto } from './dto/search-properties.dto';
|
||||||
import { ServeFileDto } from './dto/serve-file.dto';
|
import { ServeFileDto } from './dto/serve-file.dto';
|
||||||
import {
|
import {
|
||||||
|
|
@ -62,7 +60,6 @@ export class AssetService {
|
||||||
constructor(
|
constructor(
|
||||||
@Inject(IAccessRepository) accessRepository: IAccessRepository,
|
@Inject(IAccessRepository) accessRepository: IAccessRepository,
|
||||||
@Inject(IAssetRepository) private _assetRepository: IAssetRepository,
|
@Inject(IAssetRepository) private _assetRepository: IAssetRepository,
|
||||||
@InjectRepository(AssetEntity) private assetRepository: Repository<AssetEntity>,
|
|
||||||
@Inject(ICryptoRepository) private cryptoRepository: ICryptoRepository,
|
@Inject(ICryptoRepository) private cryptoRepository: ICryptoRepository,
|
||||||
@Inject(IJobRepository) private jobRepository: IJobRepository,
|
@Inject(IJobRepository) private jobRepository: IJobRepository,
|
||||||
@Inject(ILibraryRepository) private libraryRepository: ILibraryRepository,
|
@Inject(ILibraryRepository) private libraryRepository: ILibraryRepository,
|
||||||
|
|
@ -285,30 +282,6 @@ export class AssetService {
|
||||||
return Array.from(possibleSearchTerm).filter((x) => x != null && x != '');
|
return Array.from(possibleSearchTerm).filter((x) => x != null && x != '');
|
||||||
}
|
}
|
||||||
|
|
||||||
async searchAsset(authUser: AuthUserDto, searchAssetDto: SearchAssetDto): Promise<AssetResponseDto[]> {
|
|
||||||
const query = `
|
|
||||||
SELECT a.*
|
|
||||||
FROM assets a
|
|
||||||
LEFT JOIN smart_info si ON a.id = si."assetId"
|
|
||||||
LEFT JOIN exif e ON a.id = e."assetId"
|
|
||||||
|
|
||||||
WHERE a."ownerId" = $1
|
|
||||||
AND
|
|
||||||
(
|
|
||||||
TO_TSVECTOR('english', ARRAY_TO_STRING(si.tags, ',')) @@ PLAINTO_TSQUERY('english', $2) OR
|
|
||||||
TO_TSVECTOR('english', ARRAY_TO_STRING(si.objects, ',')) @@ PLAINTO_TSQUERY('english', $2) OR
|
|
||||||
e."exifTextSearchableColumn" @@ PLAINTO_TSQUERY('english', $2)
|
|
||||||
);
|
|
||||||
`;
|
|
||||||
|
|
||||||
const searchResults: AssetEntity[] = await this.assetRepository.query(query, [
|
|
||||||
authUser.id,
|
|
||||||
searchAssetDto.searchTerm,
|
|
||||||
]);
|
|
||||||
|
|
||||||
return searchResults.map((asset) => mapAsset(asset));
|
|
||||||
}
|
|
||||||
|
|
||||||
async getCuratedLocation(authUser: AuthUserDto): Promise<CuratedLocationsResponseDto[]> {
|
async getCuratedLocation(authUser: AuthUserDto): Promise<CuratedLocationsResponseDto[]> {
|
||||||
return this._assetRepository.getLocationsByUserId(authUser.id);
|
return this._assetRepository.getLocationsByUserId(authUser.id);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,6 +0,0 @@
|
||||||
import { IsNotEmpty } from 'class-validator';
|
|
||||||
|
|
||||||
export class SearchAssetDto {
|
|
||||||
@IsNotEmpty()
|
|
||||||
searchTerm!: string;
|
|
||||||
}
|
|
||||||
101
web/src/api/open-api/api.ts
generated
101
web/src/api/open-api/api.ts
generated
|
|
@ -2794,19 +2794,6 @@ export interface SearchAlbumResponseDto {
|
||||||
*/
|
*/
|
||||||
'total': number;
|
'total': number;
|
||||||
}
|
}
|
||||||
/**
|
|
||||||
*
|
|
||||||
* @export
|
|
||||||
* @interface SearchAssetDto
|
|
||||||
*/
|
|
||||||
export interface SearchAssetDto {
|
|
||||||
/**
|
|
||||||
*
|
|
||||||
* @type {string}
|
|
||||||
* @memberof SearchAssetDto
|
|
||||||
*/
|
|
||||||
'searchTerm': string;
|
|
||||||
}
|
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
* @export
|
* @export
|
||||||
|
|
@ -7792,50 +7779,6 @@ export const AssetApiAxiosParamCreator = function (configuration?: Configuration
|
||||||
options: localVarRequestOptions,
|
options: localVarRequestOptions,
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
/**
|
|
||||||
*
|
|
||||||
* @param {SearchAssetDto} searchAssetDto
|
|
||||||
* @param {*} [options] Override http request option.
|
|
||||||
* @throws {RequiredError}
|
|
||||||
*/
|
|
||||||
searchAsset: async (searchAssetDto: SearchAssetDto, options: AxiosRequestConfig = {}): Promise<RequestArgs> => {
|
|
||||||
// verify required parameter 'searchAssetDto' is not null or undefined
|
|
||||||
assertParamExists('searchAsset', 'searchAssetDto', searchAssetDto)
|
|
||||||
const localVarPath = `/asset/search`;
|
|
||||||
// use dummy base URL string because the URL constructor only accepts absolute URLs.
|
|
||||||
const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
|
|
||||||
let baseOptions;
|
|
||||||
if (configuration) {
|
|
||||||
baseOptions = configuration.baseOptions;
|
|
||||||
}
|
|
||||||
|
|
||||||
const localVarRequestOptions = { method: 'POST', ...baseOptions, ...options};
|
|
||||||
const localVarHeaderParameter = {} as any;
|
|
||||||
const localVarQueryParameter = {} as any;
|
|
||||||
|
|
||||||
// authentication cookie required
|
|
||||||
|
|
||||||
// authentication api_key required
|
|
||||||
await setApiKeyToObject(localVarHeaderParameter, "x-api-key", configuration)
|
|
||||||
|
|
||||||
// authentication bearer required
|
|
||||||
// http bearer authentication required
|
|
||||||
await setBearerAuthToObject(localVarHeaderParameter, configuration)
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
localVarHeaderParameter['Content-Type'] = 'application/json';
|
|
||||||
|
|
||||||
setSearchParams(localVarUrlObj, localVarQueryParameter);
|
|
||||||
let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
|
|
||||||
localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};
|
|
||||||
localVarRequestOptions.data = serializeDataIfNeeded(searchAssetDto, localVarRequestOptions, configuration)
|
|
||||||
|
|
||||||
return {
|
|
||||||
url: toPathString(localVarUrlObj),
|
|
||||||
options: localVarRequestOptions,
|
|
||||||
};
|
|
||||||
},
|
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
* @param {string} [id]
|
* @param {string} [id]
|
||||||
|
|
@ -8698,16 +8641,6 @@ export const AssetApiFp = function(configuration?: Configuration) {
|
||||||
const localVarAxiosArgs = await localVarAxiosParamCreator.runAssetJobs(assetJobsDto, options);
|
const localVarAxiosArgs = await localVarAxiosParamCreator.runAssetJobs(assetJobsDto, options);
|
||||||
return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
|
return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
|
||||||
},
|
},
|
||||||
/**
|
|
||||||
*
|
|
||||||
* @param {SearchAssetDto} searchAssetDto
|
|
||||||
* @param {*} [options] Override http request option.
|
|
||||||
* @throws {RequiredError}
|
|
||||||
*/
|
|
||||||
async searchAsset(searchAssetDto: SearchAssetDto, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<Array<AssetResponseDto>>> {
|
|
||||||
const localVarAxiosArgs = await localVarAxiosParamCreator.searchAsset(searchAssetDto, options);
|
|
||||||
return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
|
|
||||||
},
|
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
* @param {string} [id]
|
* @param {string} [id]
|
||||||
|
|
@ -9047,15 +8980,6 @@ export const AssetApiFactory = function (configuration?: Configuration, basePath
|
||||||
runAssetJobs(requestParameters: AssetApiRunAssetJobsRequest, options?: AxiosRequestConfig): AxiosPromise<void> {
|
runAssetJobs(requestParameters: AssetApiRunAssetJobsRequest, options?: AxiosRequestConfig): AxiosPromise<void> {
|
||||||
return localVarFp.runAssetJobs(requestParameters.assetJobsDto, options).then((request) => request(axios, basePath));
|
return localVarFp.runAssetJobs(requestParameters.assetJobsDto, options).then((request) => request(axios, basePath));
|
||||||
},
|
},
|
||||||
/**
|
|
||||||
*
|
|
||||||
* @param {AssetApiSearchAssetRequest} requestParameters Request parameters.
|
|
||||||
* @param {*} [options] Override http request option.
|
|
||||||
* @throws {RequiredError}
|
|
||||||
*/
|
|
||||||
searchAsset(requestParameters: AssetApiSearchAssetRequest, options?: AxiosRequestConfig): AxiosPromise<Array<AssetResponseDto>> {
|
|
||||||
return localVarFp.searchAsset(requestParameters.searchAssetDto, options).then((request) => request(axios, basePath));
|
|
||||||
},
|
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
* @param {AssetApiSearchAssetsRequest} requestParameters Request parameters.
|
* @param {AssetApiSearchAssetsRequest} requestParameters Request parameters.
|
||||||
|
|
@ -9645,20 +9569,6 @@ export interface AssetApiRunAssetJobsRequest {
|
||||||
readonly assetJobsDto: AssetJobsDto
|
readonly assetJobsDto: AssetJobsDto
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Request parameters for searchAsset operation in AssetApi.
|
|
||||||
* @export
|
|
||||||
* @interface AssetApiSearchAssetRequest
|
|
||||||
*/
|
|
||||||
export interface AssetApiSearchAssetRequest {
|
|
||||||
/**
|
|
||||||
*
|
|
||||||
* @type {SearchAssetDto}
|
|
||||||
* @memberof AssetApiSearchAsset
|
|
||||||
*/
|
|
||||||
readonly searchAssetDto: SearchAssetDto
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Request parameters for searchAssets operation in AssetApi.
|
* Request parameters for searchAssets operation in AssetApi.
|
||||||
* @export
|
* @export
|
||||||
|
|
@ -10415,17 +10325,6 @@ export class AssetApi extends BaseAPI {
|
||||||
return AssetApiFp(this.configuration).runAssetJobs(requestParameters.assetJobsDto, options).then((request) => request(this.axios, this.basePath));
|
return AssetApiFp(this.configuration).runAssetJobs(requestParameters.assetJobsDto, options).then((request) => request(this.axios, this.basePath));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
*
|
|
||||||
* @param {AssetApiSearchAssetRequest} requestParameters Request parameters.
|
|
||||||
* @param {*} [options] Override http request option.
|
|
||||||
* @throws {RequiredError}
|
|
||||||
* @memberof AssetApi
|
|
||||||
*/
|
|
||||||
public searchAsset(requestParameters: AssetApiSearchAssetRequest, options?: AxiosRequestConfig) {
|
|
||||||
return AssetApiFp(this.configuration).searchAsset(requestParameters.searchAssetDto, options).then((request) => request(this.axios, this.basePath));
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
* @param {AssetApiSearchAssetsRequest} requestParameters Request parameters.
|
* @param {AssetApiSearchAssetsRequest} requestParameters Request parameters.
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue