2015-08-12 17:26:05 -06:00
|
|
|
/* jslint node: true */
|
|
|
|
'use strict';
|
|
|
|
|
2022-06-05 14:04:25 -06:00
|
|
|
const messageArea = require('../core/message_area.js');
|
|
|
|
const UserProps = require('./user_property.js');
|
2016-08-03 19:48:45 -06:00
|
|
|
|
2018-11-23 17:41:16 -07:00
|
|
|
// deps
|
2022-06-05 14:04:25 -06:00
|
|
|
const { get } = require('lodash');
|
2015-08-12 17:26:05 -06:00
|
|
|
|
2022-06-05 14:04:25 -06:00
|
|
|
exports.MessageAreaConfTempSwitcher = Sup =>
|
|
|
|
class extends Sup {
|
|
|
|
tempMessageConfAndAreaSwitch(messageAreaTag, recordPrevious = true) {
|
|
|
|
messageAreaTag =
|
|
|
|
messageAreaTag || get(this, 'config.messageAreaTag', this.messageAreaTag);
|
|
|
|
if (!messageAreaTag) {
|
|
|
|
return; // nothing to do!
|
|
|
|
}
|
2018-01-15 12:22:11 -07:00
|
|
|
|
2022-06-05 14:04:25 -06:00
|
|
|
if (recordPrevious) {
|
|
|
|
this.prevMessageConfAndArea = {
|
|
|
|
confTag: this.client.user.properties[UserProps.MessageConfTag],
|
|
|
|
areaTag: this.client.user.properties[UserProps.MessageAreaTag],
|
|
|
|
};
|
|
|
|
}
|
2017-01-25 22:18:05 -07:00
|
|
|
|
2022-06-05 14:04:25 -06:00
|
|
|
if (!messageArea.tempChangeMessageConfAndArea(this.client, messageAreaTag)) {
|
|
|
|
this.client.log.warn(
|
|
|
|
{ messageAreaTag: messageArea },
|
|
|
|
'Failed to perform temporary message area/conf switch'
|
|
|
|
);
|
|
|
|
}
|
2018-06-21 23:15:04 -06:00
|
|
|
}
|
2016-08-03 19:48:45 -06:00
|
|
|
|
2022-06-05 14:04:25 -06:00
|
|
|
tempMessageConfAndAreaRestore() {
|
|
|
|
if (this.prevMessageConfAndArea) {
|
|
|
|
this.client.user.properties[UserProps.MessageConfTag] =
|
|
|
|
this.prevMessageConfAndArea.confTag;
|
|
|
|
this.client.user.properties[UserProps.MessageAreaTag] =
|
|
|
|
this.prevMessageConfAndArea.areaTag;
|
|
|
|
}
|
2018-06-21 23:15:04 -06:00
|
|
|
}
|
2022-06-05 14:04:25 -06:00
|
|
|
};
|