59 lines
1.6 KiB
JavaScript
59 lines
1.6 KiB
JavaScript
|
|
import SimpleSchema from 'simpl-schema';
|
|
import { incrementFileStorageUsed } from '/imports/api/users/methods/updateFileStorageUsed.js';
|
|
import { CreaturePropertySchema } from '/imports/api/creature/creatureProperties/CreatureProperties.js';
|
|
import { CreatureSchema } from '/imports/api/creature/creatures/Creatures.js';
|
|
let createS3FilesCollection;
|
|
if (Meteor.isServer) {
|
|
createS3FilesCollection = require('/imports/api/files/server/s3FileStorage.js').createS3FilesCollection
|
|
} else {
|
|
createS3FilesCollection = require('/imports/api/files/client/s3FileStorage.js').createS3FilesCollection
|
|
}
|
|
|
|
const ArchiveCreatureFiles = createS3FilesCollection({
|
|
collectionName: 'archiveCreatureFiles',
|
|
storagePath: Meteor.isDevelopment ? '../../../../../fileStorage/archiveCreatures' : 'assets/app/archiveCreatures',
|
|
onBeforeUpload(file) {
|
|
// Allow upload files under 10MB, and only in json format
|
|
if (file.size > 10485760) {
|
|
return 'Please upload with size equal or less than 10MB';
|
|
}
|
|
if (!/json/i.test(file.extension)) {
|
|
return 'Please upload only a JSON file';
|
|
}
|
|
return true;
|
|
},
|
|
onAfterUpload(file) {
|
|
if (Meteor.isServer) incrementFileStorageUsed(file.userId, file.size);
|
|
}
|
|
});
|
|
|
|
let archiveSchema = new SimpleSchema({
|
|
meta: {
|
|
type: Object,
|
|
blackbox: true,
|
|
},
|
|
creature: CreatureSchema,
|
|
properties: {
|
|
type: Array,
|
|
},
|
|
'properties.$': CreaturePropertySchema,
|
|
experiences: {
|
|
type: Array,
|
|
},
|
|
'experiences.$': {
|
|
type: Object,
|
|
blackbox: true,
|
|
},
|
|
logs: {
|
|
type: Array,
|
|
},
|
|
'logs.$': {
|
|
type: Object,
|
|
blackbox: true,
|
|
},
|
|
});
|
|
|
|
export default ArchiveCreatureFiles;
|
|
export { archiveSchema };
|