fix(guild): use guild id for members endpoint
This commit is contained in:
parent
4af6e7e8d0
commit
c251b8de27
5 changed files with 21 additions and 8 deletions
4
package-lock.json
generated
4
package-lock.json
generated
|
|
@ -1,12 +1,12 @@
|
||||||
{
|
{
|
||||||
"name": "azerothcore-armory",
|
"name": "azerothcore-armory",
|
||||||
"version": "0.13.1",
|
"version": "0.13.2",
|
||||||
"lockfileVersion": 2,
|
"lockfileVersion": 2,
|
||||||
"requires": true,
|
"requires": true,
|
||||||
"packages": {
|
"packages": {
|
||||||
"": {
|
"": {
|
||||||
"name": "azerothcore-armory",
|
"name": "azerothcore-armory",
|
||||||
"version": "0.13.1",
|
"version": "0.13.2",
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@supercharge/promise-pool": "^2.1.0",
|
"@supercharge/promise-pool": "^2.1.0",
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
{
|
{
|
||||||
"name": "azerothcore-armory",
|
"name": "azerothcore-armory",
|
||||||
"version": "0.13.1",
|
"version": "0.13.2",
|
||||||
"description": "",
|
"description": "",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"build": "tsc -p tsconfig.json",
|
"build": "tsc -p tsconfig.json",
|
||||||
|
|
|
||||||
|
|
@ -151,7 +151,7 @@ export class Armory {
|
||||||
|
|
||||||
const guildsController = new GuildController(this);
|
const guildsController = new GuildController(this);
|
||||||
app.get("/guild/:realm/:name", this.wrapRoute(guildsController.guild.bind(guildsController)));
|
app.get("/guild/:realm/:name", this.wrapRoute(guildsController.guild.bind(guildsController)));
|
||||||
app.get("/guild/:realm/:name/members", this.wrapRoute(guildsController.members.bind(guildsController)));
|
app.get("/guild/:realm/:guild/members", this.wrapRoute(guildsController.members.bind(guildsController)));
|
||||||
|
|
||||||
app.use((err, req: express.Request, res: express.Response, next: express.NextFunction) => {
|
app.use((err, req: express.Request, res: express.Response, next: express.NextFunction) => {
|
||||||
// Error handler
|
// Error handler
|
||||||
|
|
|
||||||
|
|
@ -44,7 +44,7 @@ export class GuildController {
|
||||||
|
|
||||||
public async members(req: express.Request, res: express.Response, next: express.NextFunction): Promise<void> {
|
public async members(req: express.Request, res: express.Response, next: express.NextFunction): Promise<void> {
|
||||||
const realmName = req.params.realm;
|
const realmName = req.params.realm;
|
||||||
const guildName = req.params.name;
|
const guildId = parseInt(req.params.guild);
|
||||||
|
|
||||||
const realm = this.armory.getRealm(realmName);
|
const realm = this.armory.getRealm(realmName);
|
||||||
if (realm === undefined) {
|
if (realm === undefined) {
|
||||||
|
|
@ -52,8 +52,7 @@ export class GuildController {
|
||||||
return next(404);
|
return next(404);
|
||||||
}
|
}
|
||||||
|
|
||||||
const guildId = await this.getGuildId(realm, guildName);
|
if (isNaN(guildId) || !(await this.guildExists(realm, guildId))) {
|
||||||
if (guildId === null) {
|
|
||||||
// Could not find guild
|
// Could not find guild
|
||||||
return next(404);
|
return next(404);
|
||||||
}
|
}
|
||||||
|
|
@ -155,6 +154,20 @@ export class GuildController {
|
||||||
return rows[0].guildid;
|
return rows[0].guildid;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private async guildExists(realm: IRealmConfig, id: number): Promise<boolean> {
|
||||||
|
const db = this.armory.getCharactersDb(realm.name);
|
||||||
|
const [rows, fields] = await db.query({
|
||||||
|
sql: `
|
||||||
|
SELECT guildid
|
||||||
|
FROM guild WHERE guildid
|
||||||
|
`,
|
||||||
|
values: [id],
|
||||||
|
timeout: this.armory.config.dbQueryTimeout,
|
||||||
|
});
|
||||||
|
|
||||||
|
return (rows as RowDataPacket[]).length !== 0;
|
||||||
|
}
|
||||||
|
|
||||||
private async getGuildRanks(realm: IRealmConfig, id: number): Promise<IGuildRank[]> {
|
private async getGuildRanks(realm: IRealmConfig, id: number): Promise<IGuildRank[]> {
|
||||||
const db = this.armory.getCharactersDb(realm.name);
|
const db = this.armory.getCharactersDb(realm.name);
|
||||||
const [rows, fields] = await db.query({
|
const [rows, fields] = await db.query({
|
||||||
|
|
|
||||||
|
|
@ -66,7 +66,7 @@
|
||||||
serverSide: true,
|
serverSide: true,
|
||||||
searchDelay: 800,
|
searchDelay: 800,
|
||||||
ajax: {
|
ajax: {
|
||||||
url: `{{websiteRoot}}/guild/{{realm}}/{{name}}/members`,
|
url: `{{websiteRoot}}/guild/{{realm}}/{{id}}/members`,
|
||||||
},
|
},
|
||||||
columnDefs: [
|
columnDefs: [
|
||||||
{
|
{
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue