Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
46 changes: 37 additions & 9 deletions src/utils/formatUserDetails.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import { UserResponseType } from "../typeDefinitions/rdsUser";

export function convertTimeStamp(userDetails: UserResponseType) {
export function convertTimeStamp(userDetails: UserResponseType, flag: boolean) {
const timestamp = userDetails.user?.discordJoinedAt;

if (timestamp) {
Expand All @@ -9,27 +9,55 @@ export function convertTimeStamp(userDetails: UserResponseType) {
const day = String(date.getDate()).padStart(2, "0");
const month = String(date.getMonth() + 1).padStart(2, "0");
const year = date.getFullYear();
if (flag) {
const monthName = date.toLocaleString("default", { month: "short" });
const formattedDate = `${day} ${monthName}, ${year}`;
return formattedDate;
}
const formattedDate = `${day}/${month}/${year}`;
return formattedDate;
}

return "N/A";
}
export function convertEpochToDate(timestamp: number | undefined) {
if (timestamp) {
const date = new Date(timestamp);

const day = String(date.getDate()).padStart(2, "0");
const month = date.toLocaleString("default", { month: "short" });
const year = date.getFullYear();
const formattedDate = `${day} ${month}, ${year}`;

return formattedDate;
}

return "N/A";
}

export function formatUserDetails(
userDetails: UserResponseType,
flag: boolean
) {
const convertedTimestamp = convertTimeStamp(userDetails);

const userId = `**User Id :** ${userDetails.user?.id}`;
const userName = `**User Name :** ${userDetails.user?.username}`;
const userFullName = `**Full Name :** ${userDetails.user?.first_name} ${userDetails.user?.last_name}`;
const userState = `**State :** ${userDetails.user?.state}`;
const discordJoinedAt = `**Joined Server on :** ${convertedTimestamp}`;
const convertedTimestamp = convertTimeStamp(userDetails, flag);
const accountCreationDate = convertEpochToDate(userDetails.user?.created_at);

const userId = " ".repeat(30) + `**Id:** ${userDetails.user?.id}`;
const userName =
" ".repeat(13) + `**Username:** ${userDetails.user?.username}`;
const userFullName = `${
flag ? " ".repeat(13) + "**Full Name:**" : "**Full Name :**"
} ${userDetails.user?.first_name} ${userDetails.user?.last_name}`;
const userState = `${flag ? " ".repeat(23) + "**State:**" : "**State :**"} ${
userDetails.user?.state
}`;
const discordJoinedAt = `${
flag ? " ".repeat(4) + "**Joined Discord:**" : "**Joined Server on :**"
} ${convertedTimestamp}`;
const accountCreated = `**Account Created:** ${accountCreationDate}`;

if (!flag)
return `## User Details\n${userFullName}\n${userState}\n${discordJoinedAt}`;

return `## User Details\n${userId}\n${userName}\n${userFullName}\n${userState}\n${discordJoinedAt}`;
return `## User Details\n${userName}\n${userState}\n\n${userFullName}\n${userId}\n\n${accountCreated}\n${discordJoinedAt}`;
}
2 changes: 2 additions & 0 deletions tests/fixtures/user.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ export const user = {
id: "iODXB6ns8jaZB9p0XlBw",
incompleteUserDetails: false,
discordJoinedAt: "2023-08-08T11:40:42.522000+00:00",
created_at: 1692748800000,
discordId: "858838385330487336",
github_display_name: "John Doe",
updated_at: 1694888822719,
Expand Down Expand Up @@ -178,6 +179,7 @@ export const userWithoutDiscordJoinedAt = {
id: "DWcTUhbC5lRXfDjZRp06",
incompleteUserDetails: false,
discordJoinedAt: "",
created_at: 1692748800000,
discordId: "504855562094247953",
github_display_name: "John Doe",
updated_at: 1694888822719,
Expand Down
48 changes: 31 additions & 17 deletions tests/unit/utils/formatUserDetails.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,10 @@ import {
userResponse,
userWithoutDiscordJoinedAtResponse,
} from "../../fixtures/user";
import { convertTimeStamp } from "../../../src/utils/formatUserDetails";
import {
convertTimeStamp,
convertEpochToDate,
} from "../../../src/utils/formatUserDetails";

describe("formatUserDetails function", () => {
it("Should return a string", () => {
Expand All @@ -16,15 +19,18 @@ describe("formatUserDetails function", () => {
it("should format user details correctly in dev mode", () => {
const formattedDetails = formatUserDetails(userResponse, true).trim();

const userId = `**User Id :** iODXB6ns8jaZB9p0XlBw`;
const userName = `**User Name :** johndoe`;
const userFullName = `**Full Name :** John Doe`;
const userState = `**State :** ACTIVE`;
const discordJoinedAt = `**Joined Server on :** ${convertTimeStamp(
userResponse
const userId = " ".repeat(30) + `**Id:** iODXB6ns8jaZB9p0XlBw`;
const userName = " ".repeat(13) + `**Username:** johndoe`;
const userFullName = " ".repeat(13) + `**Full Name:** John Doe`;
const userState = " ".repeat(23) + `**State:** ACTIVE`;
const discordJoinedAt =
" ".repeat(4) +
`**Joined Discord:** ${convertTimeStamp(userResponse, true)}`;
const accountCreated = `**Account Created:** ${convertEpochToDate(
userResponse.user.created_at
)}`;

const expectedFormattedDetails = `## User Details\n${userId}\n${userName}\n${userFullName}\n${userState}\n${discordJoinedAt}`;
const expectedFormattedDetails = `## User Details\n${userName}\n${userState}\n\n${userFullName}\n${userId}\n\n${accountCreated}\n${discordJoinedAt}`;
expect(formattedDetails).toEqual(expectedFormattedDetails);
});

Expand All @@ -34,7 +40,8 @@ describe("formatUserDetails function", () => {
const userFullName = `**Full Name :** John Doe`;
const userState = `**State :** ACTIVE`;
const discordJoinedAt = `**Joined Server on :** ${convertTimeStamp(
userResponse
userResponse,
false
)}`;

const expectedFormattedDetails = `## User Details\n${userFullName}\n${userState}\n${discordJoinedAt}`;
Expand All @@ -47,15 +54,21 @@ describe("formatUserDetails function", () => {
true
).trim();

const userId = `**User Id :** DWcTUhbC5lRXfDjZRp06`;
const userName = `**User Name :** johndoe`;
const userFullName = `**Full Name :** John Doe`;
const userState = `**State :** IDLE`;
const discordJoinedAt = `**Joined Server on :** ${convertTimeStamp(
userWithoutDiscordJoinedAtResponse
const userId = " ".repeat(30) + `**Id:** DWcTUhbC5lRXfDjZRp06`;
const userName = " ".repeat(13) + `**Username:** johndoe`;
const userFullName = " ".repeat(13) + `**Full Name:** John Doe`;
const userState = " ".repeat(23) + `**State:** IDLE`;
const discordJoinedAt =
" ".repeat(4) +
`**Joined Discord:** ${convertTimeStamp(
userWithoutDiscordJoinedAtResponse,
true
)}`;
const accountCreated = `**Account Created:** ${convertEpochToDate(
userResponse.user.created_at
)}`;

const expectedFormattedDetails = `## User Details\n${userId}\n${userName}\n${userFullName}\n${userState}\n${discordJoinedAt}`;
const expectedFormattedDetails = `## User Details\n${userName}\n${userState}\n\n${userFullName}\n${userId}\n\n${accountCreated}\n${discordJoinedAt}`;
expect(formattedDetails).toEqual(expectedFormattedDetails);
});

Expand All @@ -68,7 +81,8 @@ describe("formatUserDetails function", () => {
const userFullName = `**Full Name :** John Doe`;
const userState = `**State :** IDLE`;
const discordJoinedAt = `**Joined Server on :** ${convertTimeStamp(
userWithoutDiscordJoinedAtResponse
userWithoutDiscordJoinedAtResponse,
false
)}`;

const expectedFormattedDetails = `## User Details\n${userFullName}\n${userState}\n${discordJoinedAt}`;
Expand Down
Loading