@retroachievements/api
Version:
A well-tested library that lets you get achievement, user, and game data from RetroAchievements.
34 lines (27 loc) • 832 B
text/typescript
import {
apiBaseUrl,
buildRequestUrl,
call,
serializeProperties,
} from "../utils/internal";
import type { AuthObject } from "../utils/public";
import type { GetSetClaimsResponse, SetClaim } from "./models";
type ClaimKind = "completed" | "dropped" | "expired";
export const getClaims = async (
authorization: AuthObject,
payload: { claimKind: ClaimKind }
): Promise<SetClaim[]> => {
const { claimKind } = payload;
const url = buildRequestUrl(apiBaseUrl, "/API_GetClaims.php", authorization, {
k: claimKindValueMap[claimKind],
});
const rawResponse = await call<GetSetClaimsResponse>({ url });
return serializeProperties(rawResponse, {
shouldMapToBooleans: ["UserIsJrDev"],
});
};
const claimKindValueMap: Record<ClaimKind, `${number}`> = {
completed: "1",
dropped: "2",
expired: "3",
};