| import * as provider from './provider'; | |
| import type { | |
| GFGRating, | |
| SubmissionsQuery, | |
| GFGSubmissionsResponse, | |
| UserPostsQuery, | |
| LeaderboardQuery, | |
| PromotionalEventsQuery | |
| } from './types'; | |
| export async function getUserRating(username: string): Promise<GFGRating> { | |
| try { | |
| const data = await provider.fetchUserRating(username); | |
| return { | |
| username, | |
| platform: 'gfg', | |
| rating: data.rating, | |
| level: data.stars, | |
| }; | |
| } catch (error: any) { | |
| console.error(`GFG Error for ${username}:`, error.message); | |
| throw new Error('Error fetching GFG user data'); | |
| } | |
| } | |
| export async function getUserSubmissions(query: SubmissionsQuery): Promise<GFGSubmissionsResponse> { | |
| try { | |
| return await provider.fetchUserSubmissions(query); | |
| } catch (error: any) { | |
| console.error(`GFG Submissions Error for ${query.handle}:`, error.message); | |
| throw new Error('Error fetching GFG submissions'); | |
| } | |
| } | |
| export async function getUserPosts(query: UserPostsQuery): Promise<any> { | |
| try { | |
| return await provider.fetchUserPosts(query); | |
| } catch (error: any) { | |
| console.error(`GFG Posts Error for ${query.username}:`, error.message); | |
| throw new Error('Error fetching GFG user posts'); | |
| } | |
| } | |
| export async function getPromotionalEvents(query: PromotionalEventsQuery): Promise<any> { | |
| try { | |
| return await provider.fetchPromotionalEvents(query); | |
| } catch (error: any) { | |
| console.error('GFG Promotional Events Error:', error.message); | |
| throw new Error('Error fetching GFG promotional events'); | |
| } | |
| } | |
| export async function getContestLeaderboard(query: LeaderboardQuery): Promise<any> { | |
| try { | |
| return await provider.fetchContestLeaderboard(query); | |
| } catch (error: any) { | |
| console.error('GFG Leaderboard Error:', error.message); | |
| throw new Error('Error fetching GFG contest leaderboard'); | |
| } | |
| } | |