create-hest-app
Version:
Create HestJS-powered applications with one command
56 lines (46 loc) • 1.48 kB
text/typescript
import { Injectable } from '@hestjs/core';
import type { User } from './entities/user.entity';
import type { CreateUserDto, UpdateUserDto } from './dto/user.dto';
/**
* 用户服务
*/
export class UsersService {
private users: User[] = [
{ id: 1, name: 'John Doe', email: 'john@example.com', age: 30 },
{ id: 2, name: 'Jane Smith', email: 'jane@example.com', age: 25 },
];
findAll(): User[] {
return this.users;
}
findOne(id: number): User | undefined {
return this.users.find(user => user.id === id);
}
create(createUserDto: CreateUserDto): Omit<User, 'password'> {
const newUser: User = {
id: this.users.length + 1,
...createUserDto,
};
this.users.push(newUser);
// 不返回密码
const { password: _password, ...userWithoutPassword } = newUser;
return userWithoutPassword;
}
update(id: number, updateUserDto: UpdateUserDto): User {
const userIndex = this.users.findIndex(user => user.id === id);
if (userIndex === -1) {
throw new Error('User not found');
}
this.users[userIndex] = { ...this.users[userIndex], ...updateUserDto };
return this.users[userIndex];
}
remove(id: number): User {
const userIndex = this.users.findIndex(user => user.id === id);
if (userIndex === -1) {
throw new Error('User not found');
}
const deletedUser = this.users[userIndex];
this.users.splice(userIndex, 1);
return deletedUser;
}
}