11import { Project , validateWBS , WbsNumber , wbsPipe } from 'shared' ;
22import { NextFunction , Request , Response } from 'express' ;
3- import { User } from '@prisma/client' ;
3+ import { Manufacturer , User } from '@prisma/client' ;
44import { getCurrentUser } from '../utils/auth.utils' ;
55import ProjectsService from '../services/projects.services' ;
66
@@ -167,14 +167,14 @@ export default class ProjectsController {
167167 manufacturerName ,
168168 manufacturerPartNumber ,
169169 quantity ,
170- unitName ,
171170 price ,
172171 subtotal ,
173172 linkUrl ,
174173 notes ,
175174 wbsNum ,
176175 assemblyId ,
177- pdmFileName
176+ pdmFileName ,
177+ unitName
178178 ) ;
179179 return res . status ( 200 ) . json ( material ) ;
180180 } catch ( error : unknown ) {
@@ -193,6 +193,27 @@ export default class ProjectsController {
193193 }
194194 }
195195
196+ static async deleteManufacturer ( req : Request , res : Response , next : NextFunction ) {
197+ try {
198+ const user : User = await getCurrentUser ( res ) ;
199+ const { manufacturerName } = req . params ;
200+ const deletedManufacturer : Manufacturer = await ProjectsService . deleteManufacturer ( user , manufacturerName ) ;
201+ res . status ( 200 ) . json ( deletedManufacturer ) ;
202+ } catch ( error : unknown ) {
203+ next ( error ) ;
204+ }
205+ }
206+
207+ static async getAllManufacturers ( req : Request , res : Response , next : NextFunction ) {
208+ try {
209+ const user = await getCurrentUser ( res ) ;
210+ const manufacturers : Manufacturer [ ] = await ProjectsService . getAllManufacturers ( user ) ;
211+ return res . status ( 200 ) . json ( manufacturers ) ;
212+ } catch ( error : unknown ) {
213+ next ( error ) ;
214+ }
215+ }
216+
196217 static async createMaterialType ( req : Request , res : Response , next : NextFunction ) {
197218 try {
198219 const { name } = req . body ;
@@ -215,4 +236,68 @@ export default class ProjectsController {
215236 next ( error ) ;
216237 }
217238 }
239+
240+ static async deleteAssemblyType ( req : Request , res : Response , next : NextFunction ) {
241+ try {
242+ const { assemblyId } = req . params ;
243+ const user = await getCurrentUser ( res ) ;
244+ const deletedAssembly = await ProjectsService . deleteAssembly ( assemblyId , user ) ;
245+ res . status ( 200 ) . json ( deletedAssembly ) ;
246+ } catch ( error : unknown ) {
247+ next ( error ) ;
248+ }
249+ }
250+
251+ static async deleteMaterialType ( req : Request , res : Response , next : NextFunction ) {
252+ try {
253+ const { materialTypeId } = req . params ;
254+ const user = await getCurrentUser ( res ) ;
255+ const deletedMaterial = await ProjectsService . deleteMaterialType ( materialTypeId , user ) ;
256+ res . status ( 200 ) . json ( deletedMaterial ) ;
257+ } catch ( error : unknown ) {
258+ next ( error ) ;
259+ }
260+ }
261+
262+ static async editMaterial ( req : Request , res : Response , next : NextFunction ) {
263+ try {
264+ const user = await getCurrentUser ( res ) ;
265+ const { materialId } = req . params ;
266+ const {
267+ name,
268+ assemblyId,
269+ status,
270+ materialTypeName,
271+ manufacturerName,
272+ manufacturerPartNumber,
273+ pdmFileName,
274+ quantity,
275+ unitName,
276+ price,
277+ subtotal,
278+ linkUrl,
279+ notes
280+ } = req . body ;
281+ const updatedMaterial = await ProjectsService . editMaterial (
282+ user ,
283+ materialId ,
284+ name ,
285+ status ,
286+ materialTypeName ,
287+ manufacturerName ,
288+ manufacturerPartNumber ,
289+ quantity ,
290+ price ,
291+ subtotal ,
292+ linkUrl ,
293+ notes ,
294+ unitName ,
295+ assemblyId ,
296+ pdmFileName
297+ ) ;
298+ res . status ( 200 ) . json ( updatedMaterial ) ;
299+ } catch ( error : unknown ) {
300+ next ( error ) ;
301+ }
302+ }
218303}
0 commit comments