Team Ai
Apppublic

cosmoEagle/leetcode-api

sourceHugging Faceupdated 2y agoView on Hugging Face
0likes
leetCode.ts171 linesDownload Raw Back to src
1import { Request, Response } from 'express';2import * as gqlQueries from './GQLQueries';3import * as formatUtils from './FormatUtils';4import * as controllers from './Controllers';5import { TransformedUserDataRequest } from './types';6 7export const userData = (req: TransformedUserDataRequest, res: Response) => {8  controllers.fetchUserDetails(9    req.body,10    res,11    formatUtils.formatUserData,12    gqlQueries.userProfileQuery13  );14};15 16export const userBadges = (req: TransformedUserDataRequest, res: Response) => {17  controllers.fetchUserDetails(18    req.body,19    res,20    formatUtils.formatBadgesData,21    gqlQueries.userProfileQuery22  );23};24 25export const userContest = (req: TransformedUserDataRequest, res: Response) => {26  controllers.fetchUserDetails(27    req.body,28    res,29    formatUtils.formatContestData,30    gqlQueries.contestQuery31  );32};33 34export const userContestHistory = (35  req: TransformedUserDataRequest,36  res: Response37) => {38  controllers.fetchUserDetails(39    req.body,40    res,41    formatUtils.formatContestHistoryData,42    gqlQueries.contestQuery43  );44};45 46export const solvedProblem = (47  req: TransformedUserDataRequest,48  res: Response49) => {50  controllers.fetchUserDetails(51    req.body,52    res,53    formatUtils.formatSolvedProblemsData,54    gqlQueries.userProfileQuery55  );56};57 58export const submission = (req: TransformedUserDataRequest, res: Response) => {59  controllers.fetchUserDetails(60    req.body,61    res,62    formatUtils.formatSubmissionData,63    gqlQueries.submissionQuery64  );65};66 67export const acSubmission = (68  req: TransformedUserDataRequest,69  res: Response70) => {71  controllers.fetchUserDetails(72    req.body,73    res,74    formatUtils.formatAcSubmissionData,75    gqlQueries.AcSubmissionQuery76  );77};78 79export const calendar = (req: TransformedUserDataRequest, res: Response) => {80  controllers.fetchUserDetails(81    req.body,82    res,83    formatUtils.formatSubmissionCalendarData,84    gqlQueries.userProfileQuery85  );86};87 88//Problems Details89export const dailyProblem = (_req: Request, res: Response) => {90  controllers.fetchSingleProblem(91    res,92    formatUtils.formatDailyData,93    gqlQueries.dailyProblemQuery,94    null95  );96};97 98export const selectProblem = (req: Request, res: Response) => {99  const title = req.query.titleSlug as string;100  if (title !== undefined) {101    controllers.fetchSingleProblem(102      res,103      formatUtils.formatQuestionData,104      gqlQueries.selectProblemQuery,105      title106    );107  } else {108    res.status(400).json({109      error: 'Missing or invalid query parameter: titleSlug',110      solution: 'put query after select',111      example: 'localhost:3000/select?titleSlug=two-sum',112    });113  }114};115 116export const problems = (117  req: Request<{}, {}, {}, { limit: number; skip: number; tags: string; difficulty: string }>,118  res: Response119) => {120  const difficulty=req.query.difficulty;121  const limit = req.query.limit;122  const skip = req.query.skip;123  const tags = req.query.tags;124 125  controllers.fetchProblems(126    { limit, skip, tags, difficulty },127    res,128    formatUtils.formatProblemsData,129    gqlQueries.problemListQuery130  );131};132 133 134export const trendingCategoryTopics = (_req: Request, res: Response) => {135  const first = parseInt(_req.query.first as string);136  if (!isNaN(first)) {137    controllers.fetchTrendingTopics(138      { first },139      res,140      formatUtils.formatTrendingCategoryTopicData,141      gqlQueries.trendingDiscussQuery142    );143  }144  else {145    res.status(400).json({146      error: 'Missing or invalid query parameter: limit',147      solution: 'put query after discussion',148      example: 'localhost:3000/trendingDiscuss?first=20',149    });150  }151 152};153 154export const languageStats = (_req: Request, res: Response) => {155  const username = _req.query.username as string;156  if (username) {157    controllers.fetchDataRawFormat(158      { username },159      res,160      gqlQueries.languageStatsQuery161    );162  }163  else {164    res.status(400).json({165      error: 'Missing or invalid query parameter: username',166      solution: 'put query after discussion',167      example: 'localhost:3000/languageStats?username=uwi',168    });169  }170 171};