UNPKG

guildwars2-ts

Version:

GuildWars 2 API Wrapper in Typescript

298 lines (297 loc) 8.54 kB
import type { z } from 'zod'; import { ApiBase } from '../../base/apiBase'; import { GuildPermissionsDTO } from '../../models'; import { stringArrayType } from '../v2apiUtils'; /** * /v2/guild Api */ export declare class GuildApi extends ApiBase { /** * Returns core details about a given guild. * The end point will include more or less fields depend on whether an API Key of a Leader or * Member of the Guild with the guilds scope is included in the request. * * @param id - The guild id */ get(id: string): Promise<{ id: string; name: string; tag: string; emblem?: { background: { id: number; colors: number[]; }; foreground: { id: number; colors: number[]; }; flags: ("FlipBackgroundHorizontal" | "FlipBackgroundVertical" | "FlipForegroundHorizontal" | "FlipForegroundVertical")[]; } | undefined; level?: number | undefined; motd?: string | undefined; influence?: number | undefined; aetherium?: string | undefined; favor?: number | undefined; member_count?: number | undefined; member_capacity?: number | undefined; }>; /** * Returns information about certain events in a guild's log. * The endpoint requires the scope guilds, and will only work if the API key is from the guild leader's account. * * @param id - Unique guild id * @param since - Starting point for the log, by log id */ getLog(id: string, since?: number): Promise<({ id: number; time: string; } | { type: "joined"; user: string; id: number; time: string; } | { type: "invited"; user: string; invited_by: string; id: number; time: string; } | { type: "kick"; user: string; kicked_by: string; id: number; time: string; } | { type: "rank_change"; user: string; old_rank: string; new_rank: string; id: number; time: string; changed_by?: string | undefined; } | { type: "stash"; operation: "deposit" | "withdraw" | "move"; item_id: number; count: number; coins: number; id: number; time: string; } | { type: "motd"; user: string; motd: string; id: number; time: string; } | { type: "upgrade"; action: "queued" | "cancelled" | "completed" | "sped_up"; upgrade_id: number; id: number; time: string; count?: number | undefined; recipe_id?: number | undefined; })[]>; /** * Returns information about the members of a specified guild. * The endpoint requires the scope guilds, and will only work if the API key is from the guild leader's account. * * @param id - Unique guild id */ getMembers(id: string): Promise<{ name: string; rank: string; joined: string | null; }[]>; /** * Returns information about the ranks of a specified guild. * The endpoint requires the scope guilds, and will only work if the API key is from the guild leader's account. * * @param id - Unique guild id */ getRanks(id: string): Promise<{ id: string; order: number; permissions: string[]; icon: string; }[]>; /** * Returns information about the items in a guild's vault. * The endpoint requires the scope guilds, and will only work if the API key is from the guild leader's account. * * @param id - Unique guild id */ getStash(id: string): Promise<{ upgrade_id: number; size: number; coins: number; note: string; inventory: ({ id: number; count: number; } | null)[]; }[]>; /** * Returns information about the items in a guild's storage. * The endpoint requires the scope guilds, and will only work if the API key is from the guild leader's account. * * @param id - Unique guild id */ getStorage(id: string): Promise<{ id: number; count: number; }[]>; /** * Returns information about the teams in a guild. * The endpoint requires the scope guilds, and will only work if the API key is from the guild leader's account. * * @param id - Unique guild id */ getTeams(id: string): Promise<{ id: number; members: { name: string; role: "Member" | "Captain"; }[]; name: string; aggregate: { wins: number; losses: number; desertions: number; byes: number; forfeits: number; }; ladders: { ranked?: { wins: number; losses: number; desertions: number; byes: number; forfeits: number; } | undefined; unranked?: { wins: number; losses: number; desertions: number; byes: number; forfeits: number; } | undefined; }; games: { id: string; map_id: string; started: string; ended: string; team: string; scores: { red: number; blue: number; }; rating_type: "Ranked" | "Unranked" | "None"; rating_change: number; season?: string | undefined; }[]; seasons?: { id: string; wins: number; losses: number; rating: number; }[] | undefined; }[]>; /** * Returns information about the items in a guild's treasury. * The endpoint requires the scope guilds, and will only work if the API key is from the guild leader's account. * * @param id - Unique guild id */ getTreasury(id: string): Promise<{ item_id: number; count: number; needed_by: { upgrade_id: number; count: number; }[]; }[]>; /** * Returns information about the guild's upgrades. * The endpoint requires the scope guilds, and will only work if the API key is from the guild leader's account. * * @param id - Unique guild id */ getUpgrades(id: string): Promise<number[]>; /** * Returns information about all guild permissions. */ getPermissions(): Promise<z.infer<typeof stringArrayType>>; /** * Returns information about all guild permissions. * * @param ids - Permission ids */ getPermissions(ids: string[]): Promise<z.infer<typeof GuildPermissionsDTO>>; /** * Returns information on guild ids to be used for other API queries. * * @param name - Guild name */ find(name: string): Promise<string[]>; /** * Returns information about all available Guild Hall upgrades, including scribe decorations. * * @param ids - Guild upgrade ids */ upgradeInfo(ids: number[]): Promise<({ id: number; name: string; description: string; icon: string; build_time: number; required_level: number; experience: number; prerequisites: number[]; costs: ({ type: "Item"; name: string; count: number; item_id?: number | undefined; } | { type: "Collectible"; name: string; count: number; item_id?: number | undefined; } | { type: "Currency"; name: string; count: number; } | { type: "Coins"; count: number; })[]; } & ({ type: "AccumulatingCurrency"; } | { type: "Boost"; } | { type: "Claimable"; } | { type: "Consumable"; } | { type: "Decoration"; } | { type: "GuildHall"; } | { type: "GuildHallExpedition"; } | { type: "Hub"; } | { type: "Queue"; } | { type: "Unlock"; } | { type: "BankBag"; bag_max_items?: number | undefined; bag_max_coins?: number | undefined; }))[]>; }