diff --git a/src/pages/api/v1/[username].js b/src/pages/api/v1/[username].js index 8487fcd..14b27be 100644 --- a/src/pages/api/v1/[username].js +++ b/src/pages/api/v1/[username].js @@ -1,8 +1,14 @@ import { fetchDataForAllYears } from '../../../utils/api/fetch' export default async (req, res) => { - const { username, format } = req.query; - const data = await fetchDataForAllYears(username, format); + let { username, format } = req.query; + let organization = undefined + + if (username.includes('|')) { + [username, organization] = username.split('|'); + } + + const data = await fetchDataForAllYears(username, organization, format); res.setHeader('Cache-Control', 's-maxage=3600, stale-while-revalidate') res.json(data); } \ No newline at end of file diff --git a/src/utils/api/fetch.js b/src/utils/api/fetch.js index e5e0bf6..59a2172 100644 --- a/src/utils/api/fetch.js +++ b/src/utils/api/fetch.js @@ -9,8 +9,8 @@ const COLOR_MAP = { 4: "#216e39" }; -async function fetchYears(username) { - const data = await fetch(`https://github.com/${username}?tab=contributions`, { +async function fetchYears(username, organization) { + const data = await fetch(`https://github.com/${username}?tab=contributions&org=${organization}`, { headers: { "x-requested-with": "XMLHttpRequest" } @@ -94,8 +94,8 @@ async function fetchDataForYear(url, year, format) { }; } -export async function fetchDataForAllYears(username, format) { - const years = await fetchYears(username); +export async function fetchDataForAllYears(username, organization, format) { + const years = await fetchYears(username, organization); return Promise.all( years.map((year) => fetchDataForYear(year.href, year.text, format)) ).then((resp) => {