Skip to content

Commit 7aa0ccd

Browse files
author
yashksaini-coder
committed
feat: ✨ Add user data formatting utilities for enhanced data handling
1 parent 1fcc884 commit 7aa0ccd

File tree

1 file changed

+66
-0
lines changed

1 file changed

+66
-0
lines changed

utils/userData.ts

Lines changed: 66 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,66 @@
1+
import { UserData } from '../types/typeInterfaces';
2+
3+
export const formatUserData = (data: UserData) => ({
4+
username: data.matchedUser.username,
5+
name: data.matchedUser.profile.realName,
6+
birthday: data.matchedUser.profile.birthday,
7+
avatar: data.matchedUser.profile.userAvatar,
8+
ranking: data.matchedUser.profile.ranking,
9+
reputation: data.matchedUser.profile.reputation,
10+
gitHub: data.matchedUser.githubUrl,
11+
twitter: data.matchedUser.twitterUrl,
12+
linkedIN: data.matchedUser.linkedinUrl,
13+
website: data.matchedUser.profile.websites,
14+
country: data.matchedUser.profile.countryName,
15+
company: data.matchedUser.profile.company,
16+
school: data.matchedUser.profile.school,
17+
skillTags: data.matchedUser.profile.skillTags,
18+
about: data.matchedUser.profile.aboutMe,
19+
});
20+
21+
export const formatBadgesData = (data: UserData) => ({
22+
badgesCount: data.matchedUser.badges.length,
23+
badges: data.matchedUser.badges,
24+
upcomingBadges: data.matchedUser.upcomingBadges,
25+
activeBadge: data.matchedUser.activeBadge,
26+
});
27+
28+
export const formatContestData = (data: UserData) => ({
29+
contestAttend: data.userContestRanking?.attendedContestsCount,
30+
contestRating: data.userContestRanking?.rating,
31+
contestGlobalRanking: data.userContestRanking?.globalRanking,
32+
totalParticipants: data.userContestRanking?.totalParticipants,
33+
contestTopPercentage: data.userContestRanking?.topPercentage,
34+
contestBadges: data.userContestRanking?.badge,
35+
contestParticipation: data.userContestRankingHistory.filter(
36+
(obj) => obj.attended === true
37+
),
38+
});
39+
40+
export const formatContestHistoryData = (data: UserData) => ({
41+
count: data.userContestRankingHistory.length,
42+
contestHistory: data.userContestRankingHistory,
43+
});
44+
45+
export const formatSolvedProblemsData = (data: UserData) => ({
46+
solvedProblem: data.matchedUser.submitStats.acSubmissionNum[0].count,
47+
easySolved: data.matchedUser.submitStats.acSubmissionNum[1].count,
48+
mediumSolved: data.matchedUser.submitStats.acSubmissionNum[2].count,
49+
hardSolved: data.matchedUser.submitStats.acSubmissionNum[3].count,
50+
totalSubmissionNum: data.matchedUser.submitStats.totalSubmissionNum,
51+
acSubmissionNum: data.matchedUser.submitStats.acSubmissionNum,
52+
});
53+
54+
export const formatSubmissionData = (data: UserData) => ({
55+
count: data.recentSubmissionList.length,
56+
submission: data.recentSubmissionList,
57+
});
58+
59+
export const formatAcSubmissionData = (data: UserData) => ({
60+
count: data.recentAcSubmissionList.length,
61+
submission: data.recentAcSubmissionList,
62+
});
63+
64+
export const formatSubmissionCalendarData = (data: UserData) => ({
65+
submissionCalendar: data.matchedUser.submissionCalendar,
66+
});

0 commit comments

Comments
 (0)