homey-api 3.0.0-rc.5 → 3.0.0-rc.7

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.
@@ -4,8 +4,8 @@ const CapabilityV3 = require('../../HomeyAPIV3/ManagerDevices/Capability');
4
4
 
5
5
  class Capability extends CapabilityV3 {
6
6
 
7
- static transform(item) {
8
- item = super.transform(item);
7
+ static transformGet(item) {
8
+ item = super.transformGet(item);
9
9
 
10
10
  item.id = `${item.uri}:${item.id}`;
11
11
  item.ownerUri = item.uri;
@@ -4,8 +4,8 @@ const DeviceV3 = require('../../HomeyAPIV3/ManagerDevices/Device');
4
4
 
5
5
  class Device extends DeviceV3 {
6
6
 
7
- static transform(item) {
8
- item = super.transform(item);
7
+ static transformGet(item) {
8
+ item = super.transformGet(item);
9
9
 
10
10
  item.driverId = `${item.driverUri}:${item.driverId}`;
11
11
  delete item.driverUri;
@@ -4,8 +4,8 @@ const DriverV3 = require('../../HomeyAPIV3/ManagerDrivers/Driver');
4
4
 
5
5
  class Driver extends DriverV3 {
6
6
 
7
- static transform(item) {
8
- item = super.transform(item);
7
+ static transformGet(item) {
8
+ item = super.transformGet(item);
9
9
 
10
10
  item.ownerId = item.id;
11
11
  item.ownerUri = item.uri;
@@ -4,8 +4,8 @@ const PairSessionV3 = require('../../HomeyAPIV3/ManagerDrivers/PairSession');
4
4
 
5
5
  class PairSession extends PairSessionV3 {
6
6
 
7
- static transform(item) {
8
- item = super.transform(item);
7
+ static transformGet(item) {
8
+ item = super.transformGet(item);
9
9
 
10
10
  item.driverId = `${item.driverUri}:${item.driverId}`;
11
11
  item.ownerUri = item.driverUri;
@@ -4,7 +4,7 @@ const AdvancedFlowV3 = require('../../HomeyAPIV3/ManagerFlow/Flow');
4
4
 
5
5
  class AdvancedFlow extends AdvancedFlowV3 {
6
6
 
7
- static transform(item) {
7
+ static transformGet(item) {
8
8
  if (item.cards) {
9
9
  for (const card of Object.values(item.cards)) {
10
10
  card.id = `${card.ownerUri}:${card.id}`;
@@ -14,7 +14,7 @@ class AdvancedFlow extends AdvancedFlowV3 {
14
14
  return item;
15
15
  }
16
16
 
17
- static transformSave(item) {
17
+ static transformSet(item) {
18
18
  if (item.cards) {
19
19
  for (const card of Object.values(item.cards)) {
20
20
  card.ownerUri = card.id.split(':', 3).join(':');
@@ -4,8 +4,8 @@ const FlowV3 = require('../../HomeyAPIV3/ManagerFlow/Flow');
4
4
 
5
5
  class Flow extends FlowV3 {
6
6
 
7
- static transform(item) {
8
- item = super.transform(item);
7
+ static transformGet(item) {
8
+ item = super.transformGet(item);
9
9
 
10
10
  if (item.trigger) {
11
11
  item.trigger.id = `${item.trigger.uri}:${item.trigger.id}`;
@@ -29,7 +29,7 @@ class Flow extends FlowV3 {
29
29
  return item;
30
30
  }
31
31
 
32
- static transformSave(item) {
32
+ static transformSet(item) {
33
33
  if (item.trigger) {
34
34
  item.trigger.uri = item.trigger.id.split(':', 3).join(':');
35
35
  item.trigger.id = item.trigger.id.split(':').reverse()[0];
@@ -4,8 +4,8 @@ const FlowCardActionV3 = require('../../HomeyAPIV3/ManagerFlow/FlowCardAction');
4
4
 
5
5
  class FlowCardAction extends FlowCardActionV3 {
6
6
 
7
- static transform(item) {
8
- item = super.transform(item);
7
+ static transformGet(item) {
8
+ item = super.transformGet(item);
9
9
 
10
10
  item.id = `${item.uri}:${item.id}`;
11
11
  item.ownerUri = item.uri;
@@ -4,8 +4,8 @@ const FlowCardConditionV3 = require('../../HomeyAPIV3/ManagerFlow/FlowCardCondit
4
4
 
5
5
  class FlowCardCondition extends FlowCardConditionV3 {
6
6
 
7
- static transform(item) {
8
- item = super.transform(item);
7
+ static transformGet(item) {
8
+ item = super.transformGet(item);
9
9
 
10
10
  item.id = `${item.uri}:${item.id}`;
11
11
  item.ownerUri = item.uri;
@@ -4,8 +4,8 @@ const FlowCardTriggerV3 = require('../../HomeyAPIV3/ManagerFlow/FlowCardTrigger'
4
4
 
5
5
  class FlowCardTrigger extends FlowCardTriggerV3 {
6
6
 
7
- static transform(item) {
8
- item = super.transform(item);
7
+ static transformGet(item) {
8
+ item = super.transformGet(item);
9
9
 
10
10
  item.id = `${item.uri}:${item.id}`;
11
11
  item.ownerUri = item.uri;
@@ -23,7 +23,7 @@ class ManagerFlow extends Manager {
23
23
  ...props
24
24
  }) {
25
25
  return this.__super__.createFlow({
26
- flow: Flow.transformSave(flow),
26
+ flow: Flow.transformSet(flow),
27
27
  ...props,
28
28
  });
29
29
  }
@@ -33,7 +33,7 @@ class ManagerFlow extends Manager {
33
33
  ...props
34
34
  }) {
35
35
  return this.__super__.updateFlow({
36
- flow: Flow.transformSave(flow),
36
+ flow: Flow.transformSet(flow),
37
37
  ...props,
38
38
  });
39
39
  }
@@ -43,7 +43,7 @@ class ManagerFlow extends Manager {
43
43
  ...props
44
44
  }) {
45
45
  return this.__super__.createAdvancedFlow({
46
- advancedflow: AdvancedFlow.transformSave(advancedflow),
46
+ advancedflow: AdvancedFlow.transformSet(advancedflow),
47
47
  ...props,
48
48
  });
49
49
  }
@@ -53,7 +53,7 @@ class ManagerFlow extends Manager {
53
53
  ...props
54
54
  }) {
55
55
  return this.__super__.updateAdvancedFlow({
56
- advancedflow: AdvancedFlow.transformSave(advancedflow),
56
+ advancedflow: AdvancedFlow.transformSet(advancedflow),
57
57
  ...props,
58
58
  });
59
59
  }
@@ -4,15 +4,15 @@ const FlowTokenV3 = require('../../HomeyAPIV3/ManagerFlowToken/FlowToken');
4
4
 
5
5
  class FlowToken extends FlowTokenV3 {
6
6
 
7
- static transform(item) {
7
+ static transformGet(item) {
8
8
  // TODO: Remove FlowTokenV3.transform and uncomment this after front-end does not use FlowToken.uri|id|uriObj anymore!
9
- // item = super.transform(item);
9
+ // item = super.transformGet(item);
10
10
 
11
11
  item.ownerUri = item.uri;
12
12
  item.ownerId = item.id;
13
- item.ownerName = item.uriObj.name;
14
13
  item.id = `${item.ownerUri}:${item.ownerId}`;
15
14
 
15
+ delete item.ownerName; // Prepare for back-end change
16
16
  delete item.uri;
17
17
  delete item.uriObj;
18
18
 
@@ -4,12 +4,11 @@ const LogV3 = require('../../HomeyAPIV3/ManagerInsights/Log');
4
4
 
5
5
  class Log extends LogV3 {
6
6
 
7
- static transform(item) {
8
- item = super.transform(item);
7
+ static transformGet(item) {
8
+ item = super.transformGet(item);
9
9
 
10
10
  item.ownerId = item.id;
11
11
  item.ownerUri = item.uri;
12
- item.ownerName = item.uriObj.name;
13
12
  item.id = `${item.uri}:${item.id}`;
14
13
 
15
14
  delete item.uri;
@@ -68,6 +68,13 @@ class Item extends EventEmitter {
68
68
 
69
69
  this[key] = value;
70
70
  }
71
+
72
+ this.emit('update', properties);
73
+ }
74
+
75
+ __delete() {
76
+ this.destroy();
77
+ this.emit('delete');
71
78
  }
72
79
 
73
80
  async connect() {
@@ -173,7 +180,11 @@ class Item extends EventEmitter {
173
180
  this.disconnect().catch(() => { });
174
181
  }
175
182
 
176
- static transform(item) {
183
+ static transformGet(item) {
184
+ return item;
185
+ }
186
+
187
+ static transformSet(item) {
177
188
  return item;
178
189
  }
179
190
 
@@ -258,7 +258,7 @@ class Manager extends EventEmitter {
258
258
  switch (operation.crud.type) {
259
259
  case 'getOne': {
260
260
  let item = { ...result };
261
- item = Item.transform(item);
261
+ item = Item.transformGet(item);
262
262
  item = new Item({
263
263
  id: item.id,
264
264
  homey: this.homey,
@@ -277,7 +277,7 @@ class Manager extends EventEmitter {
277
277
 
278
278
  // Add all to cache
279
279
  for (let item of Object.values(result)) {
280
- item = Item.transform(item);
280
+ item = Item.transformGet(item);
281
281
  if (this.__cache[itemId][item.id]) {
282
282
  items[item.id] = this.__cache[itemId][item.id];
283
283
  items[item.id].__update(item);
@@ -314,13 +314,13 @@ class Manager extends EventEmitter {
314
314
  case 'createOne':
315
315
  case 'updateOne': {
316
316
  let item = { ...result };
317
- item = Item.transform(item);
317
+ item = Item.transformGet(item);
318
318
 
319
319
  if (this.__cache[itemId][item.id]) {
320
320
  item = this.__cache[itemId][item.id];
321
321
  item.__update(item);
322
322
  } else {
323
- item = Item.transform(item);
323
+ item = Item.transformGet(item);
324
324
  item = new Item({
325
325
  id: item.id,
326
326
  homey: this.homey,
@@ -412,53 +412,38 @@ class Manager extends EventEmitter {
412
412
 
413
413
  switch (operation) {
414
414
  case 'create': {
415
- let item = { ...data };
416
- item = Item.transform(item);
417
- item = new Item({
418
- id: item.id,
415
+ data = Item.transformGet(data);
416
+
417
+ const item = new Item({
418
+ id: data.id,
419
419
  homey: this.homey,
420
420
  manager: this,
421
- properties: { ...item },
421
+ properties: { ...data },
422
422
  });
423
+ this.__cache[itemId][data.id] = item;
423
424
 
424
- this.__cache[itemId][item.id] = item;
425
- this.__cache[itemId][item.id].emit('create');
426
-
427
- return this.emit(`${itemId}.create`, item);
425
+ break;
428
426
  }
429
427
  case 'update': {
430
- let item = { ...data };
431
- item = Item.transform(item);
428
+ data = Item.transformGet(data);
432
429
 
433
- if (this.__cache[itemId][item.id]) {
434
- item = this.__cache[itemId][item.id];
435
- item.__update(item);
436
- item.emit('update');
437
- } else {
438
- item = new Item({
439
- id: item.id,
440
- homey: this.homey,
441
- manager: this,
442
- properties: { ...item },
443
- });
444
- this.__cache[itemId][item.id] = item;
430
+ if (this.__cache[itemId][data.id]) {
431
+ const item = this.__cache[itemId][data.id];
432
+ item.__update(data);
445
433
  }
446
434
 
447
- return this.emit(`${itemId}.update`, item);
435
+ break;
448
436
  }
449
437
  case 'delete': {
450
- let item = Item.transform({ ...data });
451
- item = Item.transform(item);
438
+ data = Item.transformGet(data);
452
439
 
453
- if (this.__cache[itemId][item.id]) {
454
- this.__cache[itemId][item.id].emit('delete');
455
- this.__cache[itemId][item.id].destroy();
440
+ if (this.__cache[itemId][data.id]) {
441
+ const item = this.__cache[itemId][data.id];
442
+ item.__delete();
456
443
  delete this.__cache[itemId][item.id];
457
444
  }
458
445
 
459
- return this.emit(`${itemId}.delete`, {
460
- id: item.id,
461
- });
446
+ break;
462
447
  }
463
448
  default:
464
449
  break;
@@ -195,7 +195,9 @@ class Device extends Item {
195
195
  }), {});
196
196
  }
197
197
 
198
- static transform(item) {
198
+ static transformGet(item) {
199
+ item = super.transformGet(item);
200
+
199
201
  if (item.capabilitiesObj) {
200
202
  for (const capabilityObj of Object.values(item.capabilitiesObj)) {
201
203
  if (capabilityObj.lastUpdated) {
@@ -4,6 +4,14 @@ const Item = require('../Item');
4
4
 
5
5
  class FlowCard extends Item {
6
6
 
7
+ static transformGet(item) {
8
+ item = super.transformGet(item);
9
+
10
+ delete item.ownerName; // Prepare for back-end change
11
+
12
+ return item;
13
+ }
14
+
7
15
  }
8
16
 
9
17
  module.exports = FlowCard;
@@ -5,10 +5,13 @@ const Item = require('../Item');
5
5
  class FlowToken extends Item {
6
6
 
7
7
  // TODO: Remove when back-end has removed these properties.
8
- static transform(item) {
8
+ static transformGet(item) {
9
+ item = super.transformGet(item);
10
+
9
11
  delete item.uri;
10
12
  delete item.id;
11
13
  delete item.uriObj;
14
+ delete item.ownerName; // Prepare for back-end change
12
15
  }
13
16
 
14
17
  }
@@ -10,6 +10,14 @@ class Log extends Item {
10
10
  });
11
11
  }
12
12
 
13
+ static transformGet(item) {
14
+ item = super.transformGet(item);
15
+
16
+ delete item.ownerName; // Prepare for back-end change
17
+
18
+ return item;
19
+ }
20
+
13
21
  }
14
22
 
15
23
  module.exports = Log;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "homey-api",
3
- "version": "3.0.0-rc.5",
3
+ "version": "3.0.0-rc.7",
4
4
  "description": "Homey API",
5
5
  "main": "index.js",
6
6
  "files": [