UNPKG

psn-api

Version:

A well-tested library that lets you get trophy, user, and game data from the PlayStation Network.

45 lines (39 loc) 1.53 kB
import { AllCallOptions, AuthorizationPayload } from "../models"; import { UserPlayedGamesResponse } from "../models/user-played-games-response.model"; import { buildRequestUrl } from "../utils/buildRequestUrl"; import { call } from "../utils/call"; import { USER_GAMES_BASE_URL } from "./USER_BASE_URL"; interface GetUserGamesOptions extends Pick<AllCallOptions, "limit" | "offset"> { /** * Comma separated list of platforms * @example ps4_game,ps5_native_game, pspc_game, unknown */ categories?: string; } /** * A call to this function will return a list of played games associated with the given accountId. * The list is sorted by recently played by default. * If the list cannot be found (either due to non-existence or privacy settings), an error will be thrown. * * @param authorization An object containing your access token, typically retrieved with `exchangeAccessCodeForAuthTokens()`. * @param accountId The account id to be queried. Use `"me"` for the authenticating account. */ export async function getUserPlayedGames( authorization: AuthorizationPayload, accountId: string, options?: GetUserGamesOptions ): Promise<UserPlayedGamesResponse> { const url = buildRequestUrl( USER_GAMES_BASE_URL, "/:accountId/titles", options, { accountId } ); const response = await call<UserPlayedGamesResponse>({ url }, authorization); if ((response as any)?.error) { throw new Error((response as any)?.error?.message ?? "Unexpected Error"); } return response; }