wekan/server/publications/attachments.js
John R. Supplee 5a6f84ce34 * Add publications for admin reports
* remove broken cards from user menu
* Adjust report titles
2021-04-06 12:42:15 +02:00

60 lines
1.2 KiB
JavaScript

import Attachments, { AttachmentStorage } from '/models/attachments';
import { ObjectID } from 'bson';
Meteor.publish('attachmentsList', function() {
// eslint-disable-next-line no-console
// console.log('attachments:', AttachmentStorage.find());
const files = AttachmentStorage.find(
{},
{
fields: {
_id: 1,
filename: 1,
md5: 1,
length: 1,
contentType: 1,
metadata: 1,
},
sort: {
filename: 1,
},
limit: 250,
},
);
const attIds = [];
files.forEach(file => {
attIds.push(file._id._str);
});
return [
files,
Attachments.find({ 'copies.attachments.key': { $in: attIds } }),
];
});
Meteor.publish('orphanedAttachments', function() {
let keys = [];
Attachments.find({}, { fields: { copies: 1 } }).forEach(att => {
keys.push(new ObjectID(att.copies.attachments.key));
});
keys.sort();
keys = _.uniq(keys, true);
return AttachmentStorage.find(
{ _id: { $nin: keys } },
{
fields: {
_id: 1,
filename: 1,
md5: 1,
length: 1,
contentType: 1,
metadata: 1,
},
sort: {
filename: 1,
},
limit: 250,
},
);
});