gancio-upstream/server/api/controller/instance.js

33 lines
975 B
JavaScript
Raw Normal View History

2019-10-30 15:01:15 +01:00
const Sequelize = require('sequelize')
2019-12-04 01:20:31 +01:00
const { ap_user: APUser, instance: Instance, resource: Resource } = require('../models')
2019-10-30 15:01:15 +01:00
const instancesController = {
async getAll (req, res) {
2019-12-04 01:20:31 +01:00
const instances = await Instance.findAll({
2019-10-30 15:01:15 +01:00
attributes: {
include: [[Sequelize.fn('count', Sequelize.col('domain')), 'users']]
},
group: ['domain'],
2019-12-04 01:20:31 +01:00
include: [{ model: APUser, attributes: [] }]
2019-10-30 15:01:15 +01:00
})
return res.json(instances)
},
/**
* get instance users
*/
async get (req, res) {
2019-12-04 01:20:31 +01:00
const fedi_users = await APUser.findAll({ where: { instanceDomain: req.params.instance_domain }, include: [Resource] })
return res.json(fedi_users)
},
2019-10-30 15:01:15 +01:00
async toggleBlock (req, res) {
2019-12-04 01:20:31 +01:00
const instance = await Instance.findByPk(req.body.instance)
2019-10-30 15:01:15 +01:00
if (!instance) { return res.status(404).send('Not found') }
await instance.update({ blocked: req.body.blocked })
return res.json(instance)
}
}
module.exports = instancesController