diff --git a/app/components/leaderboard.js b/app/components/leaderboard.js index 5cb2769b..cff60912 100644 --- a/app/components/leaderboard.js +++ b/app/components/leaderboard.js @@ -61,56 +61,56 @@ export function Leaderboard({ contributors, community, leaderboardSize }) { {contributor.username} - - {contributor.username} + + {contributor.attributes.username} 0 + contributor.attributes.openPRsNumber > 0 ? "d-none d-sm-table-cell" : `${styles["disabled-link"]} d-none d-sm-table-cell` } colSpan="1" > - {contributor.openPRsNumber} + {contributor.attributes.openPRsNumber} 0 + contributor.attributes.mergedPRsNumber > 0 ? "d-none d-sm-table-cell" : `${styles["disabled-link"]} d-none d-sm-table-cell` } colSpan="1" > - - {contributor.mergedPRsNumber} + + {contributor.attributes.mergedPRsNumber} 0 + contributor.attributes.issuesNumber > 0 ? "d-none d-sm-table-cell" : `${styles["disabled-link"]} d-none d-sm-table-cell` } colSpan="1" > - - {contributor.issuesNumber} + + {contributor.attributes.issuesNumber} @@ -127,10 +127,10 @@ export async function getLeaderboardProps(communityId, leaderboardSize) { let communityName = null; let communities = await fetchAPI("/communities"); - communities.forEach((community) => { - if (community.communityId === communityId) { - contributors = community.contributors; - communityName = community.communityName; + communities.data.forEach((community) => { + if (community.attributes.communityId === communityId) { + contributors = community.attributes.contributors; + communityName = community.attributes.communityName; } }); diff --git a/app/components/leaderboardcompact.js b/app/components/leaderboardcompact.js index 13506a5c..47facde1 100644 --- a/app/components/leaderboardcompact.js +++ b/app/components/leaderboardcompact.js @@ -40,56 +40,56 @@ export function LeaderboardCompact({ contributors, leaderboardSize }) { {contributor.username} - - {contributor.username} + + {contributor.attributes.username} 0 + contributor.attributes.openPRsNumber > 0 ? "d-none d-sm-table-cell" : `${styles["disabled-link"]} d-none d-sm-table-cell` } colSpan="1" > - {contributor.openPRsNumber} + {contributor.attributes.openPRsNumber} 0 + contributor.attributes.mergedPRsNumber > 0 ? "d-none d-sm-table-cell" : `${styles["disabled-link"]} d-none d-sm-table-cell` } colSpan="1" > - - {contributor.mergedPRsNumber} + + {contributor.attributes.mergedPRsNumber} 0 + contributor.attributes.issuesNumber > 0 ? "d-none d-sm-table-cell" : `${styles["disabled-link"]} d-none d-sm-table-cell` } colSpan="1" > - - {contributor.issuesNumber} + + {contributor.attributes.issuesNumber} @@ -106,10 +106,10 @@ export async function getLeaderboardCompactProps(communityId,leaderboardSize){ let communityName = null; let communities = await fetchAPI("/communities"); - communities.forEach((community) => { - if (community.communityId === communityId) { - contributors = community.contributors; - communityName = community.communityName; + communities.data.forEach((community) => { + if (community.attributes.communityId === communityId) { + contributors = community.attributes.contributors; + communityName = community.attributes.communityName; } }); diff --git a/app/lib/leaderboard.js b/app/lib/leaderboard.js index edb770d4..4db9a963 100644 --- a/app/lib/leaderboard.js +++ b/app/lib/leaderboard.js @@ -1,21 +1,21 @@ import { fetchAPI } from "./api"; export const contributorList = (contributors) => { - contributors = contributors.sort((contributor1, contributor2) => { - if (contributor1.mergedPRsNumber === contributor2.mergedPRsNumber) { - if (contributor1.openPRsNumber === contributor2.openPRsNumber) { - if (contributor1.issuesNumber < contributor2.issuesNumber) { + contributors = contributors.data.sort((contributor1, contributor2) => { + if (contributor1.attributes.mergedPRsNumber === contributor2.attributes.mergedPRsNumber) { + if (contributor1.attributes.openPRsNumber === contributor2.attributes.openPRsNumber) { + if (contributor1.attributes.issuesNumber < contributor2.attributes.issuesNumber) { return 1; } return -1; } - if (contributor1.openPRsNumber < contributor2.openPRsNumber) { + if (contributor1.attributes.openPRsNumber < contributor2.attributes.openPRsNumber) { return 1; } return -1; } - if (contributor1.mergedPRsNumber < contributor2.mergedPRsNumber) { + if (contributor1.attributes.mergedPRsNumber < contributor2.attributes.mergedPRsNumber) { return 1; } return -1; @@ -26,9 +26,9 @@ export const contributorList = (contributors) => { export const getCommunityIds = async () => { let communities = await fetchAPI("/communities"); let paths = []; - communities.forEach((community) => { + communities.data.forEach((community) => { paths.push({ - params: { id: community.communityId }, + params: { id: community.attributes.communityId }, }); }); return paths; diff --git a/cms/config/fetchContributors.js b/cms/config/fetchContributors.js index 88809f99..175c587b 100644 --- a/cms/config/fetchContributors.js +++ b/cms/config/fetchContributors.js @@ -55,7 +55,7 @@ module.exports.getCommunityContributors = async ( if (contributorCount === 0) { await strapi .service("api::g-so-c-contributor.g-so-c-contributor") - .create({ data: { contributor } }); + .create({ data: contributor }); } else { await strapi .db.query("api::g-so-c-contributor.g-so-c-contributor") @@ -64,7 +64,7 @@ module.exports.getCommunityContributors = async ( username: contributor.username, community: community.id, }, - data: { contributor }, + data: contributor, }); } }); diff --git a/cms/src/api/community/controllers/community.js b/cms/src/api/community/controllers/community.js index 4aaddfda..13bf6781 100644 --- a/cms/src/api/community/controllers/community.js +++ b/cms/src/api/community/controllers/community.js @@ -6,4 +6,19 @@ const { createCoreController } = require('@strapi/strapi').factories; -module.exports = createCoreController('api::community.community'); +module.exports = createCoreController('api::community.community', ({ strapi }) => ({ + + async find(ctx) { + // some custom logic here + + // Calling the default core action + const entity = await await strapi.entityService.findMany('api::community.community', { + populate: '*' + }) + const sanitizedEntity = await this.sanitizeOutput(entity, ctx); + + // some more custom logic + + return this.transformResponse(sanitizedEntity); + }, + }));