psn-api
Version:
A well-tested library that lets you get trophy, user, and game data from the PlayStation Network.
44 lines (38 loc) • 1.59 kB
text/typescript
import type {
AllCallOptions,
AuthorizationPayload,
GetUserFriendsAccountIdsResponse
} from "../models";
import { buildRequestUrl } from "../utils/buildRequestUrl";
import { call } from "../utils/call";
import { USER_BASE_URL } from "./USER_BASE_URL";
type GetUserFriendsAccountIdsOptions = Pick<AllCallOptions, "limit" | "offset">;
/**
* A call to this function will retrieve the list of friended `accountId` values
* associated with the given `accountId` parameter. If the user cannot be found
* (either due to non-existence or privacy settings), an error will be thrown.
*
* To find a user's `accountId`, the `makeUniversalSearch()` function can be used.
*
* @param authorization An object containing your access token, typically retrieved with `exchangeAccessCodeForAuthTokens()`.
* @param accountId The account whose trophy list is being accessed. Use `"me"` for the authenticating account.
*/
export const getUserFriendsAccountIds = async (
authorization: AuthorizationPayload,
accountId: string,
options?: Partial<GetUserFriendsAccountIdsOptions>
): Promise<GetUserFriendsAccountIdsResponse> => {
const url = buildRequestUrl(USER_BASE_URL, "/:accountId/friends", options, {
accountId
});
const response = await call<GetUserFriendsAccountIdsResponse>(
{ url },
authorization
);
// If you are unable to access the user's friends list, a
// "Not permitted by access control" error will be thrown.
if ((response as any)?.error) {
throw new Error((response as any)?.error?.message ?? "Unexpected Error");
}
return response;
};