summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorschneefux <schneefux+commit@schneefux.xyz>2017-05-09 13:42:45 +0200
committerschneefux <schneefux+commit@schneefux.xyz>2017-05-09 13:42:45 +0200
commit94adb2f9f182e50f6d60aadc70bb8bf8f74f2371 (patch)
treee43b65eaa31ca681a6a42d28c598377dd4aad1d7
parent54b59d1168e79c8706b164194bc1a48ec49726e4 (diff)
downloaddiscordbot-94adb2f9f182e50f6d60aadc70bb8bf8f74f2371.tar.gz
discordbot-94adb2f9f182e50f6d60aadc70bb8bf8f74f2371.zip
more error handling
-rw-r--r--commands/vainsocial/guild_create.js21
-rw-r--r--commands/vainsocial/guild_view.js8
-rw-r--r--views/guild.js8
-rw-r--r--views/guild_create.js5
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;
}