mirror of
https://github.com/SyncrowIOT/backend.git
synced 2025-07-16 02:36:19 +00:00
for now
This commit is contained in:
@ -7,6 +7,7 @@ import {
|
||||
SubspaceProductRepository,
|
||||
SubspaceRepository,
|
||||
} from '@app/common/modules/space/repositories/subspace.repository';
|
||||
import { IUpdateSubspaceModelInterface } from '../interfaces';
|
||||
|
||||
@CommandHandler(PropogateSubspaceCommand)
|
||||
export class PropogateSubspaceHandler
|
||||
@ -24,14 +25,14 @@ export class PropogateSubspaceHandler
|
||||
async execute(command: PropogateSubspaceCommand): Promise<void> {
|
||||
try {
|
||||
const newSubspaceModels = command.param?.new;
|
||||
const updateSubspaceModels = command.param?.update;
|
||||
|
||||
if (!newSubspaceModels || newSubspaceModels.length === 0) {
|
||||
this.logger.warn('No new subspace models provided.');
|
||||
if (!newSubspaceModels && !updateSubspaceModels) {
|
||||
this.logger.warn('No new or updated subspace models provided.');
|
||||
return;
|
||||
}
|
||||
|
||||
const spaceModelUuid =
|
||||
newSubspaceModels[0]?.subspaceModel?.spaceModel?.uuid;
|
||||
const spaceModelUuid = command.param.spaceModelUuid;
|
||||
|
||||
if (!spaceModelUuid) {
|
||||
this.logger.error(
|
||||
@ -47,7 +48,13 @@ export class PropogateSubspaceHandler
|
||||
return;
|
||||
}
|
||||
|
||||
await this.processSubspaces(newSubspaceModels, spaces);
|
||||
if (newSubspaceModels && newSubspaceModels.length > 0) {
|
||||
await this.processNewSubspaces(newSubspaceModels, spaces);
|
||||
}
|
||||
|
||||
if (updateSubspaceModels && updateSubspaceModels.length > 0) {
|
||||
await this.updateSubspaces(updateSubspaceModels);
|
||||
}
|
||||
} catch (error) {
|
||||
this.logger.error(
|
||||
'Error in PropogateSubspaceHandler execution',
|
||||
@ -56,7 +63,40 @@ export class PropogateSubspaceHandler
|
||||
}
|
||||
}
|
||||
|
||||
private async processSubspaces(
|
||||
private async updateSubspaces(models: IUpdateSubspaceModelInterface[]) {
|
||||
try {
|
||||
for (const model of models) {
|
||||
try {
|
||||
const subspaceModelUuid = model.uuid;
|
||||
if (model.subspaceName) {
|
||||
const subspaces = await this.subspaceRepository.find({
|
||||
where: {
|
||||
subSpaceModel: {
|
||||
uuid: subspaceModelUuid,
|
||||
},
|
||||
},
|
||||
});
|
||||
|
||||
if (subspaces.length > 0) {
|
||||
await this.subspaceRepository.update(subspaces, {
|
||||
subspaceName: model.subspaceName,
|
||||
});
|
||||
}
|
||||
}
|
||||
} catch (innerError) {
|
||||
this.logger.error(
|
||||
`Error updating subspace model with UUID: ${model.uuid}`,
|
||||
innerError.stack,
|
||||
);
|
||||
}
|
||||
}
|
||||
} catch (error) {
|
||||
this.logger.error('Error in updateSubspaces method', error.stack);
|
||||
throw new Error('Failed to update subspaces.');
|
||||
}
|
||||
}
|
||||
|
||||
private async processNewSubspaces(
|
||||
newSubspaceModels: any[],
|
||||
spaces: SpaceEntity[],
|
||||
) {
|
||||
|
@ -15,6 +15,7 @@ export interface ProductModelInterface {
|
||||
}
|
||||
|
||||
export interface IModifySubspaceModelInterface {
|
||||
spaceModelUuid: string;
|
||||
new?: AddSubspaceModelInterface[];
|
||||
update?: IUpdateSubspaceModelInterface[];
|
||||
delete?: IDeletedSubsaceModelInterface[];
|
||||
|
@ -75,9 +75,8 @@ export class SubSpaceModelService {
|
||||
queryRunner: QueryRunner,
|
||||
) {
|
||||
const updateResults: IUpdateSubspaceModelInterface[] = [];
|
||||
|
||||
for (const dto of updateDtos) {
|
||||
try {
|
||||
try {
|
||||
for (const dto of updateDtos) {
|
||||
const subspaceModel = await this.findOne(dto.subspaceUuid);
|
||||
const updateResult: IUpdateSubspaceModelInterface = {
|
||||
uuid: dto.subspaceUuid,
|
||||
@ -94,14 +93,18 @@ export class SubSpaceModelService {
|
||||
}
|
||||
|
||||
updateResults.push(updateResult);
|
||||
} catch (error) {
|
||||
console.error(
|
||||
`SubspaceModel with ${dto.subspaceUuid} not able to update ${error}`,
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
return updateResults;
|
||||
return updateResults;
|
||||
} catch (error) {
|
||||
if (error instanceof HttpException) {
|
||||
throw error;
|
||||
}
|
||||
throw new HttpException(
|
||||
error.message || 'Failed to update SpaceModels',
|
||||
HttpStatus.INTERNAL_SERVER_ERROR,
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
async deleteSubspaceModels(
|
||||
@ -179,7 +182,9 @@ export class SubSpaceModelService {
|
||||
spaceModel: SpaceModelEntity,
|
||||
queryRunner: QueryRunner,
|
||||
) {
|
||||
const subspaces: IModifySubspaceModelInterface = {};
|
||||
const subspaces: IModifySubspaceModelInterface = {
|
||||
spaceModelUuid: spaceModel.uuid,
|
||||
};
|
||||
try {
|
||||
if (dto.add) {
|
||||
const addedSubspaces = await this.createSubSpaceModels(
|
||||
@ -194,11 +199,20 @@ export class SubSpaceModelService {
|
||||
queryRunner,
|
||||
);
|
||||
subspaces.update = updatedSubspaces;
|
||||
} else if (dto.delete) {
|
||||
const deletedSubspaces = await this.deleteSubspaceModels(
|
||||
dto.delete,
|
||||
queryRunner,
|
||||
);
|
||||
subspaces.delete = deletedSubspaces;
|
||||
}
|
||||
return subspaces;
|
||||
} catch (error) {
|
||||
if (error instanceof HttpException) {
|
||||
throw error;
|
||||
}
|
||||
throw new HttpException(
|
||||
error.message || 'Failed to update SpaceModel',
|
||||
error.message || 'Failed to modify SpaceModels',
|
||||
HttpStatus.INTERNAL_SERVER_ERROR,
|
||||
);
|
||||
}
|
||||
|
Reference in New Issue
Block a user