Skip to content

Commit

Permalink
create user
Browse files Browse the repository at this point in the history
  • Loading branch information
alfredo003 committed Dec 3, 2024
1 parent 8f927b1 commit 5c3e053
Show file tree
Hide file tree
Showing 9 changed files with 63 additions and 49 deletions.
7 changes: 0 additions & 7 deletions docker-compose.yml
Original file line number Diff line number Diff line change
Expand Up @@ -14,13 +14,6 @@ services:
volumes:
- pgdata:/data/postgres
network_mode: host
app:
build: .
container_name: xtasks
ports:
- 2000:2000
volumes:
- .:/usr/app

volumes:
pgdata:
Expand Down
20 changes: 20 additions & 0 deletions src/controllers/MilistoneController.ts
Original file line number Diff line number Diff line change
Expand Up @@ -12,4 +12,24 @@ export class MilistoneController
return res.status(500).json({message:"Error fetching milistones",error})
}
}
static async create(req:Request, res:Response):Promise<Response>
{
const {title,date,user_id} = req.body;

if (!title || !date || !user_id) {
return res.status(400).json({ message: "Missing required fields" });
}

try {
const milistone = MilistoneRepository.create({
title,
date,
user_id,
});
const milistoneSave = await MilistoneRepository.save(milistone);
return res.status(201).json(milistoneSave);
} catch (error) {
return res.status(500).json({ message: "Error saving milistone", error });
}
}
}
25 changes: 25 additions & 0 deletions src/controllers/UserController.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
import { Request, Response } from "express";
import { UserRepository } from "../repositories/UserRepository";

export class UserController {
static async create(req: Request, res: Response): Promise<Response> {
const { name, email, password } = req.body;

if (!name || !email || !password) {
return res.status(400).json({ message: "Missing required fields" });
}

const userAlreadyExists = await UserRepository.findOne({where: {email}});

if(userAlreadyExists)
throw new Error('Email address already used!');

try {
const user = UserRepository.create({name,email,password});
const userSave = await UserRepository.save(user);
return res.status(201).json(userSave);
} catch (error) {
return res.status(500).json({ message: "Error saving user", error });
}
}
}
5 changes: 5 additions & 0 deletions src/repositories/UserRepository.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
import { Repository } from "typeorm";
import { User } from "../models/User";
import { AppDataSource } from "../database";

export const UserRepository: Repository<User> = AppDataSource.getRepository(User);
3 changes: 2 additions & 1 deletion src/routes/index.ts
Original file line number Diff line number Diff line change
@@ -1,8 +1,9 @@
import { Router } from "express";
import { milistoneRouter } from "./milistone.routes";
import { usersRouter } from "./user.routes";

const router = Router();

router.use('/milistones',milistoneRouter);

router.use("/users", usersRouter);
export {router}
1 change: 1 addition & 0 deletions src/routes/milistone.routes.ts
Original file line number Diff line number Diff line change
Expand Up @@ -5,5 +5,6 @@ const milistoneRouter = Router();

milistoneRouter.get("/", MilistoneController.getAll)

milistoneRouter.post("/", MilistoneController.create);

export{milistoneRouter};
8 changes: 8 additions & 0 deletions src/routes/user.routes.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
import { Router } from "express";
import { UserController } from "../controllers/UserController";

const usersRouter = Router();

usersRouter.post("/", UserController.create);

export { usersRouter };
4 changes: 2 additions & 2 deletions src/server.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,8 @@ import express from "express";
import { router } from "./routes";
import { AppDataSource } from "./database";


const app = express();
app.use(express.json());
app.use(router);

AppDataSource.initialize()
Expand All @@ -13,4 +13,4 @@ AppDataSource.initialize()
})
.catch((err) => {
console.error("Error during Data Source initialization", err);
});
});
39 changes: 0 additions & 39 deletions src/services/CreateMilistoneService.ts

This file was deleted.

0 comments on commit 5c3e053

Please sign in to comment.