Skip to content

Commit 1796ff5

Browse files
Merge pull request #160 from Real-Dev-Squad/develop
Dev To main Sync
2 parents 521957a + 1a0c7b9 commit 1796ff5

File tree

9 files changed

+86
-44
lines changed

9 files changed

+86
-44
lines changed

src/controllers/userCommand.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,14 @@ import { env } from "../typeDefinitions/default.types";
22
import { discordTextResponse } from "../utils/discordResponse";
33
import { getUserDetails } from "../utils/getUserDetails";
44
import { formatUserDetails } from "../utils/formatUserDetails";
5+
import { USER_NOT_FOUND } from "../constants/responses";
56

67
export async function userCommand(discordId: string, env: env) {
78
try {
89
const userDetails = await getUserDetails(discordId);
10+
if (!userDetails.user?.discordId) {
11+
return discordTextResponse(USER_NOT_FOUND);
12+
}
913
const formattedUserDetails = formatUserDetails(userDetails);
1014
return discordTextResponse(formattedUserDetails);
1115
} catch (error) {

src/handlers/scheduledEventHandler.ts

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -29,13 +29,6 @@ export async function send(env: env): Promise<void> {
2929
}
3030
});
3131

32-
if (
33-
assigneeIds === error.INTERNAL_SERVER_ERROR ||
34-
discordIds === error.INTERNAL_SERVER_ERROR
35-
) {
36-
throw new Error(error.INTERNAL_SERVER_ERROR);
37-
}
38-
3932
const bodyObj = {
4033
content: stringToBeSent,
4134
};

src/utils/formatUserDetails.ts

Lines changed: 16 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,27 +1,27 @@
11
import { UserResponseType } from "../typeDefinitions/rdsUser";
22

33
export function convertTimeStamp(userDetails: UserResponseType) {
4-
const timestamp = userDetails.user?.discordJoinedAt ?? "";
5-
const date = new Date(timestamp);
4+
const timestamp = userDetails.user?.discordJoinedAt;
65

7-
const day = String(date.getDate()).padStart(2, "0");
8-
const month = String(date.getMonth() + 1).padStart(2, "0");
9-
const year = date.getFullYear();
6+
if (timestamp) {
7+
const date = new Date(timestamp);
108

11-
const hours = String(date.getHours()).padStart(2, "0");
12-
const minutes = String(date.getMinutes()).padStart(2, "0");
13-
const seconds = String(date.getSeconds()).padStart(2, "0");
9+
const day = String(date.getDate()).padStart(2, "0");
10+
const month = String(date.getMonth() + 1).padStart(2, "0");
11+
const year = date.getFullYear();
12+
const formattedDate = `${day}/${month}/${year}`;
13+
return formattedDate;
14+
}
1415

15-
const formattedDate = `${day}/${month}/${year} ${hours}:${minutes}:${seconds}`;
16-
return formattedDate;
16+
return "N/A";
1717
}
1818

1919
export function formatUserDetails(userDetails: UserResponseType) {
2020
const convertedTimestamp = convertTimeStamp(userDetails);
21-
return `
22-
## User Details
23-
**Full Name :** ${userDetails.user?.first_name} ${userDetails.user?.last_name}
24-
**RDS Discord Joined At :** ${convertedTimestamp}
25-
**State :** ${userDetails.user?.state}
26-
`;
21+
22+
const userFullName = `**Full Name :** ${userDetails.user?.first_name} ${userDetails.user?.last_name}`;
23+
const discordJoinedAt = `**Joined Server on :** ${convertedTimestamp}`;
24+
const userState = `**State :** ${userDetails.user?.state}`;
25+
26+
return `## User Details\n${userFullName}\n${discordJoinedAt}\n${userState}`;
2727
}

src/utils/getDiscordIds.ts

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ import * as response from "../constants/responses";
44

55
export const getDiscordIds = async (
66
userIds: string[] | string
7-
): Promise<string[] | string> => {
7+
): Promise<string[]> => {
88
try {
99
const url = `${RDS_BASE_API_URL}/users/userId`;
1010

@@ -65,6 +65,7 @@ export const getDiscordIds = async (
6565

6666
return discordIds;
6767
} catch (e) {
68-
return response.INTERNAL_SERVER_ERROR;
68+
console.log(e);
69+
throw e;
6970
}
7071
};

src/utils/taskOverDueDiscordMembers.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ export const taskOverDueDiscordMembers = async (): Promise<
2020

2121
return assigneeIds;
2222
} catch (e) {
23-
return errors.INTERNAL_SERVER_ERROR;
23+
console.log(e);
24+
throw e;
2425
}
2526
};

tests/fixtures/user.ts

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -173,3 +173,29 @@ export const onboardingUsersResponse = {
173173
message: "Users returned successfully!",
174174
users: users,
175175
};
176+
177+
export const userWithoutDiscordJoinedAt = {
178+
id: "DWcTUhbC5lRXfDjZRp06",
179+
incompleteUserDetails: false,
180+
discordJoinedAt: "",
181+
discordId: "504855562094247953",
182+
github_display_name: "Jyotsna Mehta",
183+
updated_at: 1694888822719,
184+
roles: {
185+
archived: false,
186+
in_discord: true,
187+
member: false,
188+
super_user: false,
189+
archive: false,
190+
},
191+
last_name: "Mehta",
192+
github_id: "j24m",
193+
first_name: "Jyotsna",
194+
username: "jyotsna",
195+
state: "IDLE",
196+
};
197+
198+
export const userWithoutDiscordJoinedAtResponse = {
199+
message: "Users returned successfully!",
200+
user: userWithoutDiscordJoinedAt,
201+
};
Lines changed: 25 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,9 @@
11
import { UserResponseType } from "../../../src/typeDefinitions/rdsUser";
22
import { formatUserDetails } from "../../../src/utils/formatUserDetails";
3-
import { userResponse } from "../../fixtures/user";
3+
import {
4+
userResponse,
5+
userWithoutDiscordJoinedAtResponse,
6+
} from "../../fixtures/user";
47
import { convertTimeStamp } from "../../../src/utils/formatUserDetails";
58

69
describe("formatUserDetails function", () => {
@@ -12,13 +15,27 @@ describe("formatUserDetails function", () => {
1215

1316
it("should format user details correctly", () => {
1417
const formattedDetails = formatUserDetails(userResponse).trim();
15-
console.log(formattedDetails);
16-
const expectedFormattedDetails = `
17-
## User Details
18-
**Full Name :** Sunny Sahsi
19-
**RDS Discord Joined At :** ${convertTimeStamp(userResponse)}
20-
**State :** ACTIVE
21-
`.trim();
18+
19+
const userFullName = `**Full Name :** Sunny Sahsi`;
20+
const discordJoinedAt = `**Joined Server on :** ${convertTimeStamp(
21+
userResponse
22+
)}`;
23+
const userState = `**State :** ACTIVE`;
24+
25+
const expectedFormattedDetails = `## User Details\n${userFullName}\n${discordJoinedAt}\n${userState}`;
26+
expect(formattedDetails).toEqual(expectedFormattedDetails);
27+
});
28+
29+
it("should return empty string if discordJoinedAt is undefined", () => {
30+
const formattedDetails = formatUserDetails(
31+
userWithoutDiscordJoinedAtResponse
32+
).trim();
33+
const userFullName = `**Full Name :** Jyotsna Mehta`;
34+
const discordJoinedAt = `**Joined Server on :** ${convertTimeStamp(
35+
userWithoutDiscordJoinedAtResponse
36+
)}`;
37+
const userState = `**State :** IDLE`;
38+
const expectedFormattedDetails = `## User Details\n${userFullName}\n${discordJoinedAt}\n${userState}`;
2239
expect(formattedDetails).toEqual(expectedFormattedDetails);
2340
});
2441
});

tests/unit/utils/getDiscordIds.test.ts

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -39,11 +39,11 @@ describe("getDiscordIds()", () => {
3939
.spyOn(global, "fetch")
4040
.mockRejectedValueOnce(new Error("Network error"));
4141

42-
const result = await getDiscordIds([userBackendMock.user.id]);
43-
44-
expect(result).toEqual(
45-
"Oops! We have encountered an internal Server Error"
46-
);
42+
try {
43+
await getDiscordIds([userBackendMock.user.id]);
44+
} catch (error: any) {
45+
expect(error.message).toEqual("Network error");
46+
}
4747

4848
expect(global.fetch).toHaveBeenCalledWith(
4949
`${RDS_BASE_API_URL}/users/userId/${userBackendMock.user.id}`

tests/unit/utils/taskOverDueDiscordMembers.test.ts

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -27,11 +27,11 @@ describe("taskOverDueDiscordMembers()", () => {
2727
.spyOn(global, "fetch")
2828
.mockRejectedValueOnce(new Error("Network error"));
2929

30-
const result = await taskOverDueDiscordMembers();
31-
32-
expect(result).toEqual(
33-
"Oops! We have encountered an internal Server Error"
34-
);
30+
try {
31+
await taskOverDueDiscordMembers();
32+
} catch (error: any) {
33+
expect(error.message).toEqual("Network error");
34+
}
3535

3636
expect(global.fetch).toHaveBeenCalledWith(
3737
`${RDS_BASE_API_URL}/tasks?dev=true&status=overdue&size=100`

0 commit comments

Comments
 (0)