summaryrefslogtreecommitdiff
path: root/views
diff options
context:
space:
mode:
Diffstat (limited to 'views')
-rw-r--r--views/guild.js7
-rw-r--r--views/guild_member.js35
2 files changed, 39 insertions, 3 deletions
diff --git a/views/guild.js b/views/guild.js
index 6a8658b..91df6bb 100644
--- a/views/guild.js
+++ b/views/guild.js
@@ -3,20 +3,21 @@
"use strict";
const View = require("./view"),
+ GuildMemberView = require("./guild_member"),
util = require("../util"),
api = require("../api"),
strings = require("../strings"),
+ Promise = require("bluebird"),
oneLine = require("common-tags").oneLine;
const GuildOverviewView = module.exports;
// match detail view
module.exports = class extends View {
- async text(members) {
+ text(members) {
// TODO remove when API supports order by fame
members.sort((m1, m2) => m1.fame < m2.fame);
- return members.map((member) =>
- `${member.player.name} *${member.status}* ${member.fame}`).join("\n");
+ return members.map((m) => new GuildMemberView().text(m)).join("\n");
}
async embed(guild) {
diff --git a/views/guild_member.js b/views/guild_member.js
new file mode 100644
index 0000000..d75ffe4
--- /dev/null
+++ b/views/guild_member.js
@@ -0,0 +1,35 @@
+#!/usr/bin/node
+/* jshint esnext:true */
+"use strict";
+
+const View = require("./view"),
+ PlayerView = require("./player"),
+ MatchesView = require("./matches"),
+ util = require("../util"),
+ api = require("../api"),
+ strings = require("../strings"),
+ oneLine = require("common-tags").oneLine;
+
+const GuildMemberView = module.exports;
+
+// combined fame + profile + last match
+module.exports = class extends View {
+ text(member) {
+ return `${member.player.name} | ${member.status} | ${member.fame} VS Fame`;
+ }
+
+ async embed(member, player, matches) {
+ const embed = util.vainsocialEmbed(`${member.player.name} - ${member.player.shard_id}`,
+ "", "vainsocial-guild-memberview")
+ .addField("Guild Profile", await this.text(member))
+ .addField("Player Profile", await new PlayerView().text(player))
+ .addField("Last Match", await new MatchesView().text(matches[0]));
+ return embed;
+ }
+
+ async respond(member, player, matches) {
+ this.response = await util.respond(this.msg,
+ await this.embed(member, player, matches), this.response);
+ return this.response;
+ }
+}