UNPKG

@crosspost/sdk

Version:

SDK for interacting with the Crosspost API

81 lines (75 loc) 2.08 kB
import type { AccountActivityQuery, AccountActivityResponse, AccountPostsQuery, AccountPostsResponse, ActivityLeaderboardQuery, ActivityLeaderboardResponse, ApiResponse, } from '@crosspost/types'; import { makeRequest, type RequestOptions } from '../core/request.ts'; /** * Activity-related API operations */ export class ActivityApi { private options: RequestOptions; /** * Creates an instance of ActivityApi * @param options Request options */ constructor(options: RequestOptions) { this.options = options; } /** * Gets the global activity leaderboard * @param query Optional query parameters * @returns A promise resolving with the leaderboard response */ async getLeaderboard( query?: ActivityLeaderboardQuery, ): Promise<ApiResponse<ActivityLeaderboardResponse>> { return makeRequest<ActivityLeaderboardResponse, never, Record<string, unknown>>( 'GET', '/api/activity', this.options, undefined, query, ); } /** * Gets activity for a specific account * @param signerId The NEAR account ID * @param query Optional query parameters * @returns A promise resolving with the account activity response */ async getAccountActivity( signerId: string, query?: AccountActivityQuery, ): Promise<ApiResponse<AccountActivityResponse>> { return makeRequest<AccountActivityResponse, never, Record<string, unknown>>( 'GET', `/api/activity/${signerId}`, this.options, undefined, query, ); } /** * Gets posts for a specific account * @param signerId The NEAR account ID * @param query Optional query parameters * @returns A promise resolving with the account posts response */ async getAccountPosts( signerId: string, query?: AccountPostsQuery, ): Promise<ApiResponse<AccountPostsResponse>> { return makeRequest<AccountPostsResponse, never, Record<string, unknown>>( 'GET', `/api/activity/${signerId}/posts`, this.options, undefined, query, ); } }