2017-09-22 17:12:39 +02:00
|
|
|
'use strict';
|
|
|
|
|
|
|
|
const Datastore = require('nedb-promise');
|
|
|
|
|
2017-09-25 16:17:18 +03:30
|
|
|
const Group = new Datastore({
|
2017-09-22 17:12:39 +02:00
|
|
|
autoload: true,
|
2017-09-24 22:23:56 +03:30
|
|
|
filename: 'data/Group.db',
|
2017-09-22 17:12:39 +02:00
|
|
|
});
|
|
|
|
|
2017-09-25 16:17:18 +03:30
|
|
|
Group.ensureIndex({
|
2017-09-22 17:12:39 +02:00
|
|
|
fieldName: 'id',
|
|
|
|
unique: true,
|
|
|
|
});
|
|
|
|
|
|
|
|
const addGroup = group =>
|
2018-04-02 17:07:32 +02:00
|
|
|
Group.update({ id: group.id }, group, { upsert: true });
|
|
|
|
|
2018-04-03 00:21:00 +02:00
|
|
|
const hideGroup = ({ id }) =>
|
|
|
|
Group.update({ id }, { $set: { link: '' } });
|
|
|
|
|
2018-04-02 17:07:32 +02:00
|
|
|
const updateGroup = group =>
|
|
|
|
Group.update({ id: group.id }, { $set: group });
|
2017-09-22 17:12:39 +02:00
|
|
|
|
2020-05-25 22:49:53 +02:00
|
|
|
const listGroups = (query = {}) =>
|
|
|
|
Group.find(query);
|
2017-09-22 17:12:39 +02:00
|
|
|
|
2018-04-03 00:21:00 +02:00
|
|
|
const listVisibleGroups = () =>
|
2019-02-03 15:33:05 +05:00
|
|
|
Group.find({ $not: { link: '' } });
|
2018-04-03 00:21:00 +02:00
|
|
|
|
2017-09-22 17:12:39 +02:00
|
|
|
const managesGroup = group =>
|
2017-10-08 13:19:11 +03:30
|
|
|
Group.findOne(group);
|
2017-09-22 17:12:39 +02:00
|
|
|
|
2020-05-26 13:23:54 +02:00
|
|
|
const migrateGroup = (oldId, newId) =>
|
|
|
|
Group.update(
|
|
|
|
{ id: oldId, type: 'group' },
|
|
|
|
{ $set: { id: newId, type: 'supergroup' } },
|
|
|
|
);
|
|
|
|
|
2017-09-28 22:59:35 +02:00
|
|
|
const removeGroup = ({ id }) =>
|
|
|
|
Group.remove({ id });
|
|
|
|
|
2017-09-22 17:12:39 +02:00
|
|
|
module.exports = {
|
|
|
|
addGroup,
|
2018-04-03 00:21:00 +02:00
|
|
|
hideGroup,
|
2017-09-22 17:12:39 +02:00
|
|
|
listGroups,
|
2018-04-03 00:21:00 +02:00
|
|
|
listVisibleGroups,
|
2017-09-22 17:12:39 +02:00
|
|
|
managesGroup,
|
2020-05-26 13:23:54 +02:00
|
|
|
migrateGroup,
|
2017-09-28 22:59:35 +02:00
|
|
|
removeGroup,
|
2018-04-02 17:07:32 +02:00
|
|
|
updateGroup,
|
2017-09-22 17:12:39 +02:00
|
|
|
};
|