cosmoEagle/leetcode-api
0
1import { Response } from 'express';2import { UserData } from '../types';3 4const fetchUserDetails = async (5 options: { username: string; limit: number },6 res: Response,7 formatData: (data: UserData) => {},8 query: string9) => {10 try {11 const response = await fetch('https://leetcode.com/graphql', {12 method: 'POST',13 headers: {14 'Content-Type': 'application/json',15 Referer: 'https://leetcode.com',16 },17 body: JSON.stringify({18 query: query,19 variables: {20 username: options.username, //username required21 limit: options.limit, //only for submission22 },23 }),24 });25 26 const result = await response.json();27 28 if (result.errors) {29 return res.send(result);30 }31 32 return res.json(formatData(result.data));33 } catch (err) {34 console.error('Error: ', err);35 return res.send(err);36 }37};38 39export default fetchUserDetails;40 