Files
ruflo/v2/examples/user-api/services/userService.js
T
rUvandClaude Opus 4.5 1b6a1971f7 feat(v3): add comprehensive v3 implementation plans and swarm architecture
- Reorganize v3/ into implementation/ subfolders:
  - planning/, architecture/, migration/, integration/
  - security/, adrs/, research/, swarm-plans/

- Add 15-agent concurrent swarm implementation plans:
  - SWARM-OVERVIEW.md: Hierarchical mesh topology, 4 phases
  - AGENT-SPECIFICATIONS.md: 15 agent configs with capabilities
  - TDD-LONDON-SCHOOL-PLAN.md: Mock-first TDD methodology
  - BENCHMARK-OPTIMIZATION.md: Performance targets (2.49x-7.47x)
  - DEPLOYMENT-PLAN.md: Release strategy, CI/CD, rollback
  - GITHUB-ISSUE-TRACKING.md: Issue workflow with agent replies

- Update .claude/settings.json with proper hooks format
- Add bash aliases for claude --dangerously-skip-permissions

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-04 15:40:51 +00:00

62 lines
1.4 KiB
JavaScript

const User = require('../models/User');
class UserService {
constructor() {
this.users = new Map();
}
createUser(userData) {
const existingUser = this.findByEmail(userData.email);
if (existingUser) {
throw new Error('User with this email already exists');
}
const user = new User(userData);
this.users.set(user.id, user);
return user.toJSON();
}
getAllUsers() {
return Array.from(this.users.values()).map(user => user.toJSON());
}
getUserById(id) {
const user = this.users.get(id);
if (!user) {
throw new Error('User not found');
}
return user.toJSON();
}
updateUser(id, userData) {
const user = this.users.get(id);
if (!user) {
throw new Error('User not found');
}
if (userData.email && userData.email !== user.email) {
const existingUser = this.findByEmail(userData.email);
if (existingUser) {
throw new Error('User with this email already exists');
}
}
user.update(userData);
return user.toJSON();
}
deleteUser(id) {
const user = this.users.get(id);
if (!user) {
throw new Error('User not found');
}
this.users.delete(id);
return { message: 'User deleted successfully' };
}
findByEmail(email) {
return Array.from(this.users.values()).find(user => user.email === email);
}
}
module.exports = new UserService();