Проверить конечную точку аккаунта в петле - PullRequest
0 голосов
/ 24 сентября 2019

Я пытаюсь реализовать проверку конечной точки учетной записи в loopback4 через почтовый пистолет, так как я новичок в loopback4 и в машинописи в целом, я не уверен, правильно ли я поступаю.Я хочу повторить следующий код на картинке для обратной петли. Я уже закончил с сохранением активного флага в базе данных и генерацией secretToken при регистрации.

enter image description here

Мой код в шлейфе

@post('/users/verify')
  async verify(
    @requestBody(VerifyRequestBody) userData: User
  ): Promise<{ userData: object }> {
    try {
      const foundUser = await this.userRepository.findOne({
        where: {
          secretToken: userData.secretToken,
        }
      })
      if (!foundUser) {
        throw new HttpErrors.Forbidden(`No user found`)
      }

      foundUser.active = true;
      foundUser.secretToken = ''
      const savedUser = await this.userRepository.create(foundUser);

    } catch (err) {
      return err
    }
  }

 User model, I am using MongoDB

import { Entity, model, property } from '@loopback/repository';

@model({ settings: {} })
export class User extends Entity {
  @property({
    type: 'string',
    id: true,
  })
  id: string;

  @property({
    type: 'string',
    required: true,
  })
  email: string;

  @property({
    type: 'string',
    required: true,
  })
  password: string;

  @property({
    type: 'string',
    required: true,
  })
  firstName: string;

  @property({
    type: 'string',
    required: true,
  })
  lastName: string;

  @property({
    type: 'string',
    required: false
  })
  secretToken: string;

  @property({
    type: 'boolean',
    required: false,
    default: false
  })
  active: boolean;

  @property.array(String)
  permissions: String[]


  constructor(data?: Partial<User>) {
    super(data);
  }
}

export interface UserRelations {
  // describe navigational properties here
}

export type UserWithRelations = User & UserRelations;

Репозиторий пользователя

import { DefaultCrudRepository } from '@loopback/repository';
import { User, UserRelations } from '../models';
import { MongoDsDataSource } from '../datasources';
import { inject } from '@loopback/core';

export type Credentials = {
  email: string,
  password: string,
  active: boolean
}

export type Verify = {
  secretToken: string
}

export class UserRepository extends DefaultCrudRepository<
  User,
  typeof User.prototype.id,
  UserRelations
  > {
  constructor(@inject('datasources.mongoDS') dataSource: MongoDsDataSource) {
    super(User, dataSource);
  }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...