Ребят, если у кого-то есть нормальное объяснение того, как под капотом происходит резолвинг внедряемого провайдера, поделитесь пожалуйста. Выглядит как магия, а оф. документация не дает четкого понимания
И волшебным образом внедряется этот провайдер через название поля + тип
constructor(private catsService: CatsService)
Nest резолвит эту зависимость на этапе компилирования ts в js, опираясь на тип CatsService, или в рантайме, опираясь на название поля и значение в поле provide самого провайдера?
на этапе компиляции он видит декоратор @Injectable и собирает инфу о всех провайдерах которые нужно инжектнуть (тип или токен) в рантайме он сопоставляет токены с реальными провайдерами и подставляет их
Коллеги, подскажите как реализовать следующий кейс по best practices
Клиент на фронте создает какое-то занятие отправляет на бэк
1. Нужно проверить, что пользователь авторизован (я это делаю через гуард авторизации) 2. Нужно проверить, что учитель имеет право создавать занятие на этого ученика 3. Нужно проверить, что у него на запланированный промежуток времени нет никаких других событий в календаре 4. Нужно проверить, что в классе на запланированное время нет никаких занятий
Если хотя бы одно из этих условий не выполняется - выслать нужный код ошибки