feat(web/server): merge faces (#3121)

* feat(server/web): Merge faces

* get parent id

* update

* query to get identical asset and change controller

* change delete asset signature

* delete identical assets

* gaming time

* delete merge person

* query

* query

* generate api

* pr feedback

* generate api

* naming

* remove unused method

* Update server/src/domain/person/person.service.ts

Co-authored-by: Jason Rasmussen <jrasm91@gmail.com>

* Update server/src/domain/person/person.service.ts

Co-authored-by: Jason Rasmussen <jrasm91@gmail.com>

* better method signature

* cleaning up

* fix bug

* added interfaces

* added tests

* merge main

* api

* build merge face interface

* api

* selector interface

* style

* more style

* clean up import

* styling

* styling

* better

* styling

* styling

* add merge face diablog

* finished

* refactor: merge person endpoint

* refactor: merge person component

* chore: open api

* fix: tests

---------

Co-authored-by: Jason Rasmussen <jrasm91@gmail.com>
This commit is contained in:
Alex
2023-07-11 16:52:41 -05:00
committed by GitHub
parent 848ba685eb
commit c86b2ae500
30 changed files with 1478 additions and 71 deletions

View File

@@ -798,6 +798,41 @@ export interface AuthDeviceResponseDto {
*/
'deviceOS': string;
}
/**
*
* @export
* @interface BulkIdResponseDto
*/
export interface BulkIdResponseDto {
/**
*
* @type {string}
* @memberof BulkIdResponseDto
*/
'id': string;
/**
*
* @type {boolean}
* @memberof BulkIdResponseDto
*/
'success': boolean;
/**
*
* @type {string}
* @memberof BulkIdResponseDto
*/
'error'?: BulkIdResponseDtoErrorEnum;
}
export const BulkIdResponseDtoErrorEnum = {
Duplicate: 'duplicate',
NoPermission: 'no_permission',
NotFound: 'not_found',
Unknown: 'unknown'
} as const;
export type BulkIdResponseDtoErrorEnum = typeof BulkIdResponseDtoErrorEnum[keyof typeof BulkIdResponseDtoErrorEnum];
/**
*
* @export
@@ -1686,6 +1721,19 @@ export interface MemoryLaneResponseDto {
*/
'assets': Array<AssetResponseDto>;
}
/**
*
* @export
* @interface MergePersonDto
*/
export interface MergePersonDto {
/**
*
* @type {Array<string>}
* @memberof MergePersonDto
*/
'ids': Array<string>;
}
/**
*
* @export
@@ -8807,6 +8855,54 @@ export const PersonApiAxiosParamCreator = function (configuration?: Configuratio
options: localVarRequestOptions,
};
},
/**
*
* @param {string} id
* @param {MergePersonDto} mergePersonDto
* @param {*} [options] Override http request option.
* @throws {RequiredError}
*/
mergePerson: async (id: string, mergePersonDto: MergePersonDto, options: AxiosRequestConfig = {}): Promise<RequestArgs> => {
// verify required parameter 'id' is not null or undefined
assertParamExists('mergePerson', 'id', id)
// verify required parameter 'mergePersonDto' is not null or undefined
assertParamExists('mergePerson', 'mergePersonDto', mergePersonDto)
const localVarPath = `/person/{id}/merge`
.replace(`{${"id"}}`, encodeURIComponent(String(id)));
// 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(mergePersonDto, localVarRequestOptions, configuration)
return {
url: toPathString(localVarUrlObj),
options: localVarRequestOptions,
};
},
/**
*
* @param {string} id
@@ -8904,6 +9000,17 @@ export const PersonApiFp = function(configuration?: Configuration) {
const localVarAxiosArgs = await localVarAxiosParamCreator.getPersonThumbnail(id, options);
return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
},
/**
*
* @param {string} id
* @param {MergePersonDto} mergePersonDto
* @param {*} [options] Override http request option.
* @throws {RequiredError}
*/
async mergePerson(id: string, mergePersonDto: MergePersonDto, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<Array<BulkIdResponseDto>>> {
const localVarAxiosArgs = await localVarAxiosParamCreator.mergePerson(id, mergePersonDto, options);
return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
},
/**
*
* @param {string} id
@@ -8960,6 +9067,15 @@ export const PersonApiFactory = function (configuration?: Configuration, basePat
getPersonThumbnail(requestParameters: PersonApiGetPersonThumbnailRequest, options?: AxiosRequestConfig): AxiosPromise<File> {
return localVarFp.getPersonThumbnail(requestParameters.id, options).then((request) => request(axios, basePath));
},
/**
*
* @param {PersonApiMergePersonRequest} requestParameters Request parameters.
* @param {*} [options] Override http request option.
* @throws {RequiredError}
*/
mergePerson(requestParameters: PersonApiMergePersonRequest, options?: AxiosRequestConfig): AxiosPromise<Array<BulkIdResponseDto>> {
return localVarFp.mergePerson(requestParameters.id, requestParameters.mergePersonDto, options).then((request) => request(axios, basePath));
},
/**
*
* @param {PersonApiUpdatePersonRequest} requestParameters Request parameters.
@@ -9014,6 +9130,27 @@ export interface PersonApiGetPersonThumbnailRequest {
readonly id: string
}
/**
* Request parameters for mergePerson operation in PersonApi.
* @export
* @interface PersonApiMergePersonRequest
*/
export interface PersonApiMergePersonRequest {
/**
*
* @type {string}
* @memberof PersonApiMergePerson
*/
readonly id: string
/**
*
* @type {MergePersonDto}
* @memberof PersonApiMergePerson
*/
readonly mergePersonDto: MergePersonDto
}
/**
* Request parameters for updatePerson operation in PersonApi.
* @export
@@ -9085,6 +9222,17 @@ export class PersonApi extends BaseAPI {
return PersonApiFp(this.configuration).getPersonThumbnail(requestParameters.id, options).then((request) => request(this.axios, this.basePath));
}
/**
*
* @param {PersonApiMergePersonRequest} requestParameters Request parameters.
* @param {*} [options] Override http request option.
* @throws {RequiredError}
* @memberof PersonApi
*/
public mergePerson(requestParameters: PersonApiMergePersonRequest, options?: AxiosRequestConfig) {
return PersonApiFp(this.configuration).mergePerson(requestParameters.id, requestParameters.mergePersonDto, options).then((request) => request(this.axios, this.basePath));
}
/**
*
* @param {PersonApiUpdatePersonRequest} requestParameters Request parameters.