Skip to content

Commit ccfb0fa

Browse files
committed
fix for #65
1 parent 54c0cad commit ccfb0fa

File tree

9 files changed

+49
-16
lines changed

9 files changed

+49
-16
lines changed

src/main.ts

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -377,15 +377,21 @@ export default class MediaDbPlugin extends Plugin {
377377
throw new Error('MDB | active note is not a Media DB entry or is missing metadata');
378378
}
379379

380+
381+
380382
let oldMediaTypeModel = this.mediaTypeManager.createMediaTypeModelFromMediaType(metadata, metadata.type);
381383

384+
// console.debug(oldMediaTypeModel);
385+
382386
let newMediaTypeModel = await this.apiManager.queryDetailedInfoById(metadata.id, metadata.dataSource);
383387
if (!newMediaTypeModel) {
384388
return;
385389
}
386390

387391
newMediaTypeModel = Object.assign(oldMediaTypeModel, newMediaTypeModel.getWithOutUserData());
388392

393+
// console.debug(newMediaTypeModel);
394+
389395
// deletion not happening anymore why is this log statement still here
390396
console.debug('MDB | deleting old entry');
391397
if (onlyMetadata) {

src/models/BoardGameModel.ts

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import {MediaTypeModel} from './MediaTypeModel';
2-
import {mediaDbTag} from '../utils/Utils';
2+
import {mediaDbTag, migrateObject} from '../utils/Utils';
33
import {MediaType} from '../utils/MediaType';
44

55

@@ -28,7 +28,11 @@ export class BoardGameModel extends MediaTypeModel {
2828
personalRating: undefined,
2929
};
3030

31-
Object.assign(this, obj);
31+
migrateObject(this, obj, this);
32+
33+
if(!obj.hasOwnProperty('userData')) {
34+
migrateObject(this.userData, obj, this.userData);
35+
}
3236

3337
this.type = this.getMediaType();
3438
}

src/models/GameModel.ts

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import {MediaTypeModel} from './MediaTypeModel';
2-
import {mediaDbTag} from '../utils/Utils';
2+
import {mediaDbTag, migrateObject} from '../utils/Utils';
33
import {MediaType} from '../utils/MediaType';
44

55

@@ -30,7 +30,11 @@ export class GameModel extends MediaTypeModel {
3030
personalRating: undefined,
3131
};
3232

33-
Object.assign(this, obj);
33+
migrateObject(this, obj, this);
34+
35+
if(!obj.hasOwnProperty('userData')) {
36+
migrateObject(this.userData, obj, this.userData);
37+
}
3438

3539
this.type = this.getMediaType();
3640
}

src/models/MovieModel.ts

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import {MediaTypeModel} from './MediaTypeModel';
2-
import {mediaDbTag} from '../utils/Utils';
2+
import {mediaDbTag, migrateObject} from '../utils/Utils';
33
import {MediaType} from '../utils/MediaType';
44

55

@@ -35,7 +35,11 @@ export class MovieModel extends MediaTypeModel {
3535
personalRating: undefined,
3636
};
3737

38-
Object.assign(this, obj);
38+
migrateObject(this, obj, this);
39+
40+
if(!obj.hasOwnProperty('userData')) {
41+
migrateObject(this.userData, obj, this.userData);
42+
}
3943

4044
this.type = this.getMediaType();
4145
}

src/models/MusicReleaseModel.ts

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import {MediaTypeModel} from './MediaTypeModel';
2-
import {mediaDbTag} from '../utils/Utils';
2+
import {mediaDbTag, migrateObject} from '../utils/Utils';
33
import {MediaType} from '../utils/MediaType';
44

55

@@ -31,7 +31,11 @@ export class MusicReleaseModel extends MediaTypeModel {
3131
personalRating: undefined,
3232
};
3333

34-
Object.assign(this, obj);
34+
migrateObject(this, obj, this);
35+
36+
if(!obj.hasOwnProperty('userData')) {
37+
migrateObject(this.userData, obj, this.userData);
38+
}
3539

3640
this.type = this.getMediaType();
3741
}

src/models/SeriesModel.ts

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import {MediaTypeModel} from './MediaTypeModel';
2-
import {mediaDbTag} from '../utils/Utils';
2+
import {mediaDbTag, migrateObject} from '../utils/Utils';
33
import {MediaType} from '../utils/MediaType';
44

55

@@ -50,7 +50,11 @@ export class SeriesModel extends MediaTypeModel {
5050
personalRating: undefined,
5151
};
5252

53-
Object.assign(this, obj);
53+
migrateObject(this, obj, this);
54+
55+
if(!obj.hasOwnProperty('userData')) {
56+
migrateObject(this.userData, obj, this.userData);
57+
}
5458

5559
this.type = this.getMediaType();
5660
}

src/models/WikiModel.ts

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import {MediaTypeModel} from './MediaTypeModel';
2-
import {mediaDbTag} from '../utils/Utils';
2+
import {mediaDbTag, migrateObject} from '../utils/Utils';
33
import {MediaType} from '../utils/MediaType';
44

55

@@ -29,7 +29,11 @@ export class WikiModel extends MediaTypeModel {
2929
this.article = undefined;
3030
this.userData = {};
3131

32-
Object.assign(this, obj);
32+
migrateObject(this, obj, this);
33+
34+
if(!obj.hasOwnProperty('userData')) {
35+
migrateObject(this.userData, obj, this.userData);
36+
}
3337

3438
this.type = this.getMediaType();
3539
}

src/settings/PropertyMapper.ts

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -22,17 +22,14 @@ export class PropertyMapper {
2222
return obj;
2323
}
2424

25-
console.log('test2');
2625
// @ts-ignore
27-
console.log(obj.type);
26+
// console.log(obj.type);
2827

2928
// @ts-ignore
3029
if (MEDIA_TYPES.filter(x => x.toString() == obj.type).length < 1) {
3130
return obj;
3231
}
3332

34-
console.log('test3');
35-
3633
// @ts-ignore
3734
const propertyMappings = this.plugin.settings.propertyMappingModels.find(x => x.type === obj.type).properties;
3835

src/utils/Utils.ts

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -212,3 +212,9 @@ export interface CreateNoteOptions {
212212
attachFile?: TFile,
213213
openNote?: boolean,
214214
}
215+
216+
export function migrateObject<T extends object>(object: T, oldData: any, defaultData: T): void {
217+
for (const key in object) {
218+
object[key] = oldData.hasOwnProperty(key) ? oldData[key] : defaultData[key];
219+
}
220+
}

0 commit comments

Comments
 (0)