DB archive characters are migrated and moved to file archive on migrate

This commit is contained in:
Stefan Zermatten
2021-12-20 11:53:02 +02:00
parent 1e10d8751b
commit a5f5baf1cc
4 changed files with 36 additions and 10 deletions

View File

@@ -30,9 +30,10 @@ export function getArchiveObj(creatureId){
return archiveCreature;
}
export function writeArchiveCreatureFile(archive){
export function archiveCreature(creatureId){
const archive = getArchiveObj(creatureId);
const buffer = Buffer.from(JSON.stringify(archive, null, 2));
return ArchiveCreatureFiles.write(buffer, {
const result = ArchiveCreatureFiles.write(buffer, {
fileName: `${archive.creature.name || archive.creature._id}.json`,
type: 'application/json',
userId: archive.creature.owner,
@@ -42,6 +43,8 @@ export function writeArchiveCreatureFile(archive){
creatureName: archive.creature.name,
},
});
removeCreatureWork(creatureId);
return result;
}
const archiveCreatureToFile = new ValidatedMethod({
@@ -60,10 +63,10 @@ const archiveCreatureToFile = new ValidatedMethod({
async run({creatureId}) {
assertOwnership(creatureId, this.userId);
if (Meteor.isServer){
const archive = getArchiveObj(creatureId);
writeArchiveCreatureFile(archive);
archiveCreature(creatureId);
} else {
removeCreatureWork(creatureId);
}
removeCreatureWork(creatureId);
},
});

View File

@@ -1,4 +1,4 @@
import '/imports/api/creature/archive/methods/archiveCreatures.js';
// import '/imports/api/creature/archive/methods/archiveCreatures.js';
import '/imports/api/creature/archive/methods/archiveCreatureToFile.js';
import '/imports/api/creature/archive/methods/restoreCreatures.js';
import '/imports/api/creature/archive/methods/restoreCreatureFromFile.js';

View File

@@ -9,7 +9,7 @@ import Experiences from '/imports/api/creature/experience/Experiences.js';
import ArchivedCreatures from '/imports/api/creature/archive/ArchivedCreatures.js';
import { removeCreatureWork } from '/imports/api/creature/creatures/methods/removeCreature.js';
function restoreCreature(archiveId){
export function restoreCreature(archiveId){
// Get the archive
const archivedCreature = ArchivedCreatures.findOne(archiveId);