39 lines
869 B
JavaScript
39 lines
869 B
JavaScript
|
import { ifNoUser401 } from '../utils/middleware';
|
||
|
|
||
|
export default function settingsController(app) {
|
||
|
const api = app.loopback.Router();
|
||
|
const toggleUserFlag = flag => (req, res, next) => {
|
||
|
const { user } = req;
|
||
|
const currentValue = user[ flag ];
|
||
|
return user
|
||
|
.update$({ [ flag ]: !currentValue })
|
||
|
.subscribe(
|
||
|
() => res.status(200).json({
|
||
|
flag,
|
||
|
value: !currentValue
|
||
|
}),
|
||
|
next
|
||
|
);
|
||
|
};
|
||
|
api.post(
|
||
|
'/toggle-lockdown',
|
||
|
toggleUserFlag('isLocked')
|
||
|
);
|
||
|
api.post(
|
||
|
'/toggle-announcement-email',
|
||
|
ifNoUser401,
|
||
|
toggleUserFlag('sendMonthlyEmail')
|
||
|
);
|
||
|
api.post(
|
||
|
'/toggle-notification-email',
|
||
|
ifNoUser401,
|
||
|
toggleUserFlag('sendNotificationEmail')
|
||
|
);
|
||
|
api.post(
|
||
|
'/toggle-quincy-email',
|
||
|
ifNoUser401,
|
||
|
toggleUserFlag('sendQuincyEmail')
|
||
|
);
|
||
|
app.use(api);
|
||
|
}
|