cosmoEagle/leetcode-api
0
1import { Request } from 'express';2// User Data3interface UserDataProfile {4 aboutMe: string;5 company?: string;6 countryName?: string;7 realName: string;8 birthday?: string;9 userAvatar: string;10 ranking: number;11 reputation: number;12 school?: string;13 skillTags: string[];14 websites: string[];15}16 17interface MatchedUser {18 activeBadge: Badge;19 badges: Badge[];20 githubUrl: string;21 linkedinUrl?: string;22 profile: UserDataProfile;23 upcomingBadges: Badge[];24 username: string;25 twitterUrl?: string;26 submissionCalendar: string;27 submitStats: {28 totalSubmissionNum: {29 difficulty: Difficulty;30 count: number;31 submissions: number;32 }[];33 acSubmissionNum: {34 difficulty: Difficulty;35 count: number;36 submissions: number;37 }[];38 count: number;39 };40}41 42export interface UserData {43 userContestRanking: null | {44 attendedContestsCount: number;45 badge: Badge;46 globalRanking: number;47 rating: number;48 totalParticipants: number;49 topPercentage: number;50 };51 userContestRankingHistory: {52 attended: boolean;53 rating: number;54 ranking: number;55 trendDirection: string;56 problemsSolved: number;57 totalProblems: number;58 finishTimeInSeconds: number;59 contest: {60 title: string;61 startTime: string;62 };63 }[];64 matchedUser: MatchedUser;65 recentAcSubmissionList: {}[];66 recentSubmissionList: Submission[];67}68 69interface Badge {70 name: string;71 icon: string;72}73 74type Difficulty = 'All' | 'Easy' | 'Medium' | 'Hard';75//User Details76export type FetchUserDataRequest = Request<77 { username: string },78 {},79 { username: string; limit: number },80 { limit: number }81>;82 83export type TransformedUserDataRequest = Request<84 {},85 {},86 { username: string; limit: number }87>;88 89// ProblemData90export interface ProblemSetQuestionListData {91 problemsetQuestionList: {92 total: number;93 questions: {}[];94 };95}96 97interface Submission {98 title: string;99 titleSlug: string;100 timestamp: string;101 statusDisplay: string;102 lang: string;103}104 105interface Question {106 content: string;107 companyTagStats: string[];108 difficulty: Difficulty;109 dislikes: number;110 exampleTestcases: {}[];111 hints: {}[];112 isPaidOnly: boolean;113 likes: number;114 questionId: number;115 questionFrontendId: number;116 solution: string;117 similarQuestions: {}[];118 title: string;119 titleSlug: string;120 topicTags: string[];121}122 123export interface DailyProblemData {124 activeDailyCodingChallengeQuestion: {125 date: string;126 link: string;127 question: Question;128 };129}130export interface SelectProblemData {131 question: Question;132}133 134export interface TrendingDiscussionObject {135 data: {136 cachedTrendingCategoryTopics: {137 id: number;138 title: string;139 post: {140 id: number;141 creationDate: number;142 contentPreview: string;143 author: {144 username: string;145 isActive: boolean;146 profile: {147 userAvatar: string;148 };149 };150 };151 }[];152 };153}