diff --git a/generators/express/templates/base/src/infrastructure/cli/createUser.ts b/generators/express/templates/base/src/infrastructure/cli/createUser.ts index 70b4c0ab4..24e54f69f 100644 --- a/generators/express/templates/base/src/infrastructure/cli/createUser.ts +++ b/generators/express/templates/base/src/infrastructure/cli/createUser.ts @@ -6,12 +6,12 @@ import dataSource from '../database/data-source'; await dataSource.initialize(); const args = process.argv.slice(2); - const [username, password] = args; + const [email, password] = args; - if (!username || !password) { - console.error('Usage: createUser [username] [password]'); + if (!email || !password) { + console.error('Usage: createUser [email] [password]'); process.exit(1); } - await createUser({ username, password })({ userRepository }); + await createUser({ email, password })({ userRepository }); })().catch((e) => console.error(e)); diff --git a/generators/express/templates/base/src/infrastructure/routes/users.ts b/generators/express/templates/base/src/infrastructure/routes/users.ts index 1b32c652d..fbe647371 100644 --- a/generators/express/templates/base/src/infrastructure/routes/users.ts +++ b/generators/express/templates/base/src/infrastructure/routes/users.ts @@ -1,5 +1,6 @@ import { Request, Response, Router } from 'express'; import { User } from '../../domain/User'; +import createUser from '../../useCases/createUser'; import listUsers from '../../useCases/listUsers'; import { userRepository } from '../database'; import { mapUser } from '../mappers'; @@ -30,4 +31,13 @@ router.get('/', async (req: Request, res: Response) => { res.json(users.map(mapUser)); }); +router.post('/', async (req: Request, res: Response) => { + if (req.user) { + const user = await createUser(req.body)({ userRepository }); + res.send(mapUser(user)); + } else { + res.sendStatus(404); + } +}); + export default router; diff --git a/generators/express/templates/base/src/useCases/createUser.ts b/generators/express/templates/base/src/useCases/createUser.ts index 5865cba8b..77a73498e 100644 --- a/generators/express/templates/base/src/useCases/createUser.ts +++ b/generators/express/templates/base/src/useCases/createUser.ts @@ -1,7 +1,7 @@ import { User, UserRepository } from '../domain/User'; interface Arg { - username: string, + email: string, password: string, } @@ -9,8 +9,8 @@ interface Context { userRepository: UserRepository; } -const createUser = ({ username, password }: Arg) => async ({ userRepository }: Context): Promise => { - const user = new User(username); +const createUser = ({ email, password }: Arg) => async ({ userRepository }: Context): Promise => { + const user = new User(email); await user.updatePassword(password); await userRepository.save(user);