UNPKG

leds-spark-lib

Version:

Biblioteca de geração de código

49 lines (47 loc) 1.58 kB
import { expandToString, isLocalEntity, isModule } from "../../../../models/model.js"; export function generateODataExtension(model) { return expandToString ` using ${model.configuration?.name}.Application.DTOs.Entities.Response; using Microsoft.AspNetCore.OData; using Microsoft.OData.Edm; using Microsoft.OData.ModelBuilder; namespace ${model.configuration?.name}.WebApi.Extensions { public static class ODataExtension { private static IEdmModel GetEdmModel() { ODataConventionModelBuilder builder = new(); ${generateEntitySets(model)} return builder.GetEdmModel(); } public static void ODataConfiguration(this IServiceCollection services) { services.AddControllers(options => { // Add filter exceptions here }) .AddOData(options => options .SkipToken() .AddRouteComponents("api", GetEdmModel()) .Select() .Filter() .OrderBy() .SetMaxTop(4) .Count() .Expand()); } } }`; } function generateEntitySets(model) { const modules = model.abstractElements.filter(isModule); let entitySets = ""; for (const mod of modules) { for (const cls of mod.elements.filter(isLocalEntity)) { entitySets += `builder.EntitySet<${cls.name}ResponseDTO>("${cls.name.toLowerCase()}"); \n`; } } return entitySets; } //# sourceMappingURL=generateODataExtension.js.map