123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101 |
- import fs from 'fs';
- import FileStoreStrategy, {FileStoreStrategyFilesystem, FileStoreStrategyGridFs, FileStoreStrategyS3} from './fileStoreStrategy'
- const insertActivity = (fileObj, activityType) =>
- Activities.insert({
- userId: fileObj.userId,
- type: 'card',
- activityType,
- attachmentId: fileObj._id,
- attachmentName: fileObj.name,
- boardId: fileObj.meta.boardId,
- cardId: fileObj.meta.cardId,
- listId: fileObj.meta.listId,
- swimlaneId: fileObj.meta.swimlaneId,
- });
- /** Strategy to store attachments at GridFS (MongoDB) */
- export class AttachmentStoreStrategyGridFs extends FileStoreStrategyGridFs {
- /** constructor
- * @param gridFsBucket use this GridFS Bucket
- * @param fileObj the current file object
- * @param versionName the current version
- */
- constructor(gridFsBucket, fileObj, versionName) {
- super(gridFsBucket, fileObj, versionName);
- }
- /** after successfull upload */
- onAfterUpload() {
- super.onAfterUpload();
- // If the attachment doesn't have a source field or its source is different than import
- if (!this.fileObj.meta.source || this.fileObj.meta.source !== 'import') {
- // Add activity about adding the attachment
- insertActivity(this.fileObj, 'addAttachment');
- }
- }
- /** after file remove */
- onAfterRemove() {
- super.onAfterRemove();
- insertActivity(this.fileObj, 'deleteAttachment');
- }
- }
- /** Strategy to store attachments at filesystem */
- export class AttachmentStoreStrategyFilesystem extends FileStoreStrategyFilesystem {
- /** constructor
- * @param fileObj the current file object
- * @param versionName the current version
- */
- constructor(fileObj, versionName) {
- super(fileObj, versionName);
- }
- /** after successfull upload */
- onAfterUpload() {
- super.onAfterUpload();
- // If the attachment doesn't have a source field or its source is different than import
- if (!this.fileObj.meta.source || this.fileObj.meta.source !== 'import') {
- // Add activity about adding the attachment
- insertActivity(this.fileObj, 'addAttachment');
- }
- }
- /** after file remove */
- onAfterRemove() {
- super.onAfterRemove();
- insertActivity(this.fileObj, 'deleteAttachment');
- }
- }
- /** Strategy to store attachments at filesystem */
- export class AttachmentStoreStrategyS3 extends FileStoreStrategyS3 {
- /** constructor
- * @param s3Bucket use this S3 Bucket
- * @param fileObj the current file object
- * @param versionName the current version
- */
- constructor(s3Bucket, fileObj, versionName) {
- super(s3Bucket, fileObj, versionName);
- }
- /** after successfull upload */
- onAfterUpload() {
- super.onAfterUpload();
- // If the attachment doesn't have a source field or its source is different than import
- if (!this.fileObj.meta.source || this.fileObj.meta.source !== 'import') {
- // Add activity about adding the attachment
- insertActivity(this.fileObj, 'addAttachment');
- }
- }
- /** after file remove */
- onAfterRemove() {
- super.onAfterRemove();
- insertActivity(this.fileObj, 'deleteAttachment');
- }
- }
|