From 94adb2f9f182e50f6d60aadc70bb8bf8f74f2371 Mon Sep 17 00:00:00 2001 From: schneefux Date: Tue, 9 May 2017 13:42:45 +0200 Subject: more error handling --- commands/vainsocial/guild_create.js | 21 +++++++++++++-------- commands/vainsocial/guild_view.js | 8 +++++++- views/guild.js | 8 +------- views/guild_create.js | 5 +++-- 4 files changed, 24 insertions(+), 18 deletions(-) diff --git a/commands/vainsocial/guild_create.js b/commands/vainsocial/guild_create.js index ad8d0e7..c28fe2a 100644 --- a/commands/vainsocial/guild_create.js +++ b/commands/vainsocial/guild_create.js @@ -48,13 +48,18 @@ Create a Guild with your VainSocial profile as leader. // register a VainSocial Guild to a Discord account async run(msg, args) { util.trackAction(msg, "vainsocial-guild-create"); - // TODO error handling - await api.post("/guild", { - shard_id: args.region, - name: args.name, - identifier: args.tag, - user_token: msg.author.id - }); - await new GuildCreateView(msg, msg.author.id).respond(); + const guildCreateView = new GuildCreateView(msg, msg.author.id); + try { + await api.post("/guild", { + shard_id: args.region, + name: args.name, + identifier: args.tag, + user_token: msg.author.id + }); + } catch (err) { + console.error(err); + return await guildCreateView.error(err.error.err); + } + await guildCreateView.respond(); } }; diff --git a/commands/vainsocial/guild_view.js b/commands/vainsocial/guild_view.js index 7deb66f..472b284 100644 --- a/commands/vainsocial/guild_view.js +++ b/commands/vainsocial/guild_view.js @@ -33,6 +33,12 @@ Show a summary of your Guild. // show Guild details async run(msg, args) { util.trackAction(msg, "vainsocial-guild-view"); - await new GuildOverviewView(msg, msg.author.id).respond(); + const guildOverviewView = new GuildOverviewView(msg); + try { + const guild = await api.getGuild(msg.author.id); + await guildOverviewView.respond(guild); + } catch (err) { + return await guildOverviewView.error(err.error.err); + } } }; diff --git a/views/guild.js b/views/guild.js index 1a4cb78..a5eedef 100644 --- a/views/guild.js +++ b/views/guild.js @@ -12,11 +12,6 @@ const GuildOverviewView = module.exports; // match detail view module.exports = class extends View { - constructor(msg, user_token) { - super(msg); - this.user_token = user_token; - } - async text(members) { // TODO remove when API supports order by fame members = members.sort((m1, m2) => m1.fame < m2.fame); @@ -31,8 +26,7 @@ module.exports = class extends View { return embed; }; - async respond() { - const guild = await api.getGuild(this.user_token); + async respond(guild) { if (guild == undefined) { this.response = await util.respond(this.msg, strings.notRegistered, this.response); diff --git a/views/guild_create.js b/views/guild_create.js index 9720191..8e7be81 100644 --- a/views/guild_create.js +++ b/views/guild_create.js @@ -2,7 +2,8 @@ /* jshint esnext:true */ "use strict"; -const View = require("./view"), +const emoji = require("discord-emoji"), + View = require("./view"), util = require("../util"), api = require("../api"), strings = require("../strings"), @@ -29,7 +30,7 @@ module.exports = class extends View { let reactions = {}; reactions[emoji.symbols.information_source] = async () => { util.trackAction(this.msg, "reaction-guildview"); - await new GuildOverviewView(this.user_token).respond(); + await new GuildOverviewView(this.msg).respond(this.user_token); }; return reactions; } -- cgit v1.3.1