Skip to content

Commit 257d815

Browse files
authored
Merge branch 'develop' into #1519-get-all-manufacturers-endpoint
2 parents a2c46a6 + d3ed739 commit 257d815

38 files changed

Lines changed: 1498 additions & 178 deletions

src/backend/src/controllers/change-requests.controllers.ts

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -75,18 +75,19 @@ export default class ChangeRequestsController {
7575

7676
static async createStandardChangeRequest(req: Request, res: Response, next: NextFunction) {
7777
try {
78-
const { wbsNum, type, what, why } = req.body;
78+
const { wbsNum, type, what, why, proposedSolutions } = req.body;
7979
const submitter = await getCurrentUser(res);
80-
const id = await ChangeRequestsService.createStandardChangeRequest(
80+
const createdCR = await ChangeRequestsService.createStandardChangeRequest(
8181
submitter,
8282
wbsNum.carNumber,
8383
wbsNum.projectNumber,
8484
wbsNum.workPackageNumber,
8585
type,
8686
what,
87-
why
87+
why,
88+
proposedSolutions
8889
);
89-
return res.status(200).json({ message: `${id}` });
90+
return res.status(200).json(createdCR);
9091
} catch (error: unknown) {
9192
next(error);
9293
}

src/backend/src/controllers/projects.controllers.ts

Lines changed: 65 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -128,6 +128,60 @@ export default class ProjectsController {
128128
}
129129
}
130130

131+
static async createAssembly(req: Request, res: Response, next: NextFunction) {
132+
try {
133+
const user: User = await getCurrentUser(res);
134+
const wbsNum: WbsNumber = validateWBS(req.params.wbsNum);
135+
const { name, pdmFileName } = req.body;
136+
const createAssembly = await ProjectsService.createAssembly(name, user, wbsNum, pdmFileName);
137+
res.status(200).json(createAssembly);
138+
} catch (error: unknown) {
139+
next(error);
140+
}
141+
}
142+
143+
static async createMaterial(req: Request, res: Response, next: NextFunction) {
144+
try {
145+
const {
146+
name,
147+
assemblyId,
148+
status,
149+
materialTypeName,
150+
manufacturerName,
151+
manufacturerPartNumber,
152+
pdmFileName,
153+
quantity,
154+
unitName,
155+
price,
156+
subtotal,
157+
linkUrl,
158+
notes
159+
} = req.body;
160+
const creator = await getCurrentUser(res);
161+
const wbsNum = validateWBS(req.params.wbsNum);
162+
const material = await ProjectsService.createMaterial(
163+
creator,
164+
name,
165+
status,
166+
materialTypeName,
167+
manufacturerName,
168+
manufacturerPartNumber,
169+
quantity,
170+
unitName,
171+
price,
172+
subtotal,
173+
linkUrl,
174+
notes,
175+
wbsNum,
176+
assemblyId,
177+
pdmFileName
178+
);
179+
return res.status(200).json(material);
180+
} catch (error: unknown) {
181+
next(error);
182+
}
183+
}
184+
131185
static async createManufacturer(req: Request, res: Response, next: NextFunction) {
132186
try {
133187
const { name } = req.body;
@@ -147,5 +201,16 @@ export default class ProjectsController {
147201
} catch (error: unknown) {
148202
next(error);
149203
}
204+
}
205+
206+
static async createMaterialType(req: Request, res: Response, next: NextFunction) {
207+
try {
208+
const { name } = req.body;
209+
const user = await getCurrentUser(res);
210+
const createdMaterialType = await ProjectsService.createMaterialType(name, user);
211+
res.status(200).json(createdMaterialType);
212+
} catch (error: unknown) {
213+
next(error);
214+
}
150215
}
151216
}

src/backend/src/controllers/work-packages.controllers.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -72,8 +72,8 @@ export default class WorkPackagesController {
7272
blockedBy,
7373
expectedActivities,
7474
deliverables,
75-
projectLead,
76-
projectManager
75+
projectLeadId,
76+
projectManagerId
7777
} = req.body;
7878

7979
let { stage } = req.body;
@@ -94,8 +94,8 @@ export default class WorkPackagesController {
9494
blockedBy,
9595
expectedActivities,
9696
deliverables,
97-
projectLead,
98-
projectManager
97+
projectLeadId,
98+
projectManagerId
9999
);
100100
return res.status(200).json({ message: 'Work package updated successfully' });
101101
} catch (error: unknown) {

src/backend/src/integrations/slack.ts

Lines changed: 12 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
import { WebClient } from '@slack/web-api';
2+
import { HttpException } from '../utils/errors.utils';
23

34
const slack = new WebClient(process.env.SLACK_BOT_TOKEN);
45

@@ -40,13 +41,17 @@ export const sendMessage = async (slackId: string, message: string, link?: strin
4041
}
4142
};
4243

43-
await slack.chat.postMessage({
44-
token: SLACK_BOT_TOKEN,
45-
channel: slackId,
46-
text: message,
47-
blocks: [block],
48-
unfurl_links: false
49-
});
44+
try {
45+
await slack.chat.postMessage({
46+
token: SLACK_BOT_TOKEN,
47+
channel: slackId,
48+
text: message,
49+
blocks: [block],
50+
unfurl_links: false
51+
});
52+
} catch (error) {
53+
throw new HttpException(500, 'Error sending slack message, reason: ' + (error as any).data.error);
54+
}
5055
};
5156

5257
export default slack;

src/backend/src/prisma/migrations/20231019013832_add_bom/migration.sql renamed to src/backend/src/prisma/migrations/20231024124220_add_bom/migration.sql

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ CREATE TABLE "Unit" (
1212
CREATE TABLE "Assembly" (
1313
"assemblyId" TEXT NOT NULL,
1414
"name" TEXT NOT NULL,
15-
"pdmFileName" TEXT NOT NULL,
15+
"pdmFileName" TEXT,
1616
"dateDeleted" TIMESTAMP(3),
1717
"userDeletedId" INTEGER,
1818
"dateCreated" TIMESTAMP(3) NOT NULL,

src/backend/src/prisma/schema.prisma

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -474,7 +474,7 @@ model Unit {
474474
model Assembly {
475475
assemblyId String @id @default(uuid())
476476
name String @unique
477-
pdmFileName String
477+
pdmFileName String?
478478
dateDeleted DateTime?
479479
userDeleted User? @relation(fields: [userDeletedId], references: [userId], name: "assemblyDeleter")
480480
userDeletedId Int?

src/backend/src/prisma/seed-data/teams.seed.ts

Lines changed: 21 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,26 @@ const justiceLeague = (headId: number): Prisma.TeamCreateArgs => {
4848
};
4949
};
5050

51+
const avatarBenders = (headId: number): Prisma.TeamCreateArgs => {
52+
return {
53+
data: {
54+
teamName: 'Avatar: The Last Airbender',
55+
slackId: 'avatar',
56+
headId
57+
}
58+
};
59+
};
60+
61+
const plLegends = (headId: number): Prisma.TeamCreateArgs => {
62+
return {
63+
data: {
64+
teamName: 'PlTeams',
65+
slackId: 'Pl',
66+
headId
67+
}
68+
};
69+
};
70+
5171
const huskies = (headId: number): Prisma.TeamCreateArgs => {
5272
return {
5373
data: {
@@ -60,4 +80,4 @@ const huskies = (headId: number): Prisma.TeamCreateArgs => {
6080
};
6181
};
6282

63-
export const dbSeedAllTeams = { ravens, orioles, justiceLeague, huskies };
83+
export const dbSeedAllTeams = { ravens, orioles, justiceLeague, huskies, avatarBenders, plLegends };

0 commit comments

Comments
 (0)