summaryrefslogtreecommitdiff
path: root/views/guild.js
diff options
context:
space:
mode:
authorschneefux <schneefux+commit@schneefux.xyz>2017-05-08 23:15:33 +0200
committerschneefux <schneefux+commit@schneefux.xyz>2017-05-08 23:15:33 +0200
commit31b4764cd5233acb25f4d0027261fe83eaad6ec7 (patch)
tree75e7c33b8284d711fb9208154a1d8db8b931a0f3 /views/guild.js
parentf3aa08e72c6ffdb942ea06e21ac19e28b8cd5550 (diff)
downloaddiscordbot-31b4764cd5233acb25f4d0027261fe83eaad6ec7.tar.gz
discordbot-31b4764cd5233acb25f4d0027261fe83eaad6ec7.zip
rewrite the whole thing (wip)
Diffstat (limited to 'views/guild.js')
-rw-r--r--views/guild.js45
1 files changed, 45 insertions, 0 deletions
diff --git a/views/guild.js b/views/guild.js
new file mode 100644
index 0000000..1a4cb78
--- /dev/null
+++ b/views/guild.js
@@ -0,0 +1,45 @@
+#!/usr/bin/node
+/* jshint esnext:true */
+"use strict";
+
+const View = require("./view"),
+ util = require("../util"),
+ api = require("../api"),
+ strings = require("../strings"),
+ oneLine = require("common-tags").oneLine;
+
+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);
+ return members.map((member) =>
+ `${member.player.name} ${member.fame}`).join("\n");
+ }
+
+ async embed(guild) {
+ const embed = util.vainsocialEmbed(`${guild.name} - ${guild.shard_id}`,
+ "", "vainsocial-guild-view")
+ .setDescription(await this.text(guild.members));
+ return embed;
+ };
+
+ async respond() {
+ const guild = await api.getGuild(this.user_token);
+ if (guild == undefined) {
+ this.response = await util.respond(this.msg,
+ strings.notRegistered, this.response);
+ return this.response;
+ }
+ this.response = await util.respond(this.msg,
+ await this.embed(guild), this.response);
+ return this.response;
+ };
+}