Skip to content

Commit 99c1b5b

Browse files
committed
routes added
1 parent 4db9c99 commit 99c1b5b

9 files changed

Lines changed: 417 additions & 2 deletions

File tree

package.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,8 @@
77
"test": "tests"
88
},
99
"scripts": {
10-
"test": "jest"
10+
"test": "jest" ,
11+
"dev" : " "
1112
},
1213
"repository": {
1314
"type": "git",
Lines changed: 129 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,129 @@
1+
import * as projectService from "../services/project.service";
2+
import { Request , Response } from "express";
3+
import { ApiError } from "../utils/apiError";
4+
5+
export const getProjects = async ( req : Request , res : Response ) => {
6+
7+
try {
8+
const projects = await projectService.getPrjects();
9+
res.json(projects);
10+
} catch (error) {
11+
throw new ApiError( "No project found !!!" , 404)
12+
}
13+
};
14+
15+
export const getProjectById = async ( req : Request , res : Response ) => {
16+
17+
try{
18+
const projectId = parseInt( req.params.projectId );
19+
const project = await projectService.getProjectById( projectId );
20+
res.json(project);
21+
22+
}catch(error){
23+
throw new ApiError("No project with this ID" , 404);
24+
}
25+
};
26+
27+
export const createProject = async ( req : Request , res : Response ) => {
28+
29+
try {
30+
const projectContent = {
31+
name: req.body.name,
32+
imageUrl: req.body.imageUrl,
33+
githubUrl: req.body.githubUrl,
34+
deployUrl: req.body.deployUrl,
35+
adminId: req.AdminId,
36+
};
37+
38+
const project = await projectService.createProject(projectContent);
39+
res.json(project);
40+
41+
} catch (error) {
42+
throw new ApiError( error as string , 404);
43+
}
44+
};
45+
46+
export const updateProjects = async ( req : Request , res : Response ) => {
47+
48+
try {
49+
const projectInfo = req.body;
50+
const projectId = parseInt(req.params.projectId);
51+
if( !projectId ) throw new ApiError( " Send The project id " , 401);
52+
53+
const project = await projectService.updateProjects( projectInfo , projectId );
54+
res.json(project)
55+
56+
} catch (error) {
57+
throw new ApiError(error as string , 404);
58+
}
59+
}
60+
61+
62+
export const deleteProjects = async ( req : Request , res : Response ) => {
63+
64+
try {
65+
const projectId = parseInt(req.params.projectId);
66+
if( !projectId ) throw new ApiError( " Send The project id " , 401);
67+
68+
69+
const deleted = await projectService.deleteProjects( projectId );
70+
res.json(deleted)
71+
72+
} catch (error) {
73+
console.log(error)
74+
throw new ApiError( error as string , 404);
75+
}
76+
77+
}
78+
79+
export const getMembersByProjectId = async ( req : Request , res : Response ) => {
80+
81+
try {
82+
const projectId = parseInt( req.params.ProjectId );
83+
84+
if( !projectId ) throw new ApiError( " Project Id required !!! " , 401);
85+
86+
const members = await projectService.getMembersByProjectId(projectId);
87+
res.json(members)
88+
89+
}
90+
catch (error) {
91+
throw new ApiError( error as string , 404);
92+
}
93+
94+
95+
}
96+
97+
export const addMembers = async ( req : Request , res : Response ) => {
98+
99+
try {
100+
const data = {
101+
projectId : parseInt ( req.params.projectId ),
102+
memberId : req.body.memberId
103+
}
104+
105+
const member = await projectService.addMembers( data );
106+
res.json(member)
107+
} catch (error) {
108+
console.log(error)
109+
throw new ApiError( error as string , 404);
110+
}
111+
}
112+
113+
114+
export const removeMembers = async ( req : Request , res : Response ) => {
115+
116+
try {
117+
const data = {
118+
projectId : parseInt ( req.params.projectId ),
119+
memberId : req.body.memberId
120+
}
121+
122+
const removedMember = await projectService.removeMembers(data);
123+
res.json(removedMember);
124+
125+
} catch (error) {
126+
throw new ApiError( error as string , 404);
127+
}
128+
}
129+

src/db/client.ts

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
import { PrismaClient } from "../generated/prisma";
2+
3+
const prisma = new PrismaClient();
4+
5+
export { prisma };

src/routes/index.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ import projectsRouter from './projects'
88
export default function routes(upload: Multer, supabase: SupabaseClient) {
99
const router = Router()
1010

11-
router.use('/members', membersRouter(upload, supabase))
11+
// router.use('/members', membersRouter(upload, supabase))
1212
router.use('/projects', projectsRouter(upload, supabase))
1313
// … mount other routers, just write xyzRouter() if the routes in that router don't need multer or supabase
1414

src/routes/progress.ts

Lines changed: 81 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,81 @@
1+
import { Router } from 'express'
2+
import { Multer } from 'multer'
3+
import { SupabaseClient } from '@supabase/supabase-js'
4+
import {
5+
addMembers,
6+
createProject,
7+
deleteProjects,
8+
getMembersByProjectId,
9+
getProjectById,
10+
getProjects,
11+
removeMembers,
12+
updateProjects
13+
} from '../controllers/project.controller'
14+
15+
16+
17+
export default function projectsRouter(
18+
upload: Multer,
19+
supabase: SupabaseClient
20+
) {
21+
const router = Router()
22+
23+
// Getting all User
24+
router.get(
25+
'/',
26+
getProjects
27+
)
28+
29+
// get Project by Id
30+
router.get(
31+
'/:projectId',
32+
getProjectById
33+
)
34+
35+
// Create project
36+
router.post(
37+
'/',
38+
createProject
39+
)
40+
41+
// Update Project
42+
router.patch(
43+
'/:projectId',
44+
updateProjects
45+
)
46+
47+
// delete projects
48+
router.delete(
49+
'/:projectId',
50+
deleteProjects
51+
)
52+
53+
// getMember by ProjectId
54+
55+
router.get(
56+
'/:projectId/members',
57+
getMembersByProjectId
58+
)
59+
60+
// add member to project
61+
router.post(
62+
'/:projectId/members',
63+
addMembers
64+
)
65+
66+
// Remover the memnber
67+
router.delete(
68+
'/:projectId/members/:memberId',
69+
removeMembers
70+
)
71+
72+
// Photo upload endpoint:
73+
// router.post(
74+
// '/:projectId/photo',
75+
// upload.single('photo'),
76+
// (req, res, next) => memberCtrl.uploadPhoto(req, res, next, supabase)
77+
// )
78+
79+
80+
return router
81+
}

src/routes/projects.ts

Lines changed: 81 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,81 @@
1+
import { Router } from 'express'
2+
import { Multer } from 'multer'
3+
import { SupabaseClient } from '@supabase/supabase-js'
4+
import {
5+
addMembers,
6+
createProject,
7+
deleteProjects,
8+
getMembersByProjectId,
9+
getProjectById,
10+
getProjects,
11+
removeMembers,
12+
updateProjects
13+
} from '../controllers/project.controller'
14+
15+
16+
17+
export default function projectsRouter(
18+
upload: Multer,
19+
supabase: SupabaseClient
20+
) {
21+
const router = Router()
22+
23+
// Getting all User
24+
router.get(
25+
'/',
26+
getProjects
27+
)
28+
29+
// get Project by Id
30+
router.get(
31+
'/:projectId',
32+
getProjectById
33+
)
34+
35+
// Create project
36+
router.post(
37+
'/create',
38+
createProject
39+
)
40+
41+
// Update Project
42+
router.patch(
43+
'/:projectId',
44+
updateProjects
45+
)
46+
47+
// delete projects
48+
router.delete(
49+
'/:projectId',
50+
deleteProjects
51+
)
52+
53+
// getMember by ProjectId
54+
55+
router.get(
56+
'/:projectId/members',
57+
getMembersByProjectId
58+
)
59+
60+
// add member to project
61+
router.post(
62+
'/:projectId/members',
63+
addMembers
64+
)
65+
66+
// Remover the memnber
67+
router.delete(
68+
'/:projectId/members/:memberId',
69+
removeMembers
70+
)
71+
72+
// Photo upload endpoint:
73+
// router.post(
74+
// '/:projectId/photo',
75+
// upload.single('photo'),
76+
// (req, res, next) => memberCtrl.uploadPhoto(req, res, next, supabase)
77+
// )
78+
79+
80+
return router
81+
}

0 commit comments

Comments
 (0)