export async function fetchStatuses() { const res = await query<Pick<CUQuery, 'status'>>({ query: '', namedQuery: 'statusEffects', operationName: null, variables: null, }, HUDGraphQLQueryConfig()); return { ...res, data: res.data && res.data.status ? res.data.status.statuses : [], refetch: fetchStatuses, }; }
export async function fetchSkills(): Promise<HUDGraphQLQueryResult<Skill[]>> { const res = await query<Pick<CUQuery, 'myCharacter'>>({ query: skillsQuery, operationName: null, namedQuery: null, variables: {}, }, HUDGraphQLQueryConfig()); return { ...res, data: res.data && res.data.myCharacter ? res.data.myCharacter.skills : [], refetch: fetchSkills, }; }
export async function fetchItemDefRefs() { const res = await query<Pick<CUQuery, 'game'>>({ query: itemDefRefsQuery, operationName: null, namedQuery: null, variables: {}, }, HUDGraphQLQueryConfig()); return { ...res, data: res.data && res.data.game ? res.data.game.items : [], refetch: fetchItemDefRefs, }; }
export function gqlQuery(q: GraphQLQuery, options: RequestOptions = {}) { const requestOptions: RequestOptions = { headers: Object.assign({ 'api-version': `${game.apiVersion}`, 'Content-Type': 'application/json', Authorization: `Bearer ${game.accessToken}`, characterId: game.selfPlayerState.characterID, shardId: `${game.shardID}`, Accept: 'application/json', }, options.headers), }; return query(q, { url: game.webAPIHost + '/graphql', requestOptions, }); }