Skip to content

Commit 91df97a

Browse files
committed
feat(pfapi): remove single model model-version stuff as it is too complicated
1 parent 98e081e commit 91df97a

9 files changed

+4
-72
lines changed

src/app/pfapi/api/model-ctrl/meta-model-ctrl.ts

-12
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,6 @@ import { PFEventEmitter } from '../util/events';
1414
export const DEFAULT_META_MODEL: LocalMeta = {
1515
crossModelVersion: 1,
1616
revMap: {},
17-
modelVersions: {},
1817
lastUpdate: 0,
1918
metaRev: null,
2019
lastSyncedUpdate: null,
@@ -75,8 +74,6 @@ export class MetaModelCtrl {
7574

7675
const metaModel = this._getMetaModelOrThrow(modelId, modelCfg);
7776
const timestamp = Date.now();
78-
const isModelVersionChange =
79-
metaModel.modelVersions[modelId] !== modelCfg.modelVersion;
8077

8178
this.save(
8279
{
@@ -91,15 +88,6 @@ export class MetaModelCtrl {
9188
[modelId]: timestamp.toString(),
9289
},
9390
}),
94-
95-
...(isModelVersionChange
96-
? {
97-
modelVersions: {
98-
...metaModel.modelVersions,
99-
[modelId]: modelCfg.modelVersion,
100-
},
101-
}
102-
: {}),
10391
},
10492
isIgnoreDBLock,
10593
);

src/app/pfapi/api/pfapi.model.ts

+1-12
Original file line numberDiff line numberDiff line change
@@ -22,13 +22,8 @@ type SerializableArray = Array<Serializable>;
2222
export type ModelBase = SerializableObject | SerializableArray | unknown;
2323

2424
export interface ModelCfg<T extends ModelBase> {
25-
modelVersion: number;
25+
// modelVersion: number;
2626
isLocalOnly?: boolean;
27-
// migrations?: {
28-
// [version: string]: (arg: T) => T;
29-
// };
30-
// TODO fix typing
31-
// migrations?: Record<string, (arg: T) => T>;
3227
isAlwaysReApplyOldMigrations?: boolean;
3328
debounceDbWrite?: number;
3429
isMainFileModel?: boolean;
@@ -84,15 +79,10 @@ export interface RevMap {
8479
[modelOrFileGroupId: string]: string;
8580
}
8681

87-
export interface ModelVersionMap {
88-
[modelId: string]: number;
89-
}
90-
9182
export interface MetaFileBase {
9283
lastUpdate: number;
9384
revMap: RevMap;
9485
crossModelVersion: number;
95-
modelVersions: ModelVersionMap;
9686
}
9787

9888
export interface RemoteMeta extends MetaFileBase {
@@ -116,7 +106,6 @@ export interface CompleteBackup<T extends ModelCfgs> {
116106
timestamp: number;
117107
lastUpdate: number;
118108
crossModelVersion: number;
119-
modelVersions: ModelVersionMap;
120109
data: AllModelData<T>;
121110
}
122111

src/app/pfapi/api/pfapi.ts

-5
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,6 @@ import { SyncProviderPrivateCfgStore } from './sync/sync-provider-private-cfg-st
2424
import {
2525
BackupImportFailedError,
2626
DataValidationFailedError,
27-
InvalidModelCfgError,
2827
InvalidSyncProviderError,
2928
ModelIdWithoutCtrlError,
3029
NoRepairFunctionProvidedError,
@@ -254,7 +253,6 @@ export class Pfapi<const MD extends ModelCfgs> {
254253
return {
255254
data: d,
256255
crossModelVersion: meta.crossModelVersion,
257-
modelVersions: meta.modelVersions,
258256
lastUpdate: meta.lastUpdate,
259257
timestamp: Date.now(),
260258
};
@@ -397,9 +395,6 @@ export class Pfapi<const MD extends ModelCfgs> {
397395
const result = {} as Record<string, ModelCtrl<ModelBase>>;
398396
// TODO validate modelCfgs
399397
for (const [id, item] of Object.entries(modelCfgs)) {
400-
if (!item.modelVersion) {
401-
throw new InvalidModelCfgError({ modelCfgs });
402-
}
403398
result[id] = new ModelCtrl<ExtractModelCfgType<typeof item>>(
404399
id,
405400
item,

src/app/pfapi/api/sync/model-sync.service.spec.ts

+1-5
Original file line numberDiff line numberDiff line change
@@ -34,14 +34,12 @@ describe('ModelSyncService', () => {
3434
mockModelControllers = {
3535
mainModel: {
3636
modelCfg: {
37-
modelVersion: 1,
3837
isMainFileModel: true,
3938
},
4039
save: jasmine.createSpy('save').and.returnValue(Promise.resolve()),
4140
},
4241
singleModel: {
4342
modelCfg: {
44-
modelVersion: 33,
4543
isMainFileModel: false,
4644
},
4745
save: jasmine.createSpy('save').and.returnValue(Promise.resolve()),
@@ -118,7 +116,7 @@ describe('ModelSyncService', () => {
118116
mockEncryptAndCompressCfg$.value,
119117
undefined,
120118
modelData,
121-
33, // single model version
119+
1,
122120
);
123121
expect(mockSyncProvider.uploadFile).toHaveBeenCalledWith(
124122
'singleModel',
@@ -234,7 +232,6 @@ describe('ModelSyncService', () => {
234232
const remoteMeta = {
235233
revMap: {},
236234
lastUpdate: 1000,
237-
modelVersions: {},
238235
crossModelVersion: 1,
239236
mainModelData: {
240237
mainModel: { data: 'meta-main-model-data' },
@@ -256,7 +253,6 @@ describe('ModelSyncService', () => {
256253
const remoteMeta = {
257254
revMap: {},
258255
lastUpdate: 1000,
259-
modelVersions: {},
260256
crossModelVersion: 1,
261257
mainModelData: {},
262258
};

src/app/pfapi/api/sync/model-sync.service.ts

+2-1
Original file line numberDiff line numberDiff line change
@@ -340,6 +340,7 @@ export class ModelSyncService<MD extends ModelCfgs> {
340340
* @private
341341
*/
342342
private _getModelVersion<T extends keyof MD>(modelId: T): number {
343-
return this.m[modelId].modelCfg.modelVersion;
343+
// return this.m[modelId].modelCfg.modelVersion;
344+
return 1;
344345
}
345346
}

src/app/pfapi/api/sync/sync.service.spec.ts

-8
Original file line numberDiff line numberDiff line change
@@ -33,15 +33,13 @@ describe('SyncService', () => {
3333
lastUpdate: 1000,
3434
lastSyncedUpdate: 1000,
3535
metaRev: 'meta-rev-1',
36-
modelVersions: {},
3736
crossModelVersion: 1,
3837
...overrides,
3938
});
4039

4140
const createDefaultRemoteMeta = (overrides = {}): RemoteMeta => ({
4241
revMap: {},
4342
lastUpdate: 1000,
44-
modelVersions: {},
4543
crossModelVersion: 1,
4644
mainModelData: {},
4745
...overrides,
@@ -367,7 +365,6 @@ describe('SyncService', () => {
367365
lastUpdate: 12345,
368366
lastSyncedUpdate: 1000,
369367
metaRev: 'meta-rev-1',
370-
modelVersions: {},
371368
crossModelVersion: 1,
372369
});
373370

@@ -380,7 +377,6 @@ describe('SyncService', () => {
380377
},
381378
lastUpdate: 1000,
382379
crossModelVersion: 1,
383-
modelVersions: {},
384380
mainModelData: { mainModel1: { id: 'mainModel1-data-id' } },
385381
},
386382
null,
@@ -428,7 +424,6 @@ describe('SyncService', () => {
428424
expect(mockModelSyncService.remove).toHaveBeenCalledWith('singleModel2');
429425
expect(mockMetaSyncService.saveLocal).toHaveBeenCalledWith({
430426
lastUpdate: 2000,
431-
modelVersions: {},
432427
crossModelVersion: 1,
433428
lastSyncedUpdate: 2000,
434429
revMap: { singleModel1: 'new-single-model-rev' },
@@ -507,7 +502,6 @@ describe('SyncService', () => {
507502
expect(mockMetaSyncService.saveLocal).toHaveBeenCalledWith({
508503
lastUpdate: 2000,
509504
crossModelVersion: 1,
510-
modelVersions: {},
511505
revMap: {},
512506
lastSyncedUpdate: 2000,
513507
metaRev: 'expected-new-meta-rev',
@@ -654,7 +648,6 @@ describe('SyncService', () => {
654648
lastUpdate: 2000,
655649
lastSyncedUpdate: 1000,
656650
revMap: { singleModel1: 'local-rev' },
657-
modelVersions: { singleModel1: 1 },
658651
}),
659652
),
660653
);
@@ -664,7 +657,6 @@ describe('SyncService', () => {
664657
remoteMeta: createDefaultRemoteMeta({
665658
revMap: { singleModel1: 'remote-rev' },
666659
lastUpdate: 1500,
667-
modelVersions: { singleModel1: 1 },
668660
mainModelData: { mainModel1: { id: 'remote-data' } },
669661
}),
670662
remoteMetaRev: 'meta-rev-2',

src/app/pfapi/api/sync/sync.service.ts

-7
Original file line numberDiff line numberDiff line change
@@ -198,7 +198,6 @@ export class SyncService<const MD extends ModelCfgs> {
198198
try {
199199
return await this.uploadToRemote(
200200
{
201-
modelVersions: local.modelVersions,
202201
crossModelVersion: local.crossModelVersion,
203202
lastUpdate: local.lastUpdate,
204203
revMap: {},
@@ -234,7 +233,6 @@ export class SyncService<const MD extends ModelCfgs> {
234233
const fakeLocal: LocalMeta = {
235234
// We still need local modelVersions here as they contain latest model versions for migrations
236235
crossModelVersion: local.crossModelVersion,
237-
modelVersions: local.modelVersions,
238236
lastUpdate: 1,
239237
lastSyncedUpdate: null,
240238
metaRev: null,
@@ -297,7 +295,6 @@ export class SyncService<const MD extends ModelCfgs> {
297295
// shared
298296
lastUpdate: remote.lastUpdate,
299297
crossModelVersion: remote.crossModelVersion,
300-
modelVersions: remote.modelVersions,
301298
revMap: remote.revMap,
302299
// local meta
303300
lastSyncedUpdate: remote.lastUpdate,
@@ -389,7 +386,6 @@ export class SyncService<const MD extends ModelCfgs> {
389386
...local.revMap,
390387
...realRemoteRevMap,
391388
}),
392-
modelVersions: remote.modelVersions,
393389
crossModelVersion: remote.crossModelVersion,
394390
});
395391
}
@@ -431,7 +427,6 @@ export class SyncService<const MD extends ModelCfgs> {
431427
revMap: local.revMap,
432428
lastUpdate: local.lastUpdate,
433429
crossModelVersion: local.crossModelVersion,
434-
modelVersions: local.modelVersions,
435430
mainModelData,
436431
...(syncProvider.isLimitedToSingleFileSync ? { isFullData: true } : {}),
437432
},
@@ -508,7 +503,6 @@ export class SyncService<const MD extends ModelCfgs> {
508503
revMap: validatedRevMap,
509504
lastUpdate: local.lastUpdate,
510505
crossModelVersion: local.crossModelVersion,
511-
modelVersions: local.modelVersions,
512506
mainModelData:
513507
await this._modelSyncService.getMainFileModelDataForUpload(completeData),
514508
});
@@ -517,7 +511,6 @@ export class SyncService<const MD extends ModelCfgs> {
517511
await this._metaFileSyncService.saveLocal({
518512
// leave as is basically
519513
lastUpdate: local.lastUpdate,
520-
modelVersions: local.modelVersions,
521514
crossModelVersion: local.crossModelVersion,
522515

523516
// actual updates

src/app/pfapi/pfapi-config.ts

-21
Original file line numberDiff line numberDiff line change
@@ -83,48 +83,39 @@ export type PfapiAllModelCfg = {
8383
};
8484
export type AppDataCompleteNew = AllModelData<PfapiAllModelCfg>;
8585

86-
const TASK_MODEL_VERSION = 2 as const;
87-
8886
export const PFAPI_MODEL_CFGS: PfapiAllModelCfg = {
8987
task: {
90-
modelVersion: TASK_MODEL_VERSION,
9188
defaultData: initialTaskState,
9289
isMainFileModel: true,
9390
validate: appDataValidators.task,
9491
},
9592
timeTracking: {
96-
modelVersion: TASK_MODEL_VERSION,
9793
defaultData: initialTimeTrackingState,
9894
isMainFileModel: true,
9995
validate: appDataValidators.timeTracking,
10096
},
10197

10298
project: {
103-
modelVersion: 1.2,
10499
defaultData: initialProjectState,
105100
isMainFileModel: true,
106101
validate: appDataValidators.project,
107102
},
108103
tag: {
109-
modelVersion: 1,
110104
defaultData: initialTagState,
111105
isMainFileModel: true,
112106
validate: appDataValidators.tag,
113107
},
114108
simpleCounter: {
115-
modelVersion: 1,
116109
defaultData: initialSimpleCounterState,
117110
isMainFileModel: true,
118111
validate: appDataValidators.simpleCounter,
119112
},
120113
note: {
121-
modelVersion: 1,
122114
defaultData: initialNoteState,
123115
isMainFileModel: true,
124116
validate: appDataValidators.note,
125117
},
126118
taskRepeatCfg: {
127-
modelVersion: 1,
128119
defaultData: initialTaskRepeatCfgState,
129120
// TODO check if still necessary
130121
// needs to be due to last creation data being saved to model
@@ -133,56 +124,47 @@ export const PFAPI_MODEL_CFGS: PfapiAllModelCfg = {
133124
},
134125

135126
reminders: {
136-
modelVersion: 1,
137127
defaultData: [],
138128
isMainFileModel: true,
139129
validate: appDataValidators.reminders,
140130
},
141131
planner: {
142-
modelVersion: 1,
143132
defaultData: plannerInitialState,
144133
isMainFileModel: true,
145134
validate: appDataValidators.planner,
146135
},
147136
boards: {
148-
modelVersion: 1,
149137
defaultData: initialBoardsState,
150138
isMainFileModel: true,
151139
validate: appDataValidators.boards,
152140
},
153141

154142
//-------------------------------
155143
globalConfig: {
156-
modelVersion: 1,
157144
defaultData: DEFAULT_GLOBAL_CONFIG,
158145
validate: appDataValidators.globalConfig,
159146
},
160147

161148
issueProvider: {
162-
modelVersion: 1,
163149
defaultData: issueProviderInitialState,
164150
validate: appDataValidators.issueProvider,
165151
},
166152

167153
// Metric models
168154
metric: {
169-
modelVersion: 1,
170155
defaultData: initialMetricState,
171156
validate: appDataValidators.metric,
172157
},
173158
improvement: {
174-
modelVersion: 1,
175159
defaultData: initialImprovementState,
176160
validate: appDataValidators.improvement,
177161
},
178162
obstruction: {
179-
modelVersion: 1,
180163
defaultData: initialObstructionState,
181164
validate: appDataValidators.obstruction,
182165
},
183166

184167
archiveYoung: {
185-
modelVersion: TASK_MODEL_VERSION,
186168
defaultData: {
187169
task: { ids: [], entities: {} },
188170
timeTracking: initialTimeTrackingState,
@@ -191,7 +173,6 @@ export const PFAPI_MODEL_CFGS: PfapiAllModelCfg = {
191173
validate: appDataValidators.archiveYoung,
192174
},
193175
archiveOld: {
194-
modelVersion: TASK_MODEL_VERSION,
195176
defaultData: {
196177
task: { ids: [], entities: {} },
197178
timeTracking: initialTimeTrackingState,
@@ -211,8 +192,6 @@ export const PFAPI_SYNC_PROVIDERS = [
211192
new Webdav(environment.production ? undefined : `/DEV`),
212193
...(IS_ELECTRON ? [fileSyncElectron] : []),
213194
...(IS_ANDROID_WEB_VIEW ? [new LocalFileSyncAndroid()] : []),
214-
// TODO android
215-
// ...(IS_ELECTRON ? [fileSyncElectron] : []),
216195
];
217196

218197
export const PFAPI_CFG: PfapiBaseCfg<PfapiAllModelCfg> = {

src/app/pfapi/pfapi.service.ts

-1
Original file line numberDiff line numberDiff line change
@@ -133,7 +133,6 @@ export class PfapiService {
133133
{
134134
data,
135135
lastUpdate: 1,
136-
modelVersions: {},
137136
timestamp: 1,
138137
// NOTE since this is legacy data, we start at 0
139138
crossModelVersion: 0,

0 commit comments

Comments
 (0)