feat: add type annotations for reaction and user authentication data in Slack actions

This commit is contained in:
Nawaz Dhandala
2025-12-11 15:46:40 +00:00
parent e21c26f2e0
commit ab4e3d9aa8
4 changed files with 94 additions and 76 deletions

View File

@@ -768,7 +768,13 @@ export default class SlackAPI {
*/
Response.sendTextResponse(req, res, "ok");
const reactionData = {
const reactionData: {
teamId: string;
reaction: string;
userId: string;
channelId: string;
messageTs: string;
} = {
teamId: payload["team_id"] as string,
reaction: event["reaction"] as string,
userId: event["user"] as string,

View File

@@ -28,6 +28,8 @@ import WorkspaceUserAuthTokenService from "../../../../Services/WorkspaceUserAut
import WorkspaceType from "../../../../../Types/Workspace/WorkspaceType";
import WorkspaceProjectAuthTokenService from "../../../../Services/WorkspaceProjectAuthTokenService";
import WorkspaceNotificationLog from "../../../../../Models/DatabaseModels/WorkspaceNotificationLog";
import WorkspaceProjectAuthToken from "../../../../../Models/DatabaseModels/WorkspaceProjectAuthToken";
import WorkspaceUserAuthToken from "../../../../../Models/DatabaseModels/WorkspaceUserAuthToken";
export default class SlackAlertActions {
@CaptureSpan()
@@ -801,18 +803,19 @@ export default class SlackAlertActions {
}
// Get the project auth token using the team ID
const projectAuth = await WorkspaceProjectAuthTokenService.findOneBy({
query: {
workspaceProjectId: teamId,
},
select: {
projectId: true,
authToken: true,
},
props: {
isRoot: true,
},
});
const projectAuth: WorkspaceProjectAuthToken | null =
await WorkspaceProjectAuthTokenService.findOneBy({
query: {
workspaceProjectId: teamId,
},
select: {
projectId: true,
authToken: true,
},
props: {
isRoot: true,
},
});
if (!projectAuth || !projectAuth.projectId || !projectAuth.authToken) {
logger.debug(
@@ -855,19 +858,20 @@ export default class SlackAlertActions {
});
// Get the user ID in OneUptime based on Slack user ID
const userAuth = await WorkspaceUserAuthTokenService.findOneBy({
query: {
workspaceUserId: userId,
workspaceType: WorkspaceType.Slack,
projectId: projectId,
},
select: {
userId: true,
},
props: {
isRoot: true,
},
});
const userAuth: WorkspaceUserAuthToken | null =
await WorkspaceUserAuthTokenService.findOneBy({
query: {
workspaceUserId: userId,
workspaceType: WorkspaceType.Slack,
projectId: projectId,
},
select: {
userId: true,
},
props: {
isRoot: true,
},
});
if (!userAuth || !userAuth.userId) {
logger.debug(

View File

@@ -44,6 +44,8 @@ import CaptureSpan from "../../../Telemetry/CaptureSpan";
import WorkspaceProjectAuthTokenService from "../../../../Services/WorkspaceProjectAuthTokenService";
import WorkspaceUserAuthTokenService from "../../../../Services/WorkspaceUserAuthTokenService";
import WorkspaceNotificationLog from "../../../../../Models/DatabaseModels/WorkspaceNotificationLog";
import WorkspaceProjectAuthToken from "../../../../../Models/DatabaseModels/WorkspaceProjectAuthToken";
import WorkspaceUserAuthToken from "../../../../../Models/DatabaseModels/WorkspaceUserAuthToken";
export default class SlackIncidentActions {
@CaptureSpan()
@@ -1317,18 +1319,19 @@ export default class SlackIncidentActions {
}
// Get the project auth token using the team ID
const projectAuth = await WorkspaceProjectAuthTokenService.findOneBy({
query: {
workspaceProjectId: teamId,
},
select: {
projectId: true,
authToken: true,
},
props: {
isRoot: true,
},
});
const projectAuth: WorkspaceProjectAuthToken | null =
await WorkspaceProjectAuthTokenService.findOneBy({
query: {
workspaceProjectId: teamId,
},
select: {
projectId: true,
authToken: true,
},
props: {
isRoot: true,
},
});
if (!projectAuth || !projectAuth.projectId || !projectAuth.authToken) {
logger.debug(
@@ -1372,19 +1375,20 @@ export default class SlackIncidentActions {
});
// Get the user ID in OneUptime based on Slack user ID
const userAuth = await WorkspaceUserAuthTokenService.findOneBy({
query: {
workspaceUserId: userId,
workspaceType: WorkspaceType.Slack,
projectId: projectId,
},
select: {
userId: true,
},
props: {
isRoot: true,
},
});
const userAuth: WorkspaceUserAuthToken | null =
await WorkspaceUserAuthTokenService.findOneBy({
query: {
workspaceUserId: userId,
workspaceType: WorkspaceType.Slack,
projectId: projectId,
},
select: {
userId: true,
},
props: {
isRoot: true,
},
});
if (!userAuth || !userAuth.userId) {
logger.debug(

View File

@@ -41,6 +41,8 @@ import WorkspaceUserAuthTokenService from "../../../../Services/WorkspaceUserAut
import WorkspaceNotificationLogService from "../../../../Services/WorkspaceNotificationLogService";
import WorkspaceProjectAuthTokenService from "../../../../Services/WorkspaceProjectAuthTokenService";
import WorkspaceNotificationLog from "../../../../../Models/DatabaseModels/WorkspaceNotificationLog";
import WorkspaceProjectAuthToken from "../../../../../Models/DatabaseModels/WorkspaceProjectAuthToken";
import WorkspaceUserAuthToken from "../../../../../Models/DatabaseModels/WorkspaceUserAuthToken";
export default class SlackScheduledMaintenanceActions {
@CaptureSpan()
@@ -1144,18 +1146,19 @@ export default class SlackScheduledMaintenanceActions {
}
// Get the project auth token using the team ID
const projectAuth = await WorkspaceProjectAuthTokenService.findOneBy({
query: {
workspaceProjectId: teamId,
},
select: {
projectId: true,
authToken: true,
},
props: {
isRoot: true,
},
});
const projectAuth: WorkspaceProjectAuthToken | null =
await WorkspaceProjectAuthTokenService.findOneBy({
query: {
workspaceProjectId: teamId,
},
select: {
projectId: true,
authToken: true,
},
props: {
isRoot: true,
},
});
if (!projectAuth || !projectAuth.projectId || !projectAuth.authToken) {
logger.debug(
@@ -1200,19 +1203,20 @@ export default class SlackScheduledMaintenanceActions {
});
// Get the user ID in OneUptime based on Slack user ID
const userAuth = await WorkspaceUserAuthTokenService.findOneBy({
query: {
workspaceUserId: userId,
workspaceType: WorkspaceType.Slack,
projectId: projectId,
},
select: {
userId: true,
},
props: {
isRoot: true,
},
});
const userAuth: WorkspaceUserAuthToken | null =
await WorkspaceUserAuthTokenService.findOneBy({
query: {
workspaceUserId: userId,
workspaceType: WorkspaceType.Slack,
projectId: projectId,
},
select: {
userId: true,
},
props: {
isRoot: true,
},
});
if (!userAuth || !userAuth.userId) {
logger.debug(