overleaf/services/web/app/src/Features/Subscription/SubscriptionGroupController.js

74 lines
2.2 KiB
JavaScript
Raw Normal View History

/* eslint-disable
camelcase,
max-len,
no-unused-vars,
*/
// TODO: This file was created by bulk-decaffeinate.
// Fix any style issues and re-enable lint.
/*
* decaffeinate suggestions:
* DS102: Remove unnecessary code created because of implicit returns
* DS207: Consider shorter variations of null checks
* Full docs: https://github.com/decaffeinate/decaffeinate/blob/master/docs/suggestions.md
*/
const SubscriptionGroupHandler = require('./SubscriptionGroupHandler')
const OError = require('@overleaf/o-error')
const logger = require('@overleaf/logger')
const SubscriptionLocator = require('./SubscriptionLocator')
const SessionManager = require('../Authentication/SessionManager')
const _ = require('underscore')
const async = require('async')
module.exports = {
removeUserFromGroup(req, res, next) {
const subscription = req.entity
const userToRemove_id = req.params.user_id
logger.log(
{ subscriptionId: subscription._id, userToRemove_id },
'removing user from group subscription'
)
return SubscriptionGroupHandler.removeUserFromGroup(
subscription._id,
userToRemove_id,
function (err) {
if (err != null) {
OError.tag(err, 'error removing user from group', {
subscriptionId: subscription._id,
userToRemove_id,
})
return next(err)
}
return res.sendStatus(200)
}
)
},
removeSelfFromGroup(req, res, next) {
const subscriptionId = req.query.subscriptionId
const userToRemove_id = SessionManager.getLoggedInUserId(req.session)
return SubscriptionLocator.getSubscription(
subscriptionId,
function (error, subscription) {
if (error != null) {
return next(error)
}
return SubscriptionGroupHandler.removeUserFromGroup(
subscription._id,
userToRemove_id,
function (err) {
if (err != null) {
logger.err(
{ err, userToRemove_id, subscriptionId },
'error removing self from group'
)
return res.sendStatus(500)
}
return res.sendStatus(200)
}
)
}
)
},
}