This commit is contained in:
41666 2017-12-20 01:13:34 -06:00
parent 5510d5a1c4
commit 3d541ac480
11 changed files with 108 additions and 42 deletions

View file

@ -40,6 +40,7 @@ class Roleypoly {
// enableReadyCheck: true,
// enableOfflineQueue: true
// })
this.ctx.server = new (require('./services/server'))(this.ctx)
this.ctx.discord = new (require('./services/discord'))(this.ctx)
this.ctx.sessions = new (require('./services/sessions'))(this.ctx)
this.ctx.P = new (require('./services/presentation'))(this.ctx)

View file

@ -2,7 +2,7 @@ module.exports = (R, $) => {
R.get('/api/servers', async (ctx) => {
const { userId } = ctx.session
const srv = $.discord.getRelevantServers(userId)
const presentable = $.P.oldPresentableServers(srv, userId)
const presentable = await $.P.oldPresentableServers(srv, userId)
ctx.body = presentable
})

View file

@ -20,6 +20,10 @@ class DiscordService extends Service {
async startBot () {
await this.client.login(this.botToken)
for (let server of this.client.guilds.array()) {
await this.ctx.server.ensure(server)
}
}
getRelevantServers (userId) {

View file

@ -10,11 +10,15 @@ class PresentationService extends Service {
this.cache = LRU({ max: 500, maxAge: 100 * 60 * 5 })
}
oldPresentableServers (collection, userId) {
return collection.map((server) => {
async oldPresentableServers (collection, userId) {
let servers = []
for (let server of collection.array()) {
const sd = await this.ctx.server.get(server.id)
console.log(sd.categories)
const gm = server.members.get(userId)
return {
servers.push({
id: server.id,
gm: {
nickname: gm.nickname,
@ -26,24 +30,26 @@ class PresentationService extends Service {
ownerID: server.ownerID,
icon: server.icon
},
roles: server.roles.filter(r => r.id !== server.id).map(r => ({
id: r.id,
color: r.color,
name: r.name,
selected: gm.roles.has(r.id),
position: r.position
})),
message: 'moe moe kyuuuuuuuuun~',
roles: (await this.rolesByServer(server, sd)).map(r => ({ ...r, selected: gm.roles.has(r.id) })),
message: sd.message,
categories: sd.categories,
perms: this.discord.getPermissions(gm)
}
})
})
}
return servers
}
rolesByServer (serverId, userId) {
// get from discord, merge with server categories
async rolesByServer (server) {
return server.roles
.filter(r => r.id !== server.id) // get rid of @everyone
.map(r => ({
id: r.id,
color: r.color,
name: r.name,
position: r.position
}))
}
}
module.exports = PresentationService

View file

@ -30,12 +30,12 @@ class ServerService extends Service {
return srv.update(newData)
}
get (id) {
return this.Server.findOne({
async get (id) {
return (await this.Server.findOne({
where: {
id
}
})
})).get({ plain: true })
}
}