UNPKG

leds-spark-lib

Version:

Biblioteca de geração de código

121 lines (100 loc) 4.11 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, "BaseSecurityService.cs"), generateBaseSecurity(model)); fs.writeFileSync(path.join(target_folder, "EmailService.cs"), generateEmailService(model)); } function generateBaseSecurity(model) { return expandToStringWithNL ` using MediatR; using ${model.configuration?.name}.Domain.Interfaces.Security; using ${model.configuration?.name}.Domain.Security.Shared.Entities; namespace ${model.configuration?.name}.Application.Security.Services { public class BaseSecurityService<Repository> : IBaseSecurityRepository<Entity> where Repository : IBaseSecurityRepository<Entity> { private readonly IMediator _mediator; private readonly Repository _repository; public BaseSecurityService(IMediator mediator, Repository repository) { _mediator = mediator; _repository = repository; } public void Create(Entity entity) { throw new NotImplementedException(); } public void Delete(Entity entity) { throw new NotImplementedException(); } public IQueryable<Entity> GetAll() { throw new NotImplementedException(); } public IQueryable<Entity> GetById(Guid id) { throw new NotImplementedException(); } public void Update(Entity entity) { throw new NotImplementedException(); } } }`; } function generateEmailService(model) { return expandToStringWithNL ` using MimeKit; using ${model.configuration?.name}.Application.Security.Interfaces; using ${model.configuration?.name}.Domain.Security.Account; using ${model.configuration?.name}.Domain.Security.Account.Entities; using SmtpClient = MailKit.Net.Smtp.SmtpClient; namespace ${model.configuration?.name}.Application.Security.Services { public class EmailService : IService { public async Task SendVerificationEmailAsync(User user, CancellationToken cancellationToken) { var email = new MimeMessage(); email.From.Add(new MailboxAddress("Sender Name", Configuration.Email.DefaultFromEmail)); email.To.Add(new MailboxAddress("Receiver Name", user.Email.Address)); email.Subject = "Verifique sua conta"; email.Body = new TextPart(MimeKit.Text.TextFormat.Text) { Text = $"Código de verificação de email: {user.Email.Verification.Code}" }; using (var smtp = new SmtpClient()) { smtp.Connect("smtp.gmail.com", 587, false); // Note: only needed if the SMTP server requires authentication smtp.Authenticate(Configuration.Email.DefaultFromEmail, Configuration.Email.ApiKey); smtp.Send(email); smtp.Disconnect(true); } } public async Task SendResetPasswordAsync(User user, CancellationToken cancellationToken) { var email = new MimeMessage(); email.From.Add(new MailboxAddress("Sender Name", Configuration.Email.DefaultFromEmail)); email.To.Add(new MailboxAddress("Receiver Name", user.Email.Address)); email.Subject = "Alterar Senha"; email.Body = new TextPart(MimeKit.Text.TextFormat.Text) { Text = $"Código de alteração de senha: {user.Password.ResetCode}" }; using (var smtp = new SmtpClient()) { smtp.Connect("smtp.gmail.com", 587, false); // Note: only needed if the SMTP server requires authentication smtp.Authenticate(Configuration.Email.DefaultFromEmail, Configuration.Email.ApiKey); smtp.Send(email); smtp.Disconnect(true); } } } }`; } //# sourceMappingURL=generate.js.map