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
|
|
|
|
|
|
|
const listGroups = () =>
|
2017-09-25 16:17:18 +03:30
|
|
|
Group.find({});
|
2017-09-22 17:12:39 +02:00
|
|
|
|
2018-04-03 00:21:00 +02:00
|
|
|
const listVisibleGroups = () =>
|
|
|
|
Group.cfind({ $not: { link: '' } }).sort({ title: 1 }).exec();
|
|
|
|
|
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
|
|
|
|
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,
|
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
|
|
|
};
|