@pwrdrvr/microapps-datalib 0.0.28 → 0.0.29

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -10,17 +10,37 @@ export interface IVersionRecord {
10
10
  Status: VersionStatus;
11
11
  DefaultFile: string;
12
12
  IntegrationID: string;
13
+ RouteIDAppVersion: string;
14
+ RouteIDAppVersionSplat: string;
13
15
  }
14
16
  export declare type IVersionRecordNoKeysLoose = Partial<Omit<IVersionRecord, 'PK' | 'SK' | 'AppName' | 'SemVer'>> & Pick<IVersionRecord, 'AppName' | 'SemVer'>;
15
17
  export declare class Version implements IVersionRecord {
18
+ /**
19
+ * Load records for all the versions of an app
20
+ * @param opts
21
+ * @returns
22
+ */
16
23
  static LoadVersions(opts: {
17
24
  dbManager: DBManager;
18
25
  key: Pick<IVersionRecord, 'AppName'>;
19
26
  }): Promise<Version[]>;
27
+ /**
28
+ * Load record for a single version of an app
29
+ */
20
30
  static LoadVersion(opts: {
21
31
  dbManager: DBManager;
22
32
  key: Pick<IVersionRecord, 'AppName' | 'SemVer'>;
23
33
  }): Promise<Version>;
34
+ /**
35
+ * Delete record for a single version of an app
36
+ */
37
+ static DeleteVersion(opts: {
38
+ dbManager: DBManager;
39
+ key: Pick<IVersionRecord, 'AppName' | 'SemVer'>;
40
+ }): Promise<void>;
41
+ /**
42
+ * Get PK (primary key / hash key) field value for current KeyBy
43
+ */
24
44
  get PK(): string;
25
45
  private _keyBy;
26
46
  private _appName;
@@ -29,8 +49,14 @@ export declare class Version implements IVersionRecord {
29
49
  private _status;
30
50
  private _defaultFile;
31
51
  private _integrationID;
52
+ private _routeIDAppVersion;
53
+ private _routeIDAppVersionSplat;
32
54
  constructor(init?: Partial<IVersionRecordNoKeysLoose>);
33
55
  get DbStruct(): IVersionRecord;
56
+ /**
57
+ * Save this record to DynamoDB
58
+ * @param dbManager
59
+ */
34
60
  Save(dbManager: DBManager): Promise<void>;
35
61
  get SK(): string;
36
62
  get AppName(): string;
@@ -45,5 +71,9 @@ export declare class Version implements IVersionRecord {
45
71
  set DefaultFile(value: string);
46
72
  get IntegrationID(): string;
47
73
  set IntegrationID(value: string);
74
+ get RouteIDAppVersion(): string;
75
+ set RouteIDAppVersion(value: string);
76
+ get RouteIDAppVersionSplat(): string;
77
+ set RouteIDAppVersionSplat(value: string);
48
78
  }
49
79
  //# sourceMappingURL=version.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"version.d.ts","sourceRoot":"","sources":["../../src/models/version.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,IAAI,CAAC;AAM/B,oBAAY,aAAa,GACrB,SAAS,GACT,eAAe,GACf,cAAc,GACd,YAAY,GACZ,QAAQ,GACR,UAAU,CAAC;AAEf,oBAAY,QAAQ,GAAG,QAAQ,GAAG,QAAQ,CAAC;AAE3C,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,MAAM,CAAC;IACX,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,QAAQ,GAAG,QAAQ,CAAC;IAC1B,MAAM,EAAE,aAAa,CAAC;IACtB,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,MAAM,CAAC;CACvB;AAED,oBAAY,yBAAyB,GAAG,OAAO,CAC7C,IAAI,CAAC,cAAc,EAAE,IAAI,GAAG,IAAI,GAAG,SAAS,GAAG,QAAQ,CAAC,CACzD,GACC,IAAI,CAAC,cAAc,EAAE,SAAS,GAAG,QAAQ,CAAC,CAAC;AAE7C,qBAAa,OAAQ,YAAW,cAAc;WACxB,YAAY,CAAC,IAAI,EAAE;QACrC,SAAS,EAAE,SAAS,CAAC;QACrB,GAAG,EAAE,IAAI,CAAC,cAAc,EAAE,SAAS,CAAC,CAAC;KACtC,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;WAsBF,WAAW,CAAC,IAAI,EAAE;QACpC,SAAS,EAAE,SAAS,CAAC;QACrB,GAAG,EAAE,IAAI,CAAC,cAAc,EAAE,SAAS,GAAG,QAAQ,CAAC,CAAC;KACjD,GAAG,OAAO,CAAC,OAAO,CAAC;IAcpB,IAAW,EAAE,IAAI,MAAM,CAOtB;IAED,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,QAAQ,CAAqB;IACrC,OAAO,CAAC,OAAO,CAAqB;IACpC,OAAO,CAAC,KAAK,CAAuB;IACpC,OAAO,CAAC,OAAO,CAAgB;IAC/B,OAAO,CAAC,YAAY,CAAS;IAC7B,OAAO,CAAC,cAAc,CAAS;gBAEZ,IAAI,CAAC,EAAE,OAAO,CAAC,yBAAyB,CAAC;IAU5D,IAAW,QAAQ,IAAI,cAAc,CAWpC;IAEY,IAAI,CAAC,SAAS,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC;IAWtD,IAAW,EAAE,IAAI,MAAM,CAOtB;IAED,IAAW,OAAO,IAAI,MAAM,CAE3B;IACD,IAAW,OAAO,CAAC,KAAK,EAAE,MAAM,EAE/B;IAED,IAAW,MAAM,IAAI,MAAM,CAE1B;IACD,IAAW,MAAM,CAAC,KAAK,EAAE,MAAM,EAE9B;IAED,IAAW,IAAI,IAAI,QAAQ,CAE1B;IACD,IAAW,IAAI,CAAC,KAAK,EAAE,QAAQ,EAE9B;IAED,IAAW,MAAM,IAAI,aAAa,CAEjC;IACD,IAAW,MAAM,CAAC,KAAK,EAAE,aAAa,EAErC;IAED,IAAW,WAAW,IAAI,MAAM,CAE/B;IACD,IAAW,WAAW,CAAC,KAAK,EAAE,MAAM,EAEnC;IAED,IAAW,aAAa,IAAI,MAAM,CAEjC;IACD,IAAW,aAAa,CAAC,KAAK,EAAE,MAAM,EAErC;CACF"}
1
+ {"version":3,"file":"version.d.ts","sourceRoot":"","sources":["../../src/models/version.ts"],"names":[],"mappings":"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"}
@@ -12,9 +12,16 @@ class Version {
12
12
  this._status = 'pending';
13
13
  this._defaultFile = '';
14
14
  this._integrationID = '';
15
+ this._routeIDAppVersion = '';
16
+ this._routeIDAppVersionSplat = '';
15
17
  // Save any passed in values over the defaults
16
18
  Object.assign(this, init);
17
19
  }
20
+ /**
21
+ * Load records for all the versions of an app
22
+ * @param opts
23
+ * @returns
24
+ */
18
25
  static async LoadVersions(opts) {
19
26
  const { dbManager, key } = opts;
20
27
  const { Items } = await dbManager.ddbDocClient.query({
@@ -34,6 +41,9 @@ class Version {
34
41
  }
35
42
  return records;
36
43
  }
44
+ /**
45
+ * Load record for a single version of an app
46
+ */
37
47
  static async LoadVersion(opts) {
38
48
  const { dbManager, key } = opts;
39
49
  const { Item } = await dbManager.ddbDocClient.get({
@@ -46,6 +56,22 @@ class Version {
46
56
  const record = class_transformer_1.plainToClass(Version, Item);
47
57
  return record;
48
58
  }
59
+ /**
60
+ * Delete record for a single version of an app
61
+ */
62
+ static async DeleteVersion(opts) {
63
+ const { dbManager, key } = opts;
64
+ await dbManager.ddbDocClient.delete({
65
+ TableName: dbManager.tableName,
66
+ Key: {
67
+ PK: `appName#${key.AppName}`.toLowerCase(),
68
+ SK: `version#${key.SemVer}`.toLowerCase(),
69
+ },
70
+ });
71
+ }
72
+ /**
73
+ * Get PK (primary key / hash key) field value for current KeyBy
74
+ */
49
75
  get PK() {
50
76
  switch (this._keyBy) {
51
77
  case SaveBy.AppName:
@@ -64,8 +90,14 @@ class Version {
64
90
  Status: this.Status,
65
91
  DefaultFile: this.DefaultFile,
66
92
  IntegrationID: this.IntegrationID,
93
+ RouteIDAppVersion: this.RouteIDAppVersion,
94
+ RouteIDAppVersionSplat: this.RouteIDAppVersionSplat,
67
95
  };
68
96
  }
97
+ /**
98
+ * Save this record to DynamoDB
99
+ * @param dbManager
100
+ */
69
101
  async Save(dbManager) {
70
102
  // TODO: Validate that all the fields needed are present
71
103
  // Save under specific AppName key
@@ -119,6 +151,18 @@ class Version {
119
151
  set IntegrationID(value) {
120
152
  this._integrationID = value;
121
153
  }
154
+ get RouteIDAppVersion() {
155
+ return this._routeIDAppVersion;
156
+ }
157
+ set RouteIDAppVersion(value) {
158
+ this._routeIDAppVersion = value;
159
+ }
160
+ get RouteIDAppVersionSplat() {
161
+ return this._routeIDAppVersionSplat;
162
+ }
163
+ set RouteIDAppVersionSplat(value) {
164
+ this._routeIDAppVersionSplat = value;
165
+ }
122
166
  }
123
167
  exports.Version = Version;
124
168
  //# sourceMappingURL=version.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"version.js","sourceRoot":"","sources":["../../src/models/version.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"version.js","sourceRoot":"","sources":["../../src/models/version.ts"],"names":[],"mappings":";;;AAAA,yDAAiD;AAGjD,IAAK,MAEJ;AAFD,WAAK,MAAM;IACT,yCAAO,CAAA;AACT,CAAC,EAFI,MAAM,KAAN,MAAM,QAEV;AA8BD,MAAa,OAAO;IA2FlB,YAAmB,IAAyC;QAC1D,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC;QAC7B,IAAI,CAAC,OAAO,GAAG,SAAS,CAAC;QACzB,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;QACvB,IAAI,CAAC,cAAc,GAAG,EAAE,CAAC;QACzB,IAAI,CAAC,kBAAkB,GAAG,EAAE,CAAC;QAC7B,IAAI,CAAC,uBAAuB,GAAG,EAAE,CAAC;QAElC,8CAA8C;QAC9C,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IAC5B,CAAC;IApGD;;;;OAIG;IACI,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC,IAGhC;QACC,MAAM,EAAE,SAAS,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;QAEhC,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,SAAS,CAAC,YAAY,CAAC,KAAK,CAAC;YACnD,SAAS,EAAE,SAAS,CAAC,SAAS;YAC9B,sBAAsB,EAAE,yCAAyC;YACjE,yBAAyB,EAAE;gBACzB,QAAQ,EAAE,WAAW,GAAG,CAAC,OAAO,EAAE,CAAC,WAAW,EAAE;gBAChD,QAAQ,EAAE,SAAS;aACpB;SACF,CAAC,CAAC;QACH,MAAM,OAAO,GAAG,EAAe,CAAC;QAChC,IAAI,KAAK,KAAK,SAAS,EAAE;YACvB,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE;gBACxB,MAAM,MAAM,GAAG,gCAAY,CAAmB,OAAO,EAAE,IAAI,CAAC,CAAC;gBAC7D,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;aACtB;SACF;QAED,OAAO,OAAO,CAAC;IACjB,CAAC;IAED;;OAEG;IACI,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,IAG/B;QACC,MAAM,EAAE,SAAS,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;QAEhC,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,SAAS,CAAC,YAAY,CAAC,GAAG,CAAC;YAChD,SAAS,EAAE,SAAS,CAAC,SAAS;YAC9B,GAAG,EAAE;gBACH,EAAE,EAAE,WAAW,GAAG,CAAC,OAAO,EAAE,CAAC,WAAW,EAAE;gBAC1C,EAAE,EAAE,WAAW,GAAG,CAAC,MAAM,EAAE,CAAC,WAAW,EAAE;aAC1C;SACF,CAAC,CAAC;QACH,MAAM,MAAM,GAAG,gCAAY,CAAmB,OAAO,EAAE,IAAI,CAAC,CAAC;QAC7D,OAAO,MAAM,CAAC;IAChB,CAAC;IAED;;OAEG;IACI,MAAM,CAAC,KAAK,CAAC,aAAa,CAAC,IAGjC;QACC,MAAM,EAAE,SAAS,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;QAEhC,MAAM,SAAS,CAAC,YAAY,CAAC,MAAM,CAAC;YAClC,SAAS,EAAE,SAAS,CAAC,SAAS;YAC9B,GAAG,EAAE;gBACH,EAAE,EAAE,WAAW,GAAG,CAAC,OAAO,EAAE,CAAC,WAAW,EAAE;gBAC1C,EAAE,EAAE,WAAW,GAAG,CAAC,MAAM,EAAE,CAAC,WAAW,EAAE;aAC1C;SACF,CAAC,CAAC;IACL,CAAC;IAED;;OAEG;IACH,IAAW,EAAE;QACX,QAAQ,IAAI,CAAC,MAAM,EAAE;YACnB,KAAK,MAAM,CAAC,OAAO;gBACjB,OAAO,WAAW,IAAI,CAAC,OAAO,EAAE,CAAC,WAAW,EAAE,CAAC;YACjD;gBACE,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC;SAC7C;IACH,CAAC;IAwBD,IAAW,QAAQ;QACjB,OAAO;YACL,EAAE,EAAE,IAAI,CAAC,EAAE;YACX,EAAE,EAAE,IAAI,CAAC,EAAE;YACX,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,aAAa,EAAE,IAAI,CAAC,aAAa;YACjC,iBAAiB,EAAE,IAAI,CAAC,iBAAiB;YACzC,sBAAsB,EAAE,IAAI,CAAC,sBAAsB;SACpD,CAAC;IACJ,CAAC;IAED;;;OAGG;IACI,KAAK,CAAC,IAAI,CAAC,SAAoB;QACpC,wDAAwD;QAExD,kCAAkC;QAClC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC;QAC7B,MAAM,SAAS,CAAC,YAAY,CAAC,GAAG,CAAC;YAC/B,SAAS,EAAE,SAAS,CAAC,SAAS;YAC9B,IAAI,EAAE,IAAI,CAAC,QAAQ;SACpB,CAAC,CAAC;IACL,CAAC;IAED,IAAW,EAAE;QACX,QAAQ,IAAI,CAAC,MAAM,EAAE;YACnB,KAAK,MAAM,CAAC,OAAO;gBACjB,OAAO,WAAW,IAAI,CAAC,MAAM,EAAE,CAAC,WAAW,EAAE,CAAC;YAChD;gBACE,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC;SAC7C;IACH,CAAC;IAED,IAAW,OAAO;QAChB,OAAO,IAAI,CAAC,QAAkB,CAAC;IACjC,CAAC;IACD,IAAW,OAAO,CAAC,KAAa;QAC9B,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC;IACtC,CAAC;IAED,IAAW,MAAM;QACf,OAAO,IAAI,CAAC,OAAiB,CAAC;IAChC,CAAC;IACD,IAAW,MAAM,CAAC,KAAa;QAC7B,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;IACvB,CAAC;IAED,IAAW,IAAI;QACb,OAAO,IAAI,CAAC,KAAiB,CAAC;IAChC,CAAC;IACD,IAAW,IAAI,CAAC,KAAe;QAC7B,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACrB,CAAC;IAED,IAAW,MAAM;QACf,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;IACD,IAAW,MAAM,CAAC,KAAoB;QACpC,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;IACvB,CAAC;IAED,IAAW,WAAW;QACpB,OAAO,IAAI,CAAC,YAAsB,CAAC;IACrC,CAAC;IACD,IAAW,WAAW,CAAC,KAAa;QAClC,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;IAC5B,CAAC;IAED,IAAW,aAAa;QACtB,OAAO,IAAI,CAAC,cAAwB,CAAC;IACvC,CAAC;IACD,IAAW,aAAa,CAAC,KAAa;QACpC,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;IAC9B,CAAC;IAED,IAAW,iBAAiB;QAC1B,OAAO,IAAI,CAAC,kBAA4B,CAAC;IAC3C,CAAC;IACD,IAAW,iBAAiB,CAAC,KAAa;QACxC,IAAI,CAAC,kBAAkB,GAAG,KAAK,CAAC;IAClC,CAAC;IAED,IAAW,sBAAsB;QAC/B,OAAO,IAAI,CAAC,uBAAiC,CAAC;IAChD,CAAC;IACD,IAAW,sBAAsB,CAAC,KAAa;QAC7C,IAAI,CAAC,uBAAuB,GAAG,KAAK,CAAC;IACvC,CAAC;CACF;AArMD,0BAqMC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pwrdrvr/microapps-datalib",
3
- "version": "0.0.28",
3
+ "version": "0.0.29",
4
4
  "description": "Data library for the microapps framework",
5
5
  "types": "dist/index.d.ts",
6
6
  "main": "dist/index.js",
@@ -32,6 +32,8 @@ describe('version records', () => {
32
32
  version.Type = 'lambda';
33
33
  version.DefaultFile = 'index.html';
34
34
  version.IntegrationID = 'abcd';
35
+ version.RouteIDAppVersion = '123';
36
+ version.RouteIDAppVersionSplat = '456';
35
37
 
36
38
  await version.Save(dbManager);
37
39
 
@@ -48,6 +50,8 @@ describe('version records', () => {
48
50
  expect(Item?.Type).toBe('lambda');
49
51
  expect(Item?.DefaultFile).toBe('index.html');
50
52
  expect(Item?.IntegrationID).toBe('abcd');
53
+ expect(Item?.RouteIDAppVersion).toEqual('123');
54
+ expect(Item?.RouteIDAppVersionSplat).toEqual('456');
51
55
  });
52
56
 
53
57
  it('load 1 version should load 1 version', async () => {
@@ -99,8 +103,10 @@ describe('version records', () => {
99
103
  version.SemVer = '2.2.3-Beta5';
100
104
  version.Status = 'pending';
101
105
  version.Type = 'lambda';
102
- version.DefaultFile = 'index.html';
103
- version.IntegrationID = 'abcd';
106
+ version.DefaultFile = 'index1.html';
107
+ version.IntegrationID = 'abcd1';
108
+ version.RouteIDAppVersion = 'routeAppVersion1';
109
+ version.RouteIDAppVersionSplat = 'routeAppVersionSplat1';
104
110
 
105
111
  await version.Save(dbManager);
106
112
 
@@ -109,8 +115,10 @@ describe('version records', () => {
109
115
  version.SemVer = '2.2.3-Beta6';
110
116
  version.Status = 'pending';
111
117
  version.Type = 'lambda';
112
- version.DefaultFile = 'index.html';
113
- version.IntegrationID = 'abcd';
118
+ version.DefaultFile = 'index2.html';
119
+ version.IntegrationID = 'abcd2';
120
+ version.RouteIDAppVersion = 'routeAppVersion2';
121
+ version.RouteIDAppVersionSplat = 'routeAppVersionSplat2';
114
122
 
115
123
  await version.Save(dbManager);
116
124
 
@@ -121,8 +129,14 @@ describe('version records', () => {
121
129
  expect(versions[0].AppName).toBe('frog');
122
130
  expect(versions[0].SK).toBe('version#2.2.3-beta5');
123
131
  expect(versions[0].SemVer).toBe('2.2.3-Beta5');
132
+ expect(versions[0].DefaultFile).toEqual('index1.html');
133
+ expect(versions[0].RouteIDAppVersion).toEqual('routeAppVersion1');
134
+ expect(versions[0].RouteIDAppVersionSplat).toEqual('routeAppVersionSplat1');
124
135
  expect(versions[1].AppName).toBe('frog');
125
136
  expect(versions[1].SK).toBe('version#2.2.3-beta6');
126
137
  expect(versions[1].SemVer).toBe('2.2.3-Beta6');
138
+ expect(versions[1].DefaultFile).toEqual('index2.html');
139
+ expect(versions[1].RouteIDAppVersion).toEqual('routeAppVersion2');
140
+ expect(versions[1].RouteIDAppVersionSplat).toEqual('routeAppVersionSplat2');
127
141
  });
128
142
  });
@@ -24,6 +24,8 @@ export interface IVersionRecord {
24
24
  Status: VersionStatus;
25
25
  DefaultFile: string;
26
26
  IntegrationID: string;
27
+ RouteIDAppVersion: string;
28
+ RouteIDAppVersionSplat: string;
27
29
  }
28
30
 
29
31
  export type IVersionRecordNoKeysLoose = Partial<
@@ -32,6 +34,11 @@ export type IVersionRecordNoKeysLoose = Partial<
32
34
  Pick<IVersionRecord, 'AppName' | 'SemVer'>;
33
35
 
34
36
  export class Version implements IVersionRecord {
37
+ /**
38
+ * Load records for all the versions of an app
39
+ * @param opts
40
+ * @returns
41
+ */
35
42
  public static async LoadVersions(opts: {
36
43
  dbManager: DBManager;
37
44
  key: Pick<IVersionRecord, 'AppName'>;
@@ -57,6 +64,9 @@ export class Version implements IVersionRecord {
57
64
  return records;
58
65
  }
59
66
 
67
+ /**
68
+ * Load record for a single version of an app
69
+ */
60
70
  public static async LoadVersion(opts: {
61
71
  dbManager: DBManager;
62
72
  key: Pick<IVersionRecord, 'AppName' | 'SemVer'>;
@@ -74,6 +84,27 @@ export class Version implements IVersionRecord {
74
84
  return record;
75
85
  }
76
86
 
87
+ /**
88
+ * Delete record for a single version of an app
89
+ */
90
+ public static async DeleteVersion(opts: {
91
+ dbManager: DBManager;
92
+ key: Pick<IVersionRecord, 'AppName' | 'SemVer'>;
93
+ }): Promise<void> {
94
+ const { dbManager, key } = opts;
95
+
96
+ await dbManager.ddbDocClient.delete({
97
+ TableName: dbManager.tableName,
98
+ Key: {
99
+ PK: `appName#${key.AppName}`.toLowerCase(),
100
+ SK: `version#${key.SemVer}`.toLowerCase(),
101
+ },
102
+ });
103
+ }
104
+
105
+ /**
106
+ * Get PK (primary key / hash key) field value for current KeyBy
107
+ */
77
108
  public get PK(): string {
78
109
  switch (this._keyBy) {
79
110
  case SaveBy.AppName:
@@ -90,12 +121,16 @@ export class Version implements IVersionRecord {
90
121
  private _status: VersionStatus;
91
122
  private _defaultFile: string;
92
123
  private _integrationID: string;
124
+ private _routeIDAppVersion: string;
125
+ private _routeIDAppVersionSplat: string | undefined;
93
126
 
94
127
  public constructor(init?: Partial<IVersionRecordNoKeysLoose>) {
95
128
  this._keyBy = SaveBy.AppName;
96
129
  this._status = 'pending';
97
130
  this._defaultFile = '';
98
131
  this._integrationID = '';
132
+ this._routeIDAppVersion = '';
133
+ this._routeIDAppVersionSplat = '';
99
134
 
100
135
  // Save any passed in values over the defaults
101
136
  Object.assign(this, init);
@@ -111,9 +146,15 @@ export class Version implements IVersionRecord {
111
146
  Status: this.Status,
112
147
  DefaultFile: this.DefaultFile,
113
148
  IntegrationID: this.IntegrationID,
149
+ RouteIDAppVersion: this.RouteIDAppVersion,
150
+ RouteIDAppVersionSplat: this.RouteIDAppVersionSplat,
114
151
  };
115
152
  }
116
153
 
154
+ /**
155
+ * Save this record to DynamoDB
156
+ * @param dbManager
157
+ */
117
158
  public async Save(dbManager: DBManager): Promise<void> {
118
159
  // TODO: Validate that all the fields needed are present
119
160
 
@@ -175,4 +216,18 @@ export class Version implements IVersionRecord {
175
216
  public set IntegrationID(value: string) {
176
217
  this._integrationID = value;
177
218
  }
219
+
220
+ public get RouteIDAppVersion(): string {
221
+ return this._routeIDAppVersion as string;
222
+ }
223
+ public set RouteIDAppVersion(value: string) {
224
+ this._routeIDAppVersion = value;
225
+ }
226
+
227
+ public get RouteIDAppVersionSplat(): string {
228
+ return this._routeIDAppVersionSplat as string;
229
+ }
230
+ public set RouteIDAppVersionSplat(value: string) {
231
+ this._routeIDAppVersionSplat = value;
232
+ }
178
233
  }