vortex / src /modules /gfg /schemas.ts
anujjoshi3105's picture
first commit
3d23b0f
export const userRatingSchema = {
summary: 'Get User Rating',
description: 'Fetches GeeksforGeeks user rating and platform details',
tags: ['GFG'],
querystring: {
type: 'object',
properties: {
username: { type: 'string', description: 'GFG username' },
},
required: ['username'],
},
response: {
200: {
type: 'object',
properties: {
username: { type: 'string' },
platform: { type: 'string' },
rating: { type: ['number', 'string'] },
level: { type: 'string' }
}
}
}
};
export const userSubmissionsSchema = {
summary: 'Get User Submissions',
description: 'Fetches problems solved by a GFG user',
tags: ['GFG'],
body: {
type: 'object',
properties: {
handle: { type: 'string', description: 'GFG handle' },
requestType: { type: 'string', default: "" },
year: { type: 'string', default: "" },
month: { type: 'string', default: "" }
},
required: ['handle']
}
};
export const userPostsSchema = {
summary: 'Get User Posts',
description: 'Fetches articles and posts written by a GFG user',
tags: ['GFG'],
params: {
type: 'object',
properties: {
username: { type: 'string' }
},
required: ['username']
},
querystring: {
type: 'object',
properties: {
fetch_type: { type: 'string', default: 'posts' },
page: { type: 'number', default: 1 }
}
}
};
export const promotionalEventsSchema = {
summary: 'Get Promotional Events',
description: 'Fetches promotional events from GFG',
tags: ['GFG'],
querystring: {
type: 'object',
properties: {
page_source: { type: 'string' },
user_country_code: { type: 'string', default: 'IN' }
},
required: ['page_source']
}
};
export const contestLeaderboardSchema = {
summary: 'Get Contest Leaderboard',
description: 'Fetches the leaderboard for GFG weekly coding contests',
tags: ['GFG'],
querystring: {
type: 'object',
properties: {
leaderboard_type: { type: 'number', default: 0 },
page: { type: 'number', default: 1 },
year_month: { type: 'string', default: "" }
}
}
};