UNPKG

leds-spark-lib

Version:

Biblioteca de geração de código

86 lines (75 loc) 2.61 kB
import { expandToStringWithNL } from "../../../../../../models/model.js"; import fs from "fs"; import path from "path"; export function generate(model, target_folder) { fs.writeFileSync(path.join(target_folder, `User.cs`), generateUser(model)); fs.writeFileSync(path.join(target_folder, `Role.cs`), generateRole(model)); } function generateUser(model) { return expandToStringWithNL ` using ${model.configuration?.name}.Domain.Security.Account.ValueObjects; using ${model.configuration?.name}.Domain.Security.Shared.Entities; namespace ${model.configuration?.name}.Domain.Security.Account.Entities { public class User : Entity { public string Name { get; private set; } = string.Empty; public Email Email { get; private set; } = null!; public Password Password { get; private set; } = null!; public List<Role> Roles { get; set; } = []; public Guid? RefreshToken { get; set; } protected User() { } public User(string name, Email email, Password password, Guid? refreshToken) { Name = name; Email = email; Password = password; RefreshToken = refreshToken; Roles = new List<Role>(); } public User(string name, Email email, Password password) { Name = name; Email = email; Password = password; Roles = new List<Role>(); } public void UpdatePassword(string plainTextPassword, string code) { if (!string.Equals(code.Trim(), Password.ResetCode.Trim(), StringComparison.CurrentCultureIgnoreCase)) throw new Exception("Código de restauração inválido"); var password = new Password(plainTextPassword); Password = password; } public void UpdateEmail(Email email) { Email = email; } public void UpdateRefreshToken(Guid? token) { RefreshToken = token; } public void addRole(Role role) { Roles.Add(role); } } }`; } function generateRole(model) { return expandToStringWithNL ` using ${model.configuration?.name}.Domain.Security.Shared.Entities; namespace ${model.configuration?.name}.Domain.Security.Account.Entities { public class Role : Entity { public string Name { get; set; } = string.Empty; public List<User> Users { get; set; } = new(); public Role(string name) { Name = name; } } }`; } //# sourceMappingURL=generate.js.map