diff --git a/src/Cli/ConfigGenerator.cs b/src/Cli/ConfigGenerator.cs index 8cec9dd239..f9fb54f06d 100644 --- a/src/Cli/ConfigGenerator.cs +++ b/src/Cli/ConfigGenerator.cs @@ -3268,7 +3268,7 @@ public static bool TrySimulateAutoentities(AutoConfigSimulateOptions options, Fi if (runtimeConfig.DataSource.DatabaseType != DatabaseType.MSSQL) { - _logger.LogError("Autoentities simulation is only supported for MSSQL databases. Current database type: {DatabaseType}.", runtimeConfig.DataSource.DatabaseType); + _logger.LogError("The autoentities simulation is only supported for MSSQL databases. Current database type: {DatabaseType}.", runtimeConfig.DataSource.DatabaseType); return false; } @@ -3360,7 +3360,7 @@ public static bool TrySimulateAutoentities(AutoConfigSimulateOptions options, Fi /// The simulation results keyed by filter (definition) name. private static void WriteSimulationResultsToConsole(Dictionary> results) { - Console.WriteLine("AutoEntities Simulation Results"); + Console.WriteLine("Autoentities Simulation Results"); Console.WriteLine(); foreach ((string filterName, List<(string EntityName, string SchemaName, string ObjectName)> matches) in results) diff --git a/src/Config/ObjectModel/RuntimeConfig.cs b/src/Config/ObjectModel/RuntimeConfig.cs index 89cc7413d1..fb536109ab 100644 --- a/src/Config/ObjectModel/RuntimeConfig.cs +++ b/src/Config/ObjectModel/RuntimeConfig.cs @@ -502,7 +502,7 @@ public string GetDataSourceNameFromAutoentityName(string autoentityName) if (!_autoentityNameToDataSourceName.TryGetValue(autoentityName, out string? autoentityDataSource)) { throw new DataApiBuilderException( - message: $"{autoentityName} is not a valid autoentity.", + message: $"'{autoentityName}' is not a valid autoentities definition.", statusCode: HttpStatusCode.NotFound, subStatusCode: DataApiBuilderException.SubStatusCodes.EntityNotFound); } diff --git a/src/Core/Services/MetadataProviders/MsSqlMetadataProvider.cs b/src/Core/Services/MetadataProviders/MsSqlMetadataProvider.cs index 96fa47dcfd..8af409b4e8 100644 --- a/src/Core/Services/MetadataProviders/MsSqlMetadataProvider.cs +++ b/src/Core/Services/MetadataProviders/MsSqlMetadataProvider.cs @@ -305,7 +305,7 @@ protected override async Task GenerateAutoentitiesIntoEntities(IReadOnlyDictiona foreach ((string autoentityName, Autoentity autoentity) in autoentities) { int addedEntities = 0; - JsonArray? resultArray = await QueryAutoentitiesAsync(autoentity); + JsonArray? resultArray = await QueryAutoentitiesAsync(autoentityName, autoentity); if (resultArray is null) { continue; @@ -316,7 +316,7 @@ protected override async Task GenerateAutoentitiesIntoEntities(IReadOnlyDictiona if (resultObject is null) { throw new DataApiBuilderException( - message: $"Cannot create new entity from autoentity pattern due to an internal error.", + message: $"Cannot create new entity from autoentities definition '{autoentityName}' due to an internal error.", statusCode: HttpStatusCode.InternalServerError, subStatusCode: DataApiBuilderException.SubStatusCodes.ErrorInInitialization); } @@ -329,7 +329,7 @@ protected override async Task GenerateAutoentitiesIntoEntities(IReadOnlyDictiona if (string.IsNullOrWhiteSpace(entityName) || string.IsNullOrWhiteSpace(objectName) || string.IsNullOrWhiteSpace(schemaName)) { - _logger.LogError("Skipping autoentity generation: entity_name or object is null or empty for autoentity pattern '{AutoentityName}'.", autoentityName); + _logger.LogError("Skipping autoentity generation: 'entity_name', 'object', or 'schema' is null or empty for autoentities definition '{AutoentityName}'.", autoentityName); continue; } @@ -356,7 +356,7 @@ protected override async Task GenerateAutoentitiesIntoEntities(IReadOnlyDictiona if (!entities.TryAdd(entityName, generatedEntity) || !runtimeConfig.TryAddGeneratedAutoentityNameToDataSourceName(entityName, autoentityName)) { throw new DataApiBuilderException( - message: $"Entity with name '{entityName}' already exists. Cannot create new entity from autoentity pattern with definition-name '{autoentityName}'.", + message: $"Entity with name '{entityName}' already exists. Cannot create new entity from autoentities definition '{autoentityName}'.", statusCode: HttpStatusCode.BadRequest, subStatusCode: DataApiBuilderException.SubStatusCodes.ErrorInInitialization); } @@ -375,14 +375,14 @@ protected override async Task GenerateAutoentitiesIntoEntities(IReadOnlyDictiona if (addedEntities == 0) { - _logger.LogWarning("No new entities were generated from the autoentity {autoentityName} defined in the configuration.", autoentityName); + _logger.LogWarning("No new entities were generated from the autoentities definition '{autoentityName}'.", autoentityName); } } _runtimeConfigProvider.AddMergedEntitiesToConfig(entities); } - public async Task QueryAutoentitiesAsync(Autoentity autoentity) + public async Task QueryAutoentitiesAsync(string autoentityName, Autoentity autoentity) { string include = string.Join(",", autoentity.Patterns.Include); string exclude = string.Join(",", autoentity.Patterns.Exclude); @@ -395,10 +395,10 @@ protected override async Task GenerateAutoentitiesIntoEntities(IReadOnlyDictiona { $"{BaseQueryStructure.PARAM_NAME_PREFIX}name_pattern", new(namePattern, null, SqlDbType.NVarChar) } }; - _logger.LogInformation("Query for Autoentities is being executed with the following parameters."); - _logger.LogInformation($"Autoentities include pattern: {include}"); - _logger.LogInformation($"Autoentities exclude pattern: {exclude}"); - _logger.LogInformation($"Autoentities name pattern: {namePattern}"); + _logger.LogDebug("Query for autoentities is being executed with the following parameters."); + _logger.LogDebug($"The autoentities definition '{autoentityName}' include pattern: {include}"); + _logger.LogDebug($"The autoentities definition '{autoentityName}' exclude pattern: {exclude}"); + _logger.LogDebug($"The autoentities definition '{autoentityName}' name pattern: {namePattern}"); JsonArray? resultArray = await QueryExecutor.ExecuteQueryAsync( sqltext: getAutoentitiesQuery, diff --git a/src/Core/Services/MetadataProviders/SqlMetadataProvider.cs b/src/Core/Services/MetadataProviders/SqlMetadataProvider.cs index 6aa2712468..662da43b9c 100644 --- a/src/Core/Services/MetadataProviders/SqlMetadataProvider.cs +++ b/src/Core/Services/MetadataProviders/SqlMetadataProvider.cs @@ -711,7 +711,7 @@ private void GenerateDatabaseObjectForEntities() /// protected virtual Task GenerateAutoentitiesIntoEntities(IReadOnlyDictionary? autoentities) { - throw new NotSupportedException($"{GetType().Name} does not support Autoentities yet."); + throw new NotSupportedException($"{GetType().Name} does not support autoentities yet."); } protected void PopulateDatabaseObjectForEntity( diff --git a/src/Service.Tests/Configuration/ConfigurationTests.cs b/src/Service.Tests/Configuration/ConfigurationTests.cs index 6dac0266bd..a8925f3ad6 100644 --- a/src/Service.Tests/Configuration/ConfigurationTests.cs +++ b/src/Service.Tests/Configuration/ConfigurationTests.cs @@ -5611,7 +5611,7 @@ public async Task TestAutoentitiesAreGeneratedIntoEntities(bool useEntities, int /// [TestCategory(TestCategory.MSSQL)] [DataTestMethod] - [DataRow("publishers", "uniqueSingularPublisher", "uniquePluralPublishers", "/unique/publisher", "Entity with name 'publishers' already exists. Cannot create new entity from autoentity pattern with definition-name 'PublisherAutoEntity'.", DisplayName = "Autoentities fail due to entity name")] + [DataRow("publishers", "uniqueSingularPublisher", "uniquePluralPublishers", "/unique/publisher", "Entity with name 'publishers' already exists. Cannot create new entity from autoentities definition 'PublisherAutoEntity'.", DisplayName = "Autoentities fail due to entity name")] [DataRow("UniquePublisher", "publishers", "uniquePluralPublishers", "/unique/publisher", "Entity publishers generates queries/mutation that already exist", DisplayName = "Autoentities fail due to graphql singular type")] [DataRow("UniquePublisher", "uniqueSingularPublisher", "publishers", "/unique/publisher", "Entity publishers generates queries/mutation that already exist", DisplayName = "Autoentities fail due to graphql plural type")] [DataRow("UniquePublisher", "uniqueSingularPublisher", "uniquePluralPublishers", "/publishers", "The rest path: publishers specified for entity: publishers is already used by another entity.", DisplayName = "Autoentities fail due to rest path")] diff --git a/src/Service.Tests/UnitTests/SqlMetadataProviderUnitTests.cs b/src/Service.Tests/UnitTests/SqlMetadataProviderUnitTests.cs index 4c5782b4ca..7242716847 100644 --- a/src/Service.Tests/UnitTests/SqlMetadataProviderUnitTests.cs +++ b/src/Service.Tests/UnitTests/SqlMetadataProviderUnitTests.cs @@ -634,7 +634,7 @@ public async Task CheckAutoentitiesQuery(string[] include, string[] exclude, str // Act MsSqlMetadataProvider metadataProvider = (MsSqlMetadataProvider)_sqlMetadataProvider; - JsonArray resultArray = await metadataProvider.QueryAutoentitiesAsync(autoentity); + JsonArray resultArray = await metadataProvider.QueryAutoentitiesAsync("autoentity", autoentity); // Assert Assert.IsNotNull(resultArray);