diff --git a/server/api/controller/instance.js b/server/api/controller/instance.js index b81388ba..2cea4141 100644 --- a/server/api/controller/instance.js +++ b/server/api/controller/instance.js @@ -1,12 +1,19 @@ const APUser = require('../models/ap_user') const Instance = require('../models/instance') const Resource = require('../models/resource') - -// const { Op } = require('sequelize') +const Sequelize = require('sequelize') const instancesController = { async getAll (req, res) { - const instances = await Instance.findAll({ raw: true }) + const instances = await Instance.findAll({ + attributes: [ + 'domain', 'name', 'data', 'blocked', + [Sequelize.fn('COUNT', Sequelize.col('ap_users.ap_id')), 'users'] + ], + order: [[Sequelize.fn('COUNT', Sequelize.col('ap_users.ap_id')), 'DESC']], + group: ['instance.domain'], + include: [{ model: APUser, attributes: [] }] + }) return res.json(instances) }, diff --git a/server/federation/ego.js b/server/federation/ego.js index b8d57aa3..f1be8dac 100644 --- a/server/federation/ego.js +++ b/server/federation/ego.js @@ -9,6 +9,7 @@ module.exports = { log.debug(`boost ${match[1]}`) const event = await Event.findByPk(Number(match[1])) if (!event) { return res.status(404).send('Event not found!') } + // TODO, has to be unique... await event.update({ boost: [...event.boost, req.body.actor] }) res.sendStatus(201) }, @@ -28,6 +29,7 @@ module.exports = { const event = await Event.findByPk(Number(match[1])) log.debug(`${req.body.actor} bookmark ${event.title} (${event.likes.length})`) if (!event) { return res.status(404).send('Event not found!') } + // TODO: has to be unique await event.update({ likes: [...event.likes, req.body.actor] }) res.sendStatus(201) },