1- import { Project , validateWBS , WbsNumber , wbsPipe } from 'shared' ;
1+ import { Manufacturer , MaterialType , Project , validateWBS , WbsNumber , wbsPipe } from 'shared' ;
22import { NextFunction , Request , Response } from 'express' ;
33import { User } from '@prisma/client' ;
44import { getCurrentUser } from '../utils/auth.utils' ;
@@ -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,37 @@ 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 = 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+
217+ static async getAllMaterialTypes ( req : Request , res : Response , next : NextFunction ) {
218+ try {
219+ const user = await getCurrentUser ( res ) ;
220+ const materialTypes : MaterialType [ ] = await ProjectsService . getAllMaterialTypes ( user ) ;
221+ return res . status ( 200 ) . json ( materialTypes ) ;
222+ } catch ( error : unknown ) {
223+ next ( error ) ;
224+ }
225+ }
226+
196227 static async createMaterialType ( req : Request , res : Response , next : NextFunction ) {
197228 try {
198229 const { name } = req . body ;
@@ -203,4 +234,80 @@ export default class ProjectsController {
203234 next ( error ) ;
204235 }
205236 }
237+
238+ static async assignMaterialAssembly ( req : Request , res : Response , next : NextFunction ) {
239+ try {
240+ const { materialId } = req . params ;
241+ const { assemblyId } = req . body ;
242+ const user = await getCurrentUser ( res ) ;
243+ const updatedMaterial = await ProjectsService . assignMaterialAssembly ( user , materialId , assemblyId ) ;
244+ res . status ( 200 ) . json ( updatedMaterial ) ;
245+ } catch ( error : unknown ) {
246+ next ( error ) ;
247+ }
248+ }
249+
250+ static async deleteAssemblyType ( req : Request , res : Response , next : NextFunction ) {
251+ try {
252+ const { assemblyId } = req . params ;
253+ const user = await getCurrentUser ( res ) ;
254+ const deletedAssembly = await ProjectsService . deleteAssembly ( assemblyId , user ) ;
255+ res . status ( 200 ) . json ( deletedAssembly ) ;
256+ } catch ( error : unknown ) {
257+ next ( error ) ;
258+ }
259+ }
260+
261+ static async deleteMaterialType ( req : Request , res : Response , next : NextFunction ) {
262+ try {
263+ const { materialTypeId } = req . params ;
264+ const user = await getCurrentUser ( res ) ;
265+ const deletedMaterial = await ProjectsService . deleteMaterialType ( materialTypeId , user ) ;
266+ res . status ( 200 ) . json ( deletedMaterial ) ;
267+ } catch ( error : unknown ) {
268+ next ( error ) ;
269+ }
270+ }
271+
272+ static async editMaterial ( req : Request , res : Response , next : NextFunction ) {
273+ try {
274+ const user = await getCurrentUser ( res ) ;
275+ const { materialId } = req . params ;
276+ const {
277+ name,
278+ assemblyId,
279+ status,
280+ materialTypeName,
281+ manufacturerName,
282+ manufacturerPartNumber,
283+ pdmFileName,
284+ quantity,
285+ unitName,
286+ price,
287+ subtotal,
288+ linkUrl,
289+ notes
290+ } = req . body ;
291+ const updatedMaterial = await ProjectsService . editMaterial (
292+ user ,
293+ materialId ,
294+ name ,
295+ status ,
296+ materialTypeName ,
297+ manufacturerName ,
298+ manufacturerPartNumber ,
299+ quantity ,
300+ price ,
301+ subtotal ,
302+ linkUrl ,
303+ notes ,
304+ unitName ,
305+ assemblyId ,
306+ pdmFileName
307+ ) ;
308+ res . status ( 200 ) . json ( updatedMaterial ) ;
309+ } catch ( error : unknown ) {
310+ next ( error ) ;
311+ }
312+ }
206313}
0 commit comments