using AmpDAL.DTO.OpenApiIngestion; using AmpDAL.Query.OpenApiIngestion; using GB5Shared.DTO.Framework.Login; using GB5Shared.QueryExecutor; namespace AmpDAL.CustomCode.OpenApiIngestion; public class OpenApiIngestionDAL(IQueryExecutor _qe) : IOpenApiIngestionDAL { public async Task GetVersionStatusAsync(int apiVersionId, int tenantId, LoginDTO login, CancellationToken ct) => await _qe.ExecuteScalarAsync( login, OpenApiIngestionQB.CHECK_VERSION_STATUS, new { ApiVersionId = apiVersionId, TenantId = tenantId } ).ConfigureAwait(false); public async Task UpdateInterfaceSpecAsync(int apiInterfaceId, int tenantId, string contentHash, int modifiedById, LoginDTO login, CancellationToken ct) => await _qe.ExecuteAsync( login, OpenApiIngestionQB.UPDATE_INTERFACE_SPEC, new { ApiInterfaceId = apiInterfaceId, TenantId = tenantId, ContentHash = contentHash, ModifiedById = modifiedById } ).ConfigureAwait(false); public async Task DeleteParametersByInterfaceAsync(int apiInterfaceId, int tenantId, LoginDTO login, CancellationToken ct) => await _qe.ExecuteAsync( login, OpenApiIngestionQB.DELETE_PARAMS_BY_INTERFACE, new { ApiInterfaceId = apiInterfaceId, TenantId = tenantId } ).ConfigureAwait(false); public async Task DeleteOperationsByInterfaceAsync(int apiInterfaceId, int tenantId, LoginDTO login, CancellationToken ct) => await _qe.ExecuteAsync( login, OpenApiIngestionQB.DELETE_OPERATIONS_BY_INTERFACE, new { ApiInterfaceId = apiInterfaceId, TenantId = tenantId } ).ConfigureAwait(false); public async Task InsertOperationAsync(ParsedOperationDTO op, int apiOperationId, int apiId, int apiInterfaceId, int tenantId, int userId, int sortOrder, LoginDTO login, CancellationToken ct) => await _qe.ExecuteScalarAsync( login, OpenApiIngestionQB.INSERT_OPERATION, new { ApiOperationId = apiOperationId, TenantId = tenantId, ApiId = apiId, ApiInterfaceId = apiInterfaceId, op.OperationKey, HttpMethod = op.HttpMethod, RelativePath = op.RelativePath, Summary = (string?)null, SortOrder = sortOrder, CreatedById = userId, ModifiedById = userId } ).ConfigureAwait(false); public async Task InsertParameterAsync(ParsedParameterDTO param, int parameterId, long apiOperationId, int apiId, int tenantId, int userId, int sortOrder, LoginDTO login, CancellationToken ct) => await _qe.ExecuteAsync( login, OpenApiIngestionQB.INSERT_PARAMETER, new { ParameterId = parameterId, TenantId = tenantId, ApiId = apiId, ApiOperationId = apiOperationId, param.Name, InLocation = param.InLocation, DataType = param.DataType, IsRequired = param.IsRequired ? 1 : 0, SortOrder = sortOrder, CreatedById = userId, ModifiedById = userId } ).ConfigureAwait(false); }