@ejfdelgado/ejflab-back 1.32.11 → 1.32.13

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.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ejfdelgado/ejflab-back",
3
- "version": "1.32.11",
3
+ "version": "1.32.13",
4
4
  "repository": {
5
5
  "type": "git",
6
6
  "url": "git+https://github.com/ejfdelgado/ejflab-back.git"
@@ -19,7 +19,7 @@
19
19
  "license": "ISC",
20
20
  "private": false,
21
21
  "dependencies": {
22
- "@ejfdelgado/ejflab-common": "1.16.4",
22
+ "@ejfdelgado/ejflab-common": "1.16.5",
23
23
  "@google-cloud/compute": "^4.7.0",
24
24
  "@google-cloud/firestore": "^7.9.0",
25
25
  "@google-cloud/storage": "^7.11.3",
@@ -49,6 +49,7 @@ export class SocketIOCall {
49
49
  static socketRoomUUIDMap = {};
50
50
  static socketToImage = {};
51
51
  static hookProcessors = {};
52
+ static internalBus = new EventEmitter();
52
53
 
53
54
  static echoLog(message) {
54
55
  if (process.env.ENV != "pro") {
@@ -377,10 +378,14 @@ export class SocketIOCall {
377
378
  const extraHooks = Object.keys(SocketIOCall.hookProcessors);
378
379
  for (let k = 0; k < extraHooks.length; k++) {
379
380
  const hookId = extraHooks[k];
380
- socket.on(hookId, (payload) => {
381
+ const commonCall = (payload) => {
381
382
  const className = SocketIOCall.hookProcessors[hookId];
382
383
  new className(SocketIOCall, SocketIOCall.io, socket).executeSave(payload);
383
- });
384
+ };
385
+ socket.on(hookId, commonCall);
386
+ if (SocketIOCall.internalBus.listenerCount(hookId) == 0) {
387
+ SocketIOCall.internalBus.on(hookId, commonCall);
388
+ }
384
389
  }
385
390
  }
386
391
 
@@ -17,11 +17,17 @@ export class DisconnectProcessor extends GenericProcessor {
17
17
  }
18
18
  }
19
19
 
20
- clearPersonFromPeople(people, socketId) {
20
+ clearPersonFromPeople(people, socketId, room) {
21
21
  for (let personId in people) {
22
22
  const onePerson = people[personId];
23
23
  if (onePerson.socket == socketId || socketId == personId) {
24
- delete people[personId]
24
+ if (onePerson.sharedState && onePerson.sharedState.user_id) {
25
+ this.context.internalBus.emit("closeVideoChat", {
26
+ provider: onePerson.sharedState.user_id,
27
+ room: room,
28
+ });
29
+ }
30
+ delete people[personId];
25
31
  break;
26
32
  }
27
33
  }
@@ -43,11 +49,11 @@ export class DisconnectProcessor extends GenericProcessor {
43
49
  //
44
50
  const people = SimpleObj.getValue(roomData.model, "data.people", null);
45
51
  if (people) {
46
- this.clearPersonFromPeople(people, socketId);
52
+ this.clearPersonFromPeople(people, socketId, room);
47
53
  }
48
54
 
49
55
  const observe = ["data", "data.state", "data.state.sources", "data.state.processors", "data.people"];
50
56
  let changes = roomData.builder.trackDifferences(roomData.model, [], null, observe);
51
57
  roomData.model = roomData.builder.affect(changes);
52
58
  }
53
- }
59
+ }