feat(plugins/leetcode): add plugin (#1213) [skip ci]

This commit is contained in:
Simon Lecoq
2022-09-05 21:18:20 -04:00
committed by GitHub
parent 5747703b94
commit 2cf5a3990a
14 changed files with 426 additions and 0 deletions

View File

@@ -0,0 +1,102 @@
/**Mocked data */
export default function({faker, url, body, login = faker.internet.userName()}) {
if (/^https:..leetcode.com.graphql.*$/.test(url)) {
const {query} = body
//Languages query
if (/^query Languages /.test(query)) {
console.debug("metrics/compute/mocks > mocking leetcode api result > Languages")
return ({
status: 200,
data: {
data: {
matchedUser:{
languageProblemCount:new Array(6).fill(null).map(_ => ({
languageName:faker.hacker.noun(),
problemsSolved:faker.datatype.number(200)
}))
}
},
},
})
}
//Skills query
if (/^query Skills /.test(query)) {
console.debug("metrics/compute/mocks > mocking leetcode api result > Skills")
return ({
status: 200,
data: {
data: {
matchedUser:{
tagProblemCounts:{
advanced:new Array(6).fill(null).map(_ => ({
tagName:faker.hacker.noun(),
tagSlug:faker.lorem.slug(),
problemsSolved:faker.datatype.number(200)
})),
intermediate:new Array(6).fill(null).map(_ => ({
tagName:faker.hacker.noun(),
tagSlug:faker.lorem.slug(),
problemsSolved:faker.datatype.number(200)
})),
fundamental:new Array(6).fill(null).map(_ => ({
tagName:faker.hacker.noun(),
tagSlug:faker.lorem.slug(),
problemsSolved:faker.datatype.number(200)
}))
}
}
},
},
})
}
//Problems query
if (/^query Problems /.test(query)) {
console.debug("metrics/compute/mocks > mocking leetcode api result > Problems")
return ({
status: 200,
data: {
data: {
allQuestionsCount:[
{difficulty:"All", count:2402},
{difficulty:"Easy", count:592},
{difficulty:"Medium", count:1283},
{difficulty:"Hard", count:527},
],
matchedUser:{
problemsSolvedBeatsStats:[
{difficulty:"Easy", percentage:faker.datatype.float({max:100})},
{difficulty:"Medium", percentage:faker.datatype.float({max:100})},
{difficulty:"Hard", percentage:faker.datatype.float({max:100})},
],
submitStatsGlobal:{
acSubmissionNum:[
{difficulty:"All", count:faker.datatype.number(2402)},
{difficulty:"Easy", count:faker.datatype.number(592)},
{difficulty:"Medium", count:faker.datatype.number(1283)},
{difficulty:"Hard", count:faker.datatype.number(527)},
]
}
}
},
},
})
}
//Recent query
if (/^query Recent /.test(query)) {
console.debug("metrics/compute/mocks > mocking leetcode api result > Recent")
return ({
status: 200,
data: {
data: {
recentAcSubmissionList:new Array(6).fill(null).map(_ => ({
id:`${faker.datatype.number(10000)}`,
title:faker.lorem.sentence(),
titleSlug:faker.lorem.slug(),
timestamp:`${Math.round(faker.date.recent().getTime()/1000)}`,
})),
},
},
})
}
}
}