Size: a a a

NestJS — русскоязычное сообщество

2020 October 07

K

Konstantin in NestJS — русскоязычное сообщество
Андрей
public async findOne<T extends boolean>(
 userId: number, returnEntity?: T
): Promise<T extends true ? UserEntity : UserRo | null> {
 const user = await this._userRepository.findOne(userId);

 if (!user) return null;
 return returnEntity ? user : user.toResponseObject() as any;
}


что скажете на такое решение пробелмы?
почему по месту не вызвать toResponseObject ??
источник

А

Андрей in NestJS — русскоязычное сообщество
Konstantin
почему по месту не вызвать toResponseObject ??
потому что в большинстве случаев метод сервиса дергается из контроллера и всегда нужне ResponseObject.
А вот полностью Entity нужно в единичных случаях.
поэтому, думаю, логичнее  toResponseObject оставить в сервисе
источник

K

Konstantin in NestJS — русскоязычное сообщество
ну на здоровье)))
источник

А

Андрей in NestJS — русскоязычное сообщество
так говорите, как-будто знаете что-то) Я делаю что-то не так?
источник

А

Андрей in NestJS — русскоязычное сообщество
Konstantin
ну на здоровье)))
я думал, что может стоит вызывать toResponseObject в контроллере. мол это все же объекты для http ответа

И вот сейчас я снова засомнивался)
источник

K

Konstantin in NestJS — русскоязычное сообщество
public async findOne(userId: number): Promise<UserEntity> {
 return await this._userRepository.findOne(userId);
}
источник

K

Konstantin in NestJS — русскоязычное сообщество
хороший вариант)
источник

K

Konstantin in NestJS — русскоязычное сообщество
public async findOne(userId: number): Promise<UserEntity> {
 return await this._userRepository.findOne(userId);
}

public async findOneAsResponseObject(userId: number): Promise<UserRo> {
 return await this.findOne(userId).then((userEntity: UserEntity) => userEntity.toResponseObject());
}
источник

K

Konstantin in NestJS — русскоязычное сообщество
тоже как вариант
источник

K

Konstantin in NestJS — русскоязычное сообщество
ну не должен один метод возвращать разные вещи
источник

А

Андрей in NestJS — русскоязычное сообщество
Konstantin
public async findOne(userId: number): Promise<UserEntity> {
 return await this._userRepository.findOne(userId);
}
получается дергать toResponseObject в контроллере не так уж и плохо?

меня смущали вот такие конструкции
[
 UserEntity {
 toResponseObject: [Function],
 id: 2,
 name: null,
 phone: '+12343234215125',
 createdAt: 2020-09-25T08:59:13.271Z,
 updatedAt: 2020-09-25T08:59:13.271Z
 contacts: [
   PhotoEntity {
     url: 'http://....',
     desc: 'string'
   },
   PhotoEntity {
     url: 'http://....',
     desc: 'string'
   },
   PhotoEntity {
     url: 'http://....',
     desc: 'string'
   }
 ]
 },
 UserEntity {
   toResponseObject: [Function],
   id: 1,
   name: null,
   phone: '+12343234215125',
   createdAt: 2020-09-24T13:43:09.830Z,
   updatedAt: 2020-09-29T09:10:28.579Z
 }
]


поэтому я и решил эту логику оставить в сервисе
источник

🏡K

🏡 ILshat Khamitov in NestJS — русскоязычное сообщество
Андрей
получается дергать toResponseObject в контроллере не так уж и плохо?

меня смущали вот такие конструкции
[
 UserEntity {
 toResponseObject: [Function],
 id: 2,
 name: null,
 phone: '+12343234215125',
 createdAt: 2020-09-25T08:59:13.271Z,
 updatedAt: 2020-09-25T08:59:13.271Z
 contacts: [
   PhotoEntity {
     url: 'http://....',
     desc: 'string'
   },
   PhotoEntity {
     url: 'http://....',
     desc: 'string'
   },
   PhotoEntity {
     url: 'http://....',
     desc: 'string'
   }
 ]
 },
 UserEntity {
   toResponseObject: [Function],
   id: 1,
   name: null,
   phone: '+12343234215125',
   createdAt: 2020-09-24T13:43:09.830Z,
   updatedAt: 2020-09-29T09:10:28.579Z
 }
]


поэтому я и решил эту логику оставить в сервисе
Class transform юзай для преобразования объектов туда сюда, и сериализуемый интерцептор, и пофигу что сервис вернёт, интерцептор с конвертирует в то что надо и описал декораторами
источник

🏡K

🏡 ILshat Khamitov in NestJS — русскоязычное сообщество
На входе гард стоит который тоже сериализует и отфильтрует только нужные поля и лишнее уберёт, чтобы кто попало не мог менять любое поле
источник

А

Андрей in NestJS — русскоязычное сообщество
🏡 ILshat Khamitov
Class transform юзай для преобразования объектов туда сюда, и сериализуемый интерцептор, и пофигу что сервис вернёт, интерцептор с конвертирует в то что надо и описал декораторами
может есть ссылка на примеры по этой теме или на доку? Офф доку про интерцепторы смотерл, но не нашел ничего про transform
источник

OM

Oleksandr Myshchyshy... in NestJS — русскоязычное сообщество
Ребят, делаю авторизацию через google,  использую @nestjs/passport и passport-google-oauth20

Как мне достать пароль пользователя??

Сейчас приходит имя, почта. и другие данные,  а мне надо почта и пароль
источник

AS

Andrey Selemenev in NestJS — русскоязычное сообщество
пароль от гугла? никак
источник

GS

Grigorii K. Shartsev in NestJS — русскоязычное сообщество
Oleksandr Myshchyshyn
Ребят, делаю авторизацию через google,  использую @nestjs/passport и passport-google-oauth20

Как мне достать пароль пользователя??

Сейчас приходит имя, почта. и другие данные,  а мне надо почта и пароль
А зачем тебе его пароль?
источник

OM

Oleksandr Myshchyshy... in NestJS — русскоязычное сообщество
что-бы автоматически заполнить поле password
источник

GS

Grigorii K. Shartsev in NestJS — русскоязычное сообщество
Oleksandr Myshchyshyn
что-бы автоматически заполнить поле password
В идеале пароль даже гугл не знает. И зачем тебе заполнять поле пароль другого человека?
источник

GS

Grigorii K. Shartsev in NestJS — русскоязычное сообщество
Звучит, как хак 1лвл
источник