summaryrefslogtreecommitdiff
path: root/views/guild.js
blob: 15863b04d9d448e4164eb10a4c49d1aa4632946f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
#!/usr/bin/node
/* jshint esnext:true */
"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 {
    text(members) {
        // TODO remove when API supports server side sort
        return members.sort((m1, m2) => m1.fame < m2.fame).map((m) =>
            new GuildMemberView().text(m)).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(guild, extra="") {
        this.response = await util.respond(this.msg,
            await this.embed(guild), this.response);
        return this.response;
    }
}