55 lines
2.4 KiB
JavaScript
55 lines
2.4 KiB
JavaScript
/**Mocked data */
|
|
export default function({faker, url, options, login = faker.internet.userName()}) {
|
|
//Wakatime api
|
|
if (/^https:..wakatime.com.api.v1.users..*.stats.*$/.test(url)) {
|
|
//Get user profile
|
|
if (/api_key=MOCKED_TOKEN/.test(url)) {
|
|
console.debug(`metrics/compute/mocks > mocking wakatime api result > ${url}`)
|
|
const stats = array => {
|
|
const elements = []
|
|
let results = new Array(4 + faker.datatype.number(2)).fill(null).map(_ => ({
|
|
get digital() {
|
|
return `${this.hours}:${this.minutes}`
|
|
},
|
|
hours: faker.datatype.number(1000),
|
|
minutes: faker.datatype.number(1000),
|
|
name: array ? faker.helpers.arrayElement(array) : faker.random.words(2).replace(/ /g, "-").toLocaleLowerCase(),
|
|
percent: 0,
|
|
total_seconds: faker.datatype.number(1000000),
|
|
}))
|
|
results = results.filter(({name}) => elements.includes(name) ? false : (elements.push(name), true))
|
|
let percents = 100
|
|
for (const result of results) {
|
|
result.percent = 1 + ((percents - 1) <= 0 ? 0 : faker.datatype.number(percents - 1))
|
|
percents -= result.percent
|
|
}
|
|
return results
|
|
}
|
|
return ({
|
|
status: 200,
|
|
data: {
|
|
data: {
|
|
best_day: {
|
|
created_at: faker.date.recent(),
|
|
date: `${faker.date.recent()}`.substring(0, 10),
|
|
total_seconds: faker.datatype.number(1000000),
|
|
},
|
|
categories: stats(),
|
|
daily_average: faker.datatype.number(12 * 60 * 60),
|
|
daily_average_including_other_language: faker.datatype.number(12 * 60 * 60),
|
|
dependencies: stats(),
|
|
editors: stats(["VS Code", "Chrome", "IntelliJ", "PhpStorm", "WebStorm", "Android Studio", "Visual Studio", "Sublime Text", "PyCharm", "Vim", "Atom", "Xcode"]),
|
|
languages: stats(["JavaScript", "TypeScript", "PHP", "Java", "Python", "Vue.js", "HTML", "C#", "JSON", "Dart", "SCSS", "Kotlin", "JSX", "Go", "Ruby", "YAML"]),
|
|
machines: stats(),
|
|
operating_systems: stats(["Mac", "Windows", "Linux"]),
|
|
project: null,
|
|
projects: /api_key=MOCKED_TOKEN_NO_PROJECTS/.test(url) ? null : stats(),
|
|
total_seconds: faker.datatype.number(1000000000),
|
|
total_seconds_including_other_language: faker.datatype.number(1000000000),
|
|
},
|
|
},
|
|
})
|
|
}
|
|
}
|
|
}
|