Я пытаюсь реализовать проверку конечной точки учетной записи в loopback4 через почтовый пистолет, так как я новичок в loopback4 и в машинописи в целом, я не уверен, правильно ли я поступаю.Я хочу повторить следующий код на картинке для обратной петли. Я уже закончил с сохранением активного флага в базе данных и генерацией secretToken при регистрации.
Мой код в шлейфе
@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);
}
}