fix(membership-exit): письмо подтверждения — неблокирующая отправка + лог ссылки
Typecheck / desktop (pull_request) Successful in 13m37s
Typecheck / controller (pull_request) Has been cancelled

Черновик заявления сохраняется до отправки письма; если провайдер писем
недоступен, приём заявления не падает (try/catch + error-лог), пайщик может
отменить. Ссылка подтверждения пишется в debug-лог для диагностики.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
coopops
2026-06-15 15:20:39 +00:00
parent 59585dc4ea
commit b728bc6295
@@ -104,11 +104,21 @@ export class MembershipExitService {
);
const confirmationUrl = `${config.frontend_url}/${config.coopname}/user/membership-exit/confirm?token=${confirmToken}`;
await this.notificationSenderService.sendNotificationToUser(
data.username,
Workflows.MembershipExitConfirmation.id,
{ confirmationUrl }
);
this.logger.debug(`Ссылка подтверждения выхода (${data.username}): ${confirmationUrl}`);
// Письмо — не критично для приёма заявления: черновик уже сохранён, и если
// провайдер писем недоступен, пайщик не теряет заявление (можно отменить).
try {
await this.notificationSenderService.sendNotificationToUser(
data.username,
Workflows.MembershipExitConfirmation.id,
{ confirmationUrl }
);
} catch (e: any) {
this.logger.error(
`Не удалось отправить письмо с подтверждением выхода (${data.username}): ${e?.message ?? e}`
);
}
this.logger.log(
`Принято заявление на выход (ожидает email-подтверждения): ${data.exit_hash} (username=${data.username})`