@hivegpt/hiveai-angular 0.0.157 → 0.0.160

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.
@@ -1,42 +1,60 @@
1
1
  import { Injectable } from '@angular/core';
2
- import { Observable } from 'rxjs';
3
- import { webSocket } from 'rxjs/webSocket';
4
- import { prod_environment } from '../../environments/environment';
2
+ import { ConversationService } from './conversation.service';
3
+ import { NotificationSocket } from './NotificationSocket';
5
4
  import * as i0 from "@angular/core";
5
+ import * as i1 from "./conversation.service";
6
+ import * as i2 from "./NotificationSocket";
6
7
  export class SocketService {
7
- constructor() {
8
- this.connect();
8
+ constructor(conversationService, notificationSocket) {
9
+ this.conversationService = conversationService;
10
+ this.notificationSocket = notificationSocket;
11
+ this.isCommonSocketInitialized = false;
12
+ this.isUserSpecificSocketInitialized = false;
13
+ this.isUserSpecificEventReleased = true;
14
+ this.messageQueue = [];
15
+ this.releaseInterval = 1000;
16
+ this.intervalSetup = false;
17
+ this.startReleasingMessages();
9
18
  }
10
- connect() {
11
- const url = prod_environment;
12
- this.socket$ = webSocket(url.SocketUrl);
13
- this.socket$.subscribe((message) => this.onMessage(message), (err) => console.error('WebSocket error', err), () => console.warn('WebSocket closed'));
19
+ isSocketInitialized(isCommon) {
20
+ return isCommon
21
+ ? this.isCommonSocketInitialized
22
+ : this.isUserSpecificSocketInitialized &&
23
+ !this.isUserSpecificEventReleased;
14
24
  }
15
- onMessage(message) {
16
- console.log('Received message:', message);
17
- // Handle incoming messages
25
+ disconnectSocketConnection() {
26
+ this.notificationSocket.disconnect();
18
27
  }
19
- sendMessage(message) {
20
- this.socket$.next(message);
21
- }
22
- close() {
23
- this.socket$.complete();
28
+ registerUserSpecificHiveSocket(botId, conversation_id) {
29
+ this.notificationSocket.emit('joinData', {
30
+ groupId: "Hive_AI_Notifs_" + botId + "_" + conversation_id,
31
+ });
32
+ this.notificationSocket
33
+ .fromEvent('commonNotification')
34
+ .subscribe((res) => {
35
+ this.conversationService.sendValidatedUserData(res);
36
+ });
24
37
  }
25
- onEvent(eventName) {
26
- return new Observable((observer) => {
27
- this.socket$.subscribe((message) => {
28
- if (message.event === eventName) {
29
- observer.next(message.data);
38
+ startReleasingMessages() {
39
+ if (!this.intervalSetup) {
40
+ setInterval(() => {
41
+ if (this.messageQueue.length > 0) {
42
+ const message = this.messageQueue.shift(); // Remove the first message from the queue
43
+ // this.campaignService.sendValidatedUserData(message);
30
44
  }
31
- });
32
- });
45
+ }, this.releaseInterval);
46
+ this.intervalSetup = true; // Prevents multiple intervals
47
+ }
33
48
  }
34
49
  }
35
- SocketService.ɵprov = i0.ɵɵdefineInjectable({ factory: function SocketService_Factory() { return new SocketService(); }, token: SocketService, providedIn: "root" });
50
+ SocketService.ɵprov = i0.ɵɵdefineInjectable({ factory: function SocketService_Factory() { return new SocketService(i0.ɵɵinject(i1.ConversationService), i0.ɵɵinject(i2.NotificationSocket)); }, token: SocketService, providedIn: "root" });
36
51
  SocketService.decorators = [
37
52
  { type: Injectable, args: [{
38
53
  providedIn: 'root'
39
54
  },] }
40
55
  ];
41
- SocketService.ctorParameters = () => [];
42
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic29ja2V0LXNlcnZpY2Uuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiJEOi9oaXZlR1BULUFJLXBhY2thZ2VzL0hpdmVBSS1QYWNrYWdlcy9wcm9qZWN0cy9oaXZlZ3B0L2V2ZW50c2dwdC1hbmd1bGFyL3NyYy8iLCJzb3VyY2VzIjpbImxpYi9jb21wb25lbnRzL3NvY2tldC1zZXJ2aWNlLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUzQyxPQUFPLEVBQUUsVUFBVSxFQUFXLE1BQU0sTUFBTSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxTQUFTLEVBQW9CLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0QsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7O0FBS2xFLE1BQU0sT0FBTyxhQUFhO0lBR3hCO1FBQ0UsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQ2pCLENBQUM7SUFFTyxPQUFPO1FBQ2IsTUFBTSxHQUFHLEdBQUcsZ0JBQWdCLENBQUM7UUFDN0IsSUFBSSxDQUFDLE9BQU8sR0FBRyxTQUFTLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBRXhDLElBQUksQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUNwQixDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsRUFDcEMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsaUJBQWlCLEVBQUUsR0FBRyxDQUFDLEVBQzlDLEdBQUcsRUFBRSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsQ0FDdkMsQ0FBQztJQUNKLENBQUM7SUFFTyxTQUFTLENBQUMsT0FBWTtRQUM1QixPQUFPLENBQUMsR0FBRyxDQUFDLG1CQUFtQixFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBQzFDLDJCQUEyQjtJQUM3QixDQUFDO0lBRUQsV0FBVyxDQUFDLE9BQVk7UUFDdEIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDN0IsQ0FBQztJQUVELEtBQUs7UUFDSCxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQzFCLENBQUM7SUFFRCxPQUFPLENBQUMsU0FBaUI7UUFDdkIsT0FBTyxJQUFJLFVBQVUsQ0FBTSxDQUFDLFFBQVEsRUFBRSxFQUFFO1lBQ3RDLElBQUksQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUMsT0FBWSxFQUFFLEVBQUU7Z0JBQ3RDLElBQUksT0FBTyxDQUFDLEtBQUssS0FBSyxTQUFTLEVBQUU7b0JBQy9CLFFBQVEsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO2lCQUM3QjtZQUNILENBQUMsQ0FBQyxDQUFDO1FBQ0wsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDOzs7O1lBMUNGLFVBQVUsU0FBQztnQkFDVixVQUFVLEVBQUUsTUFBTTthQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgd2ViU29ja2V0LCBXZWJTb2NrZXRTdWJqZWN0IH0gZnJvbSAncnhqcy93ZWJTb2NrZXQnO1xuaW1wb3J0IHsgcHJvZF9lbnZpcm9ubWVudCB9IGZyb20gJy4uLy4uL2Vudmlyb25tZW50cy9lbnZpcm9ubWVudCc7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIFNvY2tldFNlcnZpY2Uge1xuICBwcml2YXRlIHNvY2tldCQ6IFdlYlNvY2tldFN1YmplY3Q8YW55PjtcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICB0aGlzLmNvbm5lY3QoKTtcbiAgfVxuXG4gIHByaXZhdGUgY29ubmVjdCgpOiB2b2lkIHtcbiAgICBjb25zdCB1cmwgPSBwcm9kX2Vudmlyb25tZW50O1xuICAgIHRoaXMuc29ja2V0JCA9IHdlYlNvY2tldCh1cmwuU29ja2V0VXJsKTtcblxuICAgIHRoaXMuc29ja2V0JC5zdWJzY3JpYmUoXG4gICAgICAobWVzc2FnZSkgPT4gdGhpcy5vbk1lc3NhZ2UobWVzc2FnZSksXG4gICAgICAoZXJyKSA9PiBjb25zb2xlLmVycm9yKCdXZWJTb2NrZXQgZXJyb3InLCBlcnIpLFxuICAgICAgKCkgPT4gY29uc29sZS53YXJuKCdXZWJTb2NrZXQgY2xvc2VkJylcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBvbk1lc3NhZ2UobWVzc2FnZTogYW55KTogdm9pZCB7XG4gICAgY29uc29sZS5sb2coJ1JlY2VpdmVkIG1lc3NhZ2U6JywgbWVzc2FnZSk7XG4gICAgLy8gSGFuZGxlIGluY29taW5nIG1lc3NhZ2VzXG4gIH1cblxuICBzZW5kTWVzc2FnZShtZXNzYWdlOiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLnNvY2tldCQubmV4dChtZXNzYWdlKTtcbiAgfVxuXG4gIGNsb3NlKCk6IHZvaWQge1xuICAgIHRoaXMuc29ja2V0JC5jb21wbGV0ZSgpO1xuICB9XG5cbiAgb25FdmVudChldmVudE5hbWU6IHN0cmluZyk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuIG5ldyBPYnNlcnZhYmxlPGFueT4oKG9ic2VydmVyKSA9PiB7XG4gICAgICB0aGlzLnNvY2tldCQuc3Vic2NyaWJlKChtZXNzYWdlOiBhbnkpID0+IHtcbiAgICAgICAgaWYgKG1lc3NhZ2UuZXZlbnQgPT09IGV2ZW50TmFtZSkge1xuICAgICAgICAgIG9ic2VydmVyLm5leHQobWVzc2FnZS5kYXRhKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==
56
+ SocketService.ctorParameters = () => [
57
+ { type: ConversationService },
58
+ { type: NotificationSocket }
59
+ ];
60
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic29ja2V0LXNlcnZpY2Uuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiJEOi9oaXZlR1BULUFJLXBhY2thZ2VzL0hpdmVBSS1QYWNrYWdlcy9wcm9qZWN0cy9oaXZlZ3B0L2V2ZW50c2dwdC1hbmd1bGFyL3NyYy8iLCJzb3VyY2VzIjpbImxpYi9jb21wb25lbnRzL3NvY2tldC1zZXJ2aWNlLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUszQyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUM3RCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQzs7OztBQUsxRCxNQUFNLE9BQU8sYUFBYTtJQVF4QixZQUNVLG1CQUF3QyxFQUN4QyxrQkFBc0M7UUFEdEMsd0JBQW1CLEdBQW5CLG1CQUFtQixDQUFxQjtRQUN4Qyx1QkFBa0IsR0FBbEIsa0JBQWtCLENBQW9CO1FBUnhDLDhCQUF5QixHQUFHLEtBQUssQ0FBQztRQUNsQyxvQ0FBK0IsR0FBRyxLQUFLLENBQUM7UUFDeEMsZ0NBQTJCLEdBQUcsSUFBSSxDQUFDO1FBQ25DLGlCQUFZLEdBQVUsRUFBRSxDQUFDO1FBQ3pCLG9CQUFlLEdBQUcsSUFBSSxDQUFDO1FBMkN2QixrQkFBYSxHQUFZLEtBQUssQ0FBQztRQXJDckMsSUFBSSxDQUFDLHNCQUFzQixFQUFFLENBQUM7SUFDaEMsQ0FBQztJQUVELG1CQUFtQixDQUFDLFFBQWlCO1FBQ25DLE9BQU8sUUFBUTtZQUNiLENBQUMsQ0FBQyxJQUFJLENBQUMseUJBQXlCO1lBQ2hDLENBQUMsQ0FBQyxJQUFJLENBQUMsK0JBQStCO2dCQUN0QyxDQUFDLElBQUksQ0FBQywyQkFBMkIsQ0FBQztJQUN0QyxDQUFDO0lBRUQsMEJBQTBCO1FBQ3hCLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxVQUFVLEVBQUUsQ0FBQztJQUN2QyxDQUFDO0lBRUQsOEJBQThCLENBQzVCLEtBQWEsRUFDYixlQUF1QjtRQUl2QixJQUFJLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRTtZQUN2QyxPQUFPLEVBQUUsaUJBQWlCLEdBQUcsS0FBSyxHQUFHLEdBQUcsR0FBRyxlQUFlO1NBQzNELENBQUMsQ0FBQztRQUtILElBQUksQ0FBQyxrQkFBa0I7YUFDcEIsU0FBUyxDQUFDLG9CQUFvQixDQUFDO2FBQy9CLFNBQVMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFO1lBQ2pCLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxxQkFBcUIsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUN0RCxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFPTyxzQkFBc0I7UUFDNUIsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUU7WUFDdkIsV0FBVyxDQUFDLEdBQUcsRUFBRTtnQkFDZixJQUFJLElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtvQkFDaEMsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLDBDQUEwQztvQkFDckYsdURBQXVEO2lCQUN4RDtZQUNILENBQUMsRUFBRSxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUM7WUFDekIsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUMsQ0FBQyw4QkFBOEI7U0FDMUQ7SUFDSCxDQUFDOzs7O1lBaEVGLFVBQVUsU0FBQztnQkFDVixVQUFVLEVBQUUsTUFBTTthQUNuQjs7O1lBTFEsbUJBQW1CO1lBQ25CLGtCQUFrQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgd2ViU29ja2V0LCBXZWJTb2NrZXRTdWJqZWN0IH0gZnJvbSAncnhqcy93ZWJTb2NrZXQnO1xuaW1wb3J0IHsgcHJvZF9lbnZpcm9ubWVudCB9IGZyb20gJy4uLy4uL2Vudmlyb25tZW50cy9lbnZpcm9ubWVudCc7XG5pbXBvcnQgeyBDb252ZXJzYXRpb25TZXJ2aWNlIH0gZnJvbSAnLi9jb252ZXJzYXRpb24uc2VydmljZSc7XG5pbXBvcnQgeyBOb3RpZmljYXRpb25Tb2NrZXQgfSBmcm9tICcuL05vdGlmaWNhdGlvblNvY2tldCc7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIFNvY2tldFNlcnZpY2Uge1xuICBwdWJsaWMgdGVzdE1lc3NhZ2U6IHN0cmluZztcbiAgcHJpdmF0ZSBpc0NvbW1vblNvY2tldEluaXRpYWxpemVkID0gZmFsc2U7XG4gIHByaXZhdGUgaXNVc2VyU3BlY2lmaWNTb2NrZXRJbml0aWFsaXplZCA9IGZhbHNlO1xuICBwcml2YXRlIGlzVXNlclNwZWNpZmljRXZlbnRSZWxlYXNlZCA9IHRydWU7XG4gIHByaXZhdGUgbWVzc2FnZVF1ZXVlOiBhbnlbXSA9IFtdO1xuICBwcml2YXRlIHJlbGVhc2VJbnRlcnZhbCA9IDEwMDA7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBjb252ZXJzYXRpb25TZXJ2aWNlOiBDb252ZXJzYXRpb25TZXJ2aWNlLFxuICAgIHByaXZhdGUgbm90aWZpY2F0aW9uU29ja2V0OiBOb3RpZmljYXRpb25Tb2NrZXQsXG4gICkge1xuICAgIHRoaXMuc3RhcnRSZWxlYXNpbmdNZXNzYWdlcygpO1xuICB9XG5cbiAgaXNTb2NrZXRJbml0aWFsaXplZChpc0NvbW1vbjogYm9vbGVhbikge1xuICAgIHJldHVybiBpc0NvbW1vblxuICAgICAgPyB0aGlzLmlzQ29tbW9uU29ja2V0SW5pdGlhbGl6ZWRcbiAgICAgIDogdGhpcy5pc1VzZXJTcGVjaWZpY1NvY2tldEluaXRpYWxpemVkICYmXG4gICAgICAhdGhpcy5pc1VzZXJTcGVjaWZpY0V2ZW50UmVsZWFzZWQ7XG4gIH1cblxuICBkaXNjb25uZWN0U29ja2V0Q29ubmVjdGlvbigpIHtcbiAgICB0aGlzLm5vdGlmaWNhdGlvblNvY2tldC5kaXNjb25uZWN0KCk7XG4gIH1cblxuICByZWdpc3RlclVzZXJTcGVjaWZpY0hpdmVTb2NrZXQoXG4gICAgYm90SWQ6IHN0cmluZyxcbiAgICBjb252ZXJzYXRpb25faWQ6IHN0cmluZ1xuICApIHtcblxuXG4gICAgdGhpcy5ub3RpZmljYXRpb25Tb2NrZXQuZW1pdCgnam9pbkRhdGEnLCB7XG4gICAgICBncm91cElkOiBcIkhpdmVfQUlfTm90aWZzX1wiICsgYm90SWQgKyBcIl9cIiArIGNvbnZlcnNhdGlvbl9pZCxcbiAgICB9KTtcblxuXG5cblxuICAgIHRoaXMubm90aWZpY2F0aW9uU29ja2V0XG4gICAgICAuZnJvbUV2ZW50KCdjb21tb25Ob3RpZmljYXRpb24nKVxuICAgICAgLnN1YnNjcmliZSgocmVzKSA9PiB7XG4gICAgICAgIHRoaXMuY29udmVyc2F0aW9uU2VydmljZS5zZW5kVmFsaWRhdGVkVXNlckRhdGEocmVzKTtcbiAgICAgIH0pO1xuICB9XG5cblxuXG5cbiAgcHJpdmF0ZSBpbnRlcnZhbFNldHVwOiBib29sZWFuID0gZmFsc2U7XG5cbiAgcHJpdmF0ZSBzdGFydFJlbGVhc2luZ01lc3NhZ2VzKCkge1xuICAgIGlmICghdGhpcy5pbnRlcnZhbFNldHVwKSB7XG4gICAgICBzZXRJbnRlcnZhbCgoKSA9PiB7XG4gICAgICAgIGlmICh0aGlzLm1lc3NhZ2VRdWV1ZS5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgY29uc3QgbWVzc2FnZSA9IHRoaXMubWVzc2FnZVF1ZXVlLnNoaWZ0KCk7IC8vIFJlbW92ZSB0aGUgZmlyc3QgbWVzc2FnZSBmcm9tIHRoZSBxdWV1ZVxuICAgICAgICAgIC8vIHRoaXMuY2FtcGFpZ25TZXJ2aWNlLnNlbmRWYWxpZGF0ZWRVc2VyRGF0YShtZXNzYWdlKTtcbiAgICAgICAgfVxuICAgICAgfSwgdGhpcy5yZWxlYXNlSW50ZXJ2YWwpO1xuICAgICAgdGhpcy5pbnRlcnZhbFNldHVwID0gdHJ1ZTsgLy8gUHJldmVudHMgbXVsdGlwbGUgaW50ZXJ2YWxzXG4gICAgfVxuICB9XG59XG4iXX0=
@@ -1,9 +1,9 @@
1
1
  import { HttpHeaders, HttpClient } from '@angular/common/http';
2
- import { ɵɵdefineInjectable, Injectable, EventEmitter, ElementRef, Component, ChangeDetectionStrategy, ChangeDetectorRef, Renderer2, ViewChild, ViewChildren, Input, Output, Pipe, Inject, NgModule } from '@angular/core';
2
+ import { ɵɵdefineInjectable, Injectable, ɵɵinject, EventEmitter, ElementRef, Component, ChangeDetectionStrategy, ChangeDetectorRef, Renderer2, ViewChild, ViewChildren, Input, Output, Pipe, Inject, NgModule } from '@angular/core';
3
3
  import { DomSanitizer } from '@angular/platform-browser';
4
- import { Observable, of } from 'rxjs';
4
+ import { Subject, of } from 'rxjs';
5
5
  import { switchMap, catchError } from 'rxjs/operators';
6
- import { webSocket } from 'rxjs/webSocket';
6
+ import { Socket } from 'ngx-socket-io';
7
7
  import { DOCUMENT, CommonModule } from '@angular/common';
8
8
  import { FormsModule } from '@angular/forms';
9
9
  import { MatIconModule } from '@angular/material/icon';
@@ -62,6 +62,7 @@ const dev_environment = {
62
62
  class ConversationService {
63
63
  constructor() {
64
64
  this.storageKey = 'conversationKey';
65
+ this.userSepecificNotification = new Subject();
65
66
  }
66
67
  generateKey() {
67
68
  const timestamp = Math.floor(new Date().getTime() / 1000).toString(16);
@@ -84,6 +85,13 @@ class ConversationService {
84
85
  this.ensureKeyExists(storageKey, key);
85
86
  return localStorage.getItem(storageKey);
86
87
  }
88
+ sendValidatedUserData(message) {
89
+ //console.log('lgging messages', message, new Date());\
90
+ this.userSepecificNotification.next(message);
91
+ }
92
+ getUserSpecificNotification() {
93
+ return this.userSepecificNotification.asObservable();
94
+ }
87
95
  }
88
96
  ConversationService.ɵprov = ɵɵdefineInjectable({ factory: function ConversationService_Factory() { return new ConversationService(); }, token: ConversationService, providedIn: "root" });
89
97
  ConversationService.decorators = [
@@ -93,42 +101,84 @@ ConversationService.decorators = [
93
101
  ];
94
102
  ConversationService.ctorParameters = () => [];
95
103
 
96
- class SocketService {
104
+ class NotificationSocket extends Socket {
97
105
  constructor() {
98
- this.connect();
99
- }
100
- connect() {
101
- const url = prod_environment;
102
- this.socket$ = webSocket(url.SocketUrl);
103
- this.socket$.subscribe((message) => this.onMessage(message), (err) => console.error('WebSocket error', err), () => console.warn('WebSocket closed'));
106
+ super(socketConfig);
104
107
  }
105
- onMessage(message) {
106
- console.log('Received message:', message);
107
- // Handle incoming messages
108
- }
109
- sendMessage(message) {
110
- this.socket$.next(message);
108
+ }
109
+ NotificationSocket.ɵprov = ɵɵdefineInjectable({ factory: function NotificationSocket_Factory() { return new NotificationSocket(); }, token: NotificationSocket, providedIn: "root" });
110
+ NotificationSocket.decorators = [
111
+ { type: Injectable, args: [{
112
+ providedIn: 'root' // This ensures the service is available across the application
113
+ },] }
114
+ ];
115
+ NotificationSocket.ctorParameters = () => [];
116
+ const socketConfig = {
117
+ url: prod_environment.SocketUrl,
118
+ options: {
119
+ transports: ['websocket', 'polling'],
120
+ reconnection: true,
121
+ autoConnect: true,
122
+ upgrade: true,
123
+ reconnectionDelay: 1000,
124
+ reconnectionDelayMax: 5000,
125
+ reconnectionAttempts: Infinity
111
126
  }
112
- close() {
113
- this.socket$.complete();
127
+ };
128
+
129
+ class SocketService {
130
+ constructor(conversationService, notificationSocket) {
131
+ this.conversationService = conversationService;
132
+ this.notificationSocket = notificationSocket;
133
+ this.isCommonSocketInitialized = false;
134
+ this.isUserSpecificSocketInitialized = false;
135
+ this.isUserSpecificEventReleased = true;
136
+ this.messageQueue = [];
137
+ this.releaseInterval = 1000;
138
+ this.intervalSetup = false;
139
+ this.startReleasingMessages();
140
+ }
141
+ isSocketInitialized(isCommon) {
142
+ return isCommon
143
+ ? this.isCommonSocketInitialized
144
+ : this.isUserSpecificSocketInitialized &&
145
+ !this.isUserSpecificEventReleased;
146
+ }
147
+ disconnectSocketConnection() {
148
+ this.notificationSocket.disconnect();
149
+ }
150
+ registerUserSpecificHiveSocket(botId, conversation_id) {
151
+ this.notificationSocket.emit('joinData', {
152
+ groupId: "Hive_AI_Notifs_" + botId + "_" + conversation_id,
153
+ });
154
+ this.notificationSocket
155
+ .fromEvent('commonNotification')
156
+ .subscribe((res) => {
157
+ this.conversationService.sendValidatedUserData(res);
158
+ });
114
159
  }
115
- onEvent(eventName) {
116
- return new Observable((observer) => {
117
- this.socket$.subscribe((message) => {
118
- if (message.event === eventName) {
119
- observer.next(message.data);
160
+ startReleasingMessages() {
161
+ if (!this.intervalSetup) {
162
+ setInterval(() => {
163
+ if (this.messageQueue.length > 0) {
164
+ const message = this.messageQueue.shift(); // Remove the first message from the queue
165
+ // this.campaignService.sendValidatedUserData(message);
120
166
  }
121
- });
122
- });
167
+ }, this.releaseInterval);
168
+ this.intervalSetup = true; // Prevents multiple intervals
169
+ }
123
170
  }
124
171
  }
125
- SocketService.ɵprov = ɵɵdefineInjectable({ factory: function SocketService_Factory() { return new SocketService(); }, token: SocketService, providedIn: "root" });
172
+ SocketService.ɵprov = ɵɵdefineInjectable({ factory: function SocketService_Factory() { return new SocketService(ɵɵinject(ConversationService), ɵɵinject(NotificationSocket)); }, token: SocketService, providedIn: "root" });
126
173
  SocketService.decorators = [
127
174
  { type: Injectable, args: [{
128
175
  providedIn: 'root'
129
176
  },] }
130
177
  ];
131
- SocketService.ctorParameters = () => [];
178
+ SocketService.ctorParameters = () => [
179
+ { type: ConversationService },
180
+ { type: NotificationSocket }
181
+ ];
132
182
 
133
183
  // import { Platform } from '@angular/cdk/platform';
134
184
  class ChatDrawerComponent {
@@ -262,20 +312,25 @@ class ChatDrawerComponent {
262
312
  this.fetchAgents();
263
313
  this.cdr.markForCheck();
264
314
  this.initializeSocketAndListen();
315
+ setTimeout(() => {
316
+ this.listenSockets();
317
+ }, 200);
318
+ }
319
+ initializeSocket() {
320
+ this.socketService.registerUserSpecificHiveSocket(this.botId, this.conversationKey);
321
+ }
322
+ listenSockets() {
323
+ this.eventSubscription = this.conversation
324
+ .getUserSpecificNotification()
325
+ .subscribe((res) => {
326
+ console.log("Socket Data");
327
+ console.log(res);
328
+ }, (err) => {
329
+ this.eventSubscription.unsubscribe();
330
+ console.error('Error in fetching data from socket');
331
+ });
265
332
  }
266
333
  initializeSocketAndListen() {
267
- this.eventSubscription = this.socketService.onEvent('webresult').subscribe((data) => {
268
- console.log('Event received webresult:', data);
269
- this.handleEvent(data, 'webresult');
270
- });
271
- this.eventSubscription = this.socketService.onEvent('answer').subscribe((data) => {
272
- console.log('Event received answer:', data);
273
- this.handleEvent(data, 'answer');
274
- });
275
- this.eventSubscription = this.socketService.onEvent('graph').subscribe((data) => {
276
- console.log('Event received graph:', data);
277
- this.handleEvent(data, 'graph');
278
- });
279
334
  }
280
335
  handleEvent(data, type) {
281
336
  switch (type) {
@@ -293,7 +348,7 @@ class ChatDrawerComponent {
293
348
  if (this.eventSubscription) {
294
349
  this.eventSubscription.unsubscribe();
295
350
  }
296
- this.socketService.close();
351
+ //this.socketService.close();
297
352
  }
298
353
  changeTemperature(newTemperature) {
299
354
  if (this.loading)
@@ -1381,5 +1436,5 @@ HiveGptModule.decorators = [
1381
1436
  * Generated bundle index. Do not edit.
1382
1437
  */
1383
1438
 
1384
- export { ChatBotComponent, ChatDrawerComponent, HiveGptModule, SocketService as ɵa, ConversationService as ɵb, VideoPlayerComponent as ɵc, SafeHtmlPipe as ɵd };
1439
+ export { ChatBotComponent, ChatDrawerComponent, HiveGptModule, SocketService as ɵa, ConversationService as ɵb, NotificationSocket as ɵc, VideoPlayerComponent as ɵd, SafeHtmlPipe as ɵe };
1385
1440
  //# sourceMappingURL=hivegpt-hiveai-angular.js.map