UNPKG

friend-connect

Version:

**BEFORE YOU USE THIS TOOL, PLEASE READ THE FOLLOWING: WE _AS CONTRIBUTORS_ ARE NOT RESPONSIBLE FOR ANY DAMAGE OR LOSS CAUSED BY THIS APP. USE AN ALT ACCOUNT, JUST IN CASE THERE IS AN ISSUE WITH THIS METHOD.**

49 lines (48 loc) 1.84 kB
import { parseIdentifier } from "../utils"; export default class Achievements { constructor(xboxLiveClient) { this.xbox = xboxLiveClient; } //TODO language type async getAchievements(identifier, language) { const res = await fetch(`${Achievements.uri}/users/${parseIdentifier(identifier)}/achievements`, { method: "GET", headers: { Authorization: this.xbox.authorizationHeader, "x-xbl-contract-version": "5", "Accept-Language": language ?? "en-us", }, }); let text = await res.status; let data = await res.json(); return data.achievements; } async getAchievement(identifier, serviceConfigId, achievementId, language) { const res = await fetch(`${Achievements.uri}/users/${parseIdentifier(identifier)}/achievements/${serviceConfigId}/${achievementId}`, { method: "GET", headers: { Authorization: this.xbox.authorizationHeader, "x-xbl-contract-version": "5", "Accept-Language": language ?? "en-us", }, }); let data = await res.json(); return data.achievement; } /** * Returns a 403 atm */ async getTitleHistory(identifier, query) { const res = await fetch(`${Achievements.uri}/users/${parseIdentifier(identifier //@ts-ignore )}/history/titles${new URLSearchParams(query)}`, { method: "GET", headers: { Authorization: this.xbox.authorizationHeader, "x-xbl-contract-version": "5", }, }); let data = await res.json(); return data; } } Achievements.uri = "https://achievements.xboxlive.com";