1- import { Project , validateWBS , WbsNumber , wbsPipe } from 'shared' ;
1+ import { Manufacturer , MaterialType , Project , validateWBS , WbsNumber , wbsPipe } from 'shared' ;
22import { NextFunction , Request , Response } from 'express' ;
3- import { Manufacturer , User } from '@prisma/client' ;
3+ import { User } from '@prisma/client' ;
44import { getCurrentUser } from '../utils/auth.utils' ;
55import ProjectsService from '../services/projects.services' ;
66
@@ -29,11 +29,38 @@ export default class ProjectsController {
2929 static async createProject ( req : Request , res : Response , next : NextFunction ) {
3030 try {
3131 const user : User = await getCurrentUser ( res ) ;
32- const { crId, carNumber, name, summary, teamId } = req . body ;
32+ const {
33+ name,
34+ crId,
35+ carNumber,
36+ teamIds,
37+ budget,
38+ summary,
39+ projectLeadId,
40+ projectManagerId,
41+ links,
42+ goals,
43+ features,
44+ otherConstraints,
45+ rules
46+ } = req . body ;
3347
34- const createdWbsNumber : WbsNumber = await ProjectsService . createProject ( user , crId , carNumber , name , summary , [
35- teamId
36- ] ) ;
48+ const createdWbsNumber : WbsNumber = await ProjectsService . createProject (
49+ user ,
50+ crId ,
51+ carNumber ,
52+ name ,
53+ summary ,
54+ teamIds ,
55+ budget ,
56+ links ,
57+ rules ,
58+ goals ,
59+ features ,
60+ otherConstraints ,
61+ projectLeadId ,
62+ projectManagerId
63+ ) ;
3764
3865 return res . status ( 200 ) . json ( wbsPipe ( createdWbsNumber ) ) ;
3966 } catch ( error : unknown ) {
@@ -167,14 +194,14 @@ export default class ProjectsController {
167194 manufacturerName ,
168195 manufacturerPartNumber ,
169196 quantity ,
170- unitName ,
171197 price ,
172198 subtotal ,
173199 linkUrl ,
174200 notes ,
175201 wbsNum ,
176202 assemblyId ,
177- pdmFileName
203+ pdmFileName ,
204+ unitName
178205 ) ;
179206 return res . status ( 200 ) . json ( material ) ;
180207 } catch ( error : unknown ) {
@@ -193,6 +220,17 @@ export default class ProjectsController {
193220 }
194221 }
195222
223+ static async deleteManufacturer ( req : Request , res : Response , next : NextFunction ) {
224+ try {
225+ const user : User = await getCurrentUser ( res ) ;
226+ const { manufacturerName } = req . params ;
227+ const deletedManufacturer = await ProjectsService . deleteManufacturer ( user , manufacturerName ) ;
228+ res . status ( 200 ) . json ( deletedManufacturer ) ;
229+ } catch ( error : unknown ) {
230+ next ( error ) ;
231+ }
232+ }
233+
196234 static async getAllManufacturers ( req : Request , res : Response , next : NextFunction ) {
197235 try {
198236 const user = await getCurrentUser ( res ) ;
@@ -203,6 +241,16 @@ export default class ProjectsController {
203241 }
204242 }
205243
244+ static async getAllMaterialTypes ( req : Request , res : Response , next : NextFunction ) {
245+ try {
246+ const user = await getCurrentUser ( res ) ;
247+ const materialTypes : MaterialType [ ] = await ProjectsService . getAllMaterialTypes ( user ) ;
248+ return res . status ( 200 ) . json ( materialTypes ) ;
249+ } catch ( error : unknown ) {
250+ next ( error ) ;
251+ }
252+ }
253+
206254 static async createMaterialType ( req : Request , res : Response , next : NextFunction ) {
207255 try {
208256 const { name } = req . body ;
@@ -213,4 +261,112 @@ export default class ProjectsController {
213261 next ( error ) ;
214262 }
215263 }
264+
265+ static async assignMaterialAssembly ( req : Request , res : Response , next : NextFunction ) {
266+ try {
267+ const { materialId } = req . params ;
268+ const { assemblyId } = req . body ;
269+ const user = await getCurrentUser ( res ) ;
270+ const updatedMaterial = await ProjectsService . assignMaterialAssembly ( user , materialId , assemblyId ) ;
271+ res . status ( 200 ) . json ( updatedMaterial ) ;
272+ } catch ( error : unknown ) {
273+ next ( error ) ;
274+ }
275+ }
276+
277+ static async deleteAssemblyType ( req : Request , res : Response , next : NextFunction ) {
278+ try {
279+ const { assemblyId } = req . params ;
280+ const user = await getCurrentUser ( res ) ;
281+ const deletedAssembly = await ProjectsService . deleteAssembly ( assemblyId , user ) ;
282+ res . status ( 200 ) . json ( deletedAssembly ) ;
283+ } catch ( error : unknown ) {
284+ next ( error ) ;
285+ }
286+ }
287+
288+ static async deleteMaterialType ( req : Request , res : Response , next : NextFunction ) {
289+ try {
290+ const { materialTypeId } = req . params ;
291+ const user = await getCurrentUser ( res ) ;
292+ const deletedMaterial = await ProjectsService . deleteMaterialType ( materialTypeId , user ) ;
293+ res . status ( 200 ) . json ( deletedMaterial ) ;
294+ } catch ( error : unknown ) {
295+ next ( error ) ;
296+ }
297+ }
298+
299+ static async deleteMaterial ( req : Request , res : Response , next : NextFunction ) {
300+ try {
301+ const { materialId } = req . params ;
302+ const user : User = await getCurrentUser ( res ) ;
303+ const updatedMaterial = await ProjectsService . deleteMaterial ( user , materialId ) ;
304+ res . status ( 200 ) . json ( updatedMaterial ) ;
305+ } catch ( error : unknown ) {
306+ next ( error ) ;
307+ }
308+ }
309+
310+ static async editMaterial ( req : Request , res : Response , next : NextFunction ) {
311+ try {
312+ const user = await getCurrentUser ( res ) ;
313+ const { materialId } = req . params ;
314+ const {
315+ name,
316+ assemblyId,
317+ status,
318+ materialTypeName,
319+ manufacturerName,
320+ manufacturerPartNumber,
321+ pdmFileName,
322+ quantity,
323+ unitName,
324+ price,
325+ subtotal,
326+ linkUrl,
327+ notes
328+ } = req . body ;
329+ const updatedMaterial = await ProjectsService . editMaterial (
330+ user ,
331+ materialId ,
332+ name ,
333+ status ,
334+ materialTypeName ,
335+ manufacturerName ,
336+ manufacturerPartNumber ,
337+ quantity ,
338+ price ,
339+ subtotal ,
340+ linkUrl ,
341+ notes ,
342+ unitName ,
343+ assemblyId ,
344+ pdmFileName
345+ ) ;
346+ res . status ( 200 ) . json ( updatedMaterial ) ;
347+ } catch ( error : unknown ) {
348+ next ( error ) ;
349+ }
350+ }
351+
352+ static async getAllUnits ( _req : Request , res : Response , next : NextFunction ) {
353+ try {
354+ const user = await getCurrentUser ( res ) ;
355+ const units = await ProjectsService . getAllUnits ( user ) ;
356+ res . status ( 200 ) . json ( units ) ;
357+ } catch ( error : unknown ) {
358+ next ( error ) ;
359+ }
360+ }
361+
362+ static async createUnit ( req : Request , res : Response , next : NextFunction ) {
363+ try {
364+ const { name } = req . body ;
365+ const user = await getCurrentUser ( res ) ;
366+ const createdUnit = await ProjectsService . createUnit ( name , user ) ;
367+ res . status ( 200 ) . json ( createdUnit ) ;
368+ } catch ( error : unknown ) {
369+ next ( error ) ;
370+ }
371+ }
216372}
0 commit comments