feat: refactor createDatabase method to remove databaseNodeId parameter and implement findOptimalNode in DatabaseNodeService for improved database node selection
This commit is contained in:
@ -18,6 +18,22 @@ export class DatabaseNodeService extends DatabaseEncryptionService {
|
||||
return this.databaseNodeRepository.findOne({ where: { id } });
|
||||
}
|
||||
|
||||
async findOptimalNode(): Promise<DatabaseNode | null> {
|
||||
const nodes = await this.databaseNodeRepository.find({
|
||||
relations: ["databases"],
|
||||
});
|
||||
|
||||
if (nodes.length === 0) {
|
||||
return null;
|
||||
}
|
||||
|
||||
return nodes.reduce((optimalNode, currentNode) => {
|
||||
const currentCount = currentNode.databases?.length || 0;
|
||||
const optimalCount = optimalNode.databases?.length || 0;
|
||||
return currentCount < optimalCount ? currentNode : optimalNode;
|
||||
});
|
||||
}
|
||||
|
||||
async initDatabase(
|
||||
data: {
|
||||
database: string;
|
||||
|
||||
Reference in New Issue
Block a user