From 73d0696ea63393c7110e6b65f9211c44d6f864f2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Eudes=20In=C3=A1cio?= Date: Wed, 8 Jun 2022 11:56:56 +0100 Subject: [PATCH 1/6] Bug session expired resolved --- .../chat-options-features.page.ts | 17 +++++++++++++---- src/app/pages/chat/chat.page.ts | 8 +++++++- .../pages/chat/edit-group/edit-group.page.ts | 6 ++++++ .../group-contacts/group-contacts.page.ts | 8 +++++++- .../chat/group-messages/group-messages.page.ts | 7 +++++++ .../chat/messages/contacts/contacts.page.ts | 8 +++++++- src/app/pages/chat/messages/messages.page.ts | 7 +++++++ src/app/services/chat.service.ts | 18 ++++++++++++++++++ .../shared/chat/edit-group/edit-group.page.ts | 7 +++++++ .../group-contacts/group-contacts.page.ts | 8 +++++++- .../chat/group-messages/group-messages.page.ts | 7 +++++++ .../chat/messages/contacts/contacts.page.ts | 8 +++++++- src/app/shared/chat/messages/messages.page.ts | 7 +++++++ .../popover/chat-popover/chat-popover.page.ts | 7 +++++++ .../messages-options/messages-options.page.ts | 7 +++++++ 15 files changed, 121 insertions(+), 9 deletions(-) diff --git a/src/app/modals/chat-options-features/chat-options-features.page.ts b/src/app/modals/chat-options-features/chat-options-features.page.ts index f22b859c0..a4a5a91cb 100644 --- a/src/app/modals/chat-options-features/chat-options-features.page.ts +++ b/src/app/modals/chat-options-features/chat-options-features.page.ts @@ -10,6 +10,7 @@ import { FileLoaderService } from 'src/app/services/file/file-loader.service'; import { FileToBase64Service } from 'src/app/services/file/file-to-base64.service'; import { environment } from 'src/environments/environment'; import { ThemeService } from 'src/app/services/theme.service' +import { HttpErrorResponse } from '@angular/common/http'; @Component({ selector: 'app-chat-options-features', @@ -117,8 +118,12 @@ export class ChatOptionsFeaturesPage implements OnInit { this.chatService.sendMessage(body).subscribe(res=> { // - },(error) => { - + },(error: HttpErrorResponse) => { + if(error.status === 401){ + this.chatService.refreshtoken() + this.chatService.sendMessage(body); + } + }); // }; @@ -144,8 +149,12 @@ export class ChatOptionsFeaturesPage implements OnInit { this.chatService.sendMessage(body).subscribe(res=> { - },(error) => { - + },(error: HttpErrorResponse) => { + if(error.status === 401){ + this.chatService.refreshtoken() + this.chatService.sendMessage(body); + } + }); } diff --git a/src/app/pages/chat/chat.page.ts b/src/app/pages/chat/chat.page.ts index 959fd66c4..f6916ddf7 100644 --- a/src/app/pages/chat/chat.page.ts +++ b/src/app/pages/chat/chat.page.ts @@ -1,4 +1,4 @@ -import { HttpClient, HttpHeaders, HttpParams } from '@angular/common/http'; +import { HttpClient, HttpErrorResponse, HttpHeaders, HttpParams } from '@angular/common/http'; import { Component, OnInit, @@ -507,6 +507,12 @@ export class ChatPage implements OnInit { // }*/ + },(error: HttpErrorResponse) => { + if(error.status === 401){ + this.chatService.refreshtoken() + this.getChatMembers(); + } + }); } diff --git a/src/app/pages/chat/edit-group/edit-group.page.ts b/src/app/pages/chat/edit-group/edit-group.page.ts index 434bfc007..0a8c3235d 100644 --- a/src/app/pages/chat/edit-group/edit-group.page.ts +++ b/src/app/pages/chat/edit-group/edit-group.page.ts @@ -1,3 +1,4 @@ +import { HttpErrorResponse } from '@angular/common/http'; import { Component, OnInit } from '@angular/core'; import { ModalController, NavParams, PickerController } from '@ionic/angular'; import { ChatService } from 'src/app/services/chat.service'; @@ -36,6 +37,11 @@ export class EditGroupPage implements OnInit { this.room = room['room']; this.groupName = this.room.name.split('-').join(' '); + },(error: HttpErrorResponse) => { + if(error.status === 401) { + this.chatService.refreshtoken(); + this.getRoomInfo() + } }); } diff --git a/src/app/pages/chat/group-messages/group-contacts/group-contacts.page.ts b/src/app/pages/chat/group-messages/group-contacts/group-contacts.page.ts index aa1c439ba..ca0ff798f 100644 --- a/src/app/pages/chat/group-messages/group-contacts/group-contacts.page.ts +++ b/src/app/pages/chat/group-messages/group-contacts/group-contacts.page.ts @@ -1,4 +1,4 @@ -import { HttpClient, HttpHeaders } from '@angular/common/http'; +import { HttpClient, HttpErrorResponse, HttpHeaders } from '@angular/common/http'; import { Component, OnInit } from '@angular/core'; import { ModalController, NavParams } from '@ionic/angular'; import * as _ from 'lodash'; @@ -85,6 +85,12 @@ export class GroupContactsPage implements OnInit { this.showLoader = false; + },(error: HttpErrorResponse) => { + if(error.status === 401){ + this.chatService.refreshtoken() + this.loadUsers(); + } + }); } diff --git a/src/app/pages/chat/group-messages/group-messages.page.ts b/src/app/pages/chat/group-messages/group-messages.page.ts index bd869ddab..212b2f835 100644 --- a/src/app/pages/chat/group-messages/group-messages.page.ts +++ b/src/app/pages/chat/group-messages/group-messages.page.ts @@ -31,6 +31,7 @@ import { MessageService } from 'src/app/services/chat/message.service'; import { File } from '@awesome-cordova-plugins/file/ngx'; import { FileOpener } from '@awesome-cordova-plugins/file-opener/ngx'; import { SessionStore } from 'src/app/store/session.service'; +import { HttpErrorResponse } from '@angular/common/http'; @Component({ selector: 'app-group-messages', @@ -380,6 +381,12 @@ export class GroupMessagesPage implements OnInit, AfterViewInit, OnDestroy { this.allUsers = res['users'].filter(data => data.username != SessionStore.user.UserName); + },(error: HttpErrorResponse) => { + if(error.status === 401){ + this.chatService.refreshtoken() + this.getChatMembers(); + } + }); } diff --git a/src/app/pages/chat/messages/contacts/contacts.page.ts b/src/app/pages/chat/messages/contacts/contacts.page.ts index b369d5dd3..40dd5ac8b 100644 --- a/src/app/pages/chat/messages/contacts/contacts.page.ts +++ b/src/app/pages/chat/messages/contacts/contacts.page.ts @@ -1,4 +1,4 @@ -import { HttpClient, HttpHeaders } from '@angular/common/http'; +import { HttpClient, HttpErrorResponse, HttpHeaders } from '@angular/common/http'; import { Component, OnInit } from '@angular/core'; import { ModalController } from '@ionic/angular'; import { AuthService } from 'src/app/services/auth.service'; @@ -67,6 +67,12 @@ export class ContactsPage implements OnInit { return 0; }); this.showLoader = false; + },(error: HttpErrorResponse) => { + if(error.status === 401){ + this.chatService.refreshtoken() + this.loadUsers(); + } + }); } diff --git a/src/app/pages/chat/messages/messages.page.ts b/src/app/pages/chat/messages/messages.page.ts index 0f8c1a5df..2a26d3274 100644 --- a/src/app/pages/chat/messages/messages.page.ts +++ b/src/app/pages/chat/messages/messages.page.ts @@ -36,6 +36,7 @@ import { FileToBase64Service } from 'src/app/services/file/file-to-base64.servic import { Camera, CameraResultType, CameraSource } from '@capacitor/camera'; import { DomSanitizer } from '@angular/platform-browser'; import { SessionStore } from 'src/app/store/session.service'; +import { HttpErrorResponse } from '@angular/common/http'; const IMAGE_DIR = 'stored-images'; @@ -519,6 +520,12 @@ export class MessagesPage implements OnInit, AfterViewInit, OnDestroy { this.members = res['members']; this.dmUsers = res['members'].filter(data => data.username != this.sessionStore.user.UserName) this.showLoader = false; + },(error: HttpErrorResponse) => { + if(error.status === 401){ + this.chatService.refreshtoken() + this.getChatMembers(); + } + }); } diff --git a/src/app/services/chat.service.ts b/src/app/services/chat.service.ts index cc51df1e1..01e1801a5 100644 --- a/src/app/services/chat.service.ts +++ b/src/app/services/chat.service.ts @@ -350,4 +350,22 @@ export class ChatService { } + refreshtoken(){ + this.headers = this.headers.set('Authorization', SessionStore.user.BasicAuthKey); + let options = { + headers: this.headers + }; + return this.http.get(environment.apiURL+'UserAuthentication/RegenereChatToken',options).subscribe(async res => { + let data = { + status: res['status'], + data: { + userId: res['data'].userId, + authToken: res['data'].authToken } + } + SessionStore.user.ChatData = data + console.log(res) + console.log(SessionStore.user.ChatData) + }); + } + } diff --git a/src/app/shared/chat/edit-group/edit-group.page.ts b/src/app/shared/chat/edit-group/edit-group.page.ts index 6921d9ba9..ac40055f0 100644 --- a/src/app/shared/chat/edit-group/edit-group.page.ts +++ b/src/app/shared/chat/edit-group/edit-group.page.ts @@ -1,3 +1,4 @@ +import { HttpErrorResponse } from '@angular/common/http'; import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core'; import { ModalController, PickerController } from '@ionic/angular'; import { AuthService } from 'src/app/services/auth.service'; @@ -41,6 +42,12 @@ export class EditGroupPage implements OnInit { this.room = room['room']; this.groupName = this.room.name.split('-').join(' '); + },(error: HttpErrorResponse) => { + if(error.status === 401){ + this.chatService.refreshtoken() + this.getRoomInfo(); + } + }); } diff --git a/src/app/shared/chat/group-messages/group-contacts/group-contacts.page.ts b/src/app/shared/chat/group-messages/group-contacts/group-contacts.page.ts index c3afa32f0..9ff9610f7 100644 --- a/src/app/shared/chat/group-messages/group-contacts/group-contacts.page.ts +++ b/src/app/shared/chat/group-messages/group-contacts/group-contacts.page.ts @@ -1,4 +1,4 @@ -import { HttpClient, HttpHeaders } from '@angular/common/http'; +import { HttpClient, HttpErrorResponse, HttpHeaders } from '@angular/common/http'; import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core'; import { ModalController, NavParams } from '@ionic/angular'; import * as _ from 'lodash'; @@ -203,6 +203,12 @@ export class GroupContactsPage implements OnInit { this.showLoader = false; + },(error: HttpErrorResponse) => { + if(error.status === 401){ + this.chatService.refreshtoken() + this.loadUsers(); + } + }); } diff --git a/src/app/shared/chat/group-messages/group-messages.page.ts b/src/app/shared/chat/group-messages/group-messages.page.ts index 5403fe7e0..da3fa4db9 100644 --- a/src/app/shared/chat/group-messages/group-messages.page.ts +++ b/src/app/shared/chat/group-messages/group-messages.page.ts @@ -34,6 +34,7 @@ import { AlertController } from '@ionic/angular'; import { File } from '@awesome-cordova-plugins/file/ngx'; import { FileOpener } from '@awesome-cordova-plugins/file-opener/ngx'; import { SessionStore } from 'src/app/store/session.service'; +import { HttpErrorResponse } from '@angular/common/http'; /* @@ -366,6 +367,12 @@ export class GroupMessagesPage implements OnInit, OnChanges, AfterViewInit, OnDe this.allUsers = res['users'].filter(data => data.username != SessionStore.user.UserName); // + },(error: HttpErrorResponse) => { + if(error.status === 401){ + this.chatService.refreshtoken() + this.getChatMembers(); + } + }); } diff --git a/src/app/shared/chat/messages/contacts/contacts.page.ts b/src/app/shared/chat/messages/contacts/contacts.page.ts index 7e775e3e3..a0680ce79 100644 --- a/src/app/shared/chat/messages/contacts/contacts.page.ts +++ b/src/app/shared/chat/messages/contacts/contacts.page.ts @@ -1,4 +1,4 @@ -import { HttpHeaders } from '@angular/common/http'; +import { HttpErrorResponse, HttpHeaders } from '@angular/common/http'; import { Component, EventEmitter, OnInit, Output } from '@angular/core'; import { ModalController } from '@ionic/angular'; import { AuthService } from 'src/app/services/auth.service'; @@ -83,6 +83,12 @@ export class ContactsPage implements OnInit { return 0; }); this.showLoader = false; + },(error: HttpErrorResponse) => { + if(error.status === 401){ + this.chatService.refreshtoken() + this.loadUsers(); + } + }); } diff --git a/src/app/shared/chat/messages/messages.page.ts b/src/app/shared/chat/messages/messages.page.ts index 623155e2e..10fa2fc1f 100644 --- a/src/app/shared/chat/messages/messages.page.ts +++ b/src/app/shared/chat/messages/messages.page.ts @@ -31,6 +31,7 @@ import { AlertController, Platform } from '@ionic/angular'; import { File } from '@awesome-cordova-plugins/file/ngx'; import { FileOpener } from '@awesome-cordova-plugins/file-opener/ngx'; import { SessionStore } from 'src/app/store/session.service'; +import { HttpErrorResponse } from '@angular/common/http'; const IMAGE_DIR = 'stored-images'; @@ -524,6 +525,12 @@ export class MessagesPage implements OnInit, OnChanges, AfterViewInit, OnDestroy this.members = res['members']; this.dmUsers = res['members'].filter(data => data.username != this.sessionStore.user.UserName) this.showLoader = false; + },(error: HttpErrorResponse) => { + if(error.status === 401){ + this.chatService.refreshtoken() + this.getChatMembers(); + } + }); } diff --git a/src/app/shared/popover/chat-popover/chat-popover.page.ts b/src/app/shared/popover/chat-popover/chat-popover.page.ts index 4670a1537..cd63e74b9 100644 --- a/src/app/shared/popover/chat-popover/chat-popover.page.ts +++ b/src/app/shared/popover/chat-popover/chat-popover.page.ts @@ -5,6 +5,7 @@ import { ToastService } from 'src/app/services/toast.service'; import { ThemeService } from 'src/app/services/theme.service' import { SetRoomOwnerPage } from 'src/app/modals/set-room-owner/set-room-owner.page'; import { WsChatMethodsService } from 'src/app/services/chat/ws-chat-methods.service'; +import { HttpErrorResponse } from '@angular/common/http'; @Component({ @@ -168,6 +169,12 @@ export class ChatPopoverPage implements OnInit { }); } + },(error: HttpErrorResponse) => { + if(error.status === 401){ + this.chatService.refreshtoken() + this.deleteGroup(); + } + }); this.popoverController.dismiss('delete'); this.modalController.dismiss('delete'); diff --git a/src/app/shared/popover/messages-options/messages-options.page.ts b/src/app/shared/popover/messages-options/messages-options.page.ts index ba6589fa9..744631dd4 100644 --- a/src/app/shared/popover/messages-options/messages-options.page.ts +++ b/src/app/shared/popover/messages-options/messages-options.page.ts @@ -1,3 +1,4 @@ +import { HttpErrorResponse } from '@angular/common/http'; import { Component, OnInit } from '@angular/core'; import { ModalController, NavParams, PopoverController } from '@ionic/angular'; import { ChatService } from 'src/app/services/chat.service'; @@ -41,6 +42,12 @@ export class MessagesOptionsPage implements OnInit { let body = { "roomId": this.roomId } this.chatService.removeChatRoom(body).subscribe(res=>{ + },(error: HttpErrorResponse) => { + if(error.status === 401){ + this.chatService.refreshtoken() + this.closeChatRoom(); + } + }); this.close(); } From 1bdf3daf122b86d5f3468b7e6ce141c311948a0a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Eudes=20In=C3=A1cio?= Date: Thu, 9 Jun 2022 10:53:25 +0100 Subject: [PATCH 2/6] setHeader method created --- src/app/pages/chat/chat.page.ts | 12 +- src/app/services/chat.service.ts | 676 ++++++++++++++++--------------- 2 files changed, 353 insertions(+), 335 deletions(-) diff --git a/src/app/pages/chat/chat.page.ts b/src/app/pages/chat/chat.page.ts index f6916ddf7..23608cd60 100644 --- a/src/app/pages/chat/chat.page.ts +++ b/src/app/pages/chat/chat.page.ts @@ -133,6 +133,16 @@ export class ChatPage implements OnInit { ngOnInit() { + /* let data = { + status: "success", + data: { + userId: "CqYSKR5hrAumZihs7", + authToken: "bvh5BH98Av5ShMnEW94Cwm1Hf-yHEHbl121ijq5Odc_sdvs" + } + } + SessionStore.user.ChatData = data + SessionStore.save() */ + this.segment = "Contactos"; this.authService.userData$.subscribe((res: any) => { @@ -510,7 +520,7 @@ export class ChatPage implements OnInit { },(error: HttpErrorResponse) => { if(error.status === 401){ this.chatService.refreshtoken() - this.getChatMembers(); + //this.getChatMembers(); } }); diff --git a/src/app/services/chat.service.ts b/src/app/services/chat.service.ts index 01e1801a5..ca97becee 100644 --- a/src/app/services/chat.service.ts +++ b/src/app/services/chat.service.ts @@ -14,358 +14,366 @@ import { SessionStore } from '../store/session.service'; }) export class ChatService { headers: HttpHeaders; - options:any; - options1:any; - X_User_Id:any; - X_Auth_Token:any; - loggedUserChat:any; + options: any; + options1: any; + X_User_Id: any; + X_Auth_Token: any; + loggedUserChat: any; bindOnMessage: any; constructor( - private http:HttpClient, + private http: HttpClient, private httpService: HttpService, private authService: AuthService, private storage: Storage, - private storageService:StorageService, + private storageService: StorageService, public p: PermissionService) { - if(this.p.userPermission(this.p.permissionList.Chat.access)) { - this.loggedUserChat = authService.ValidatedUserChat; - this.headers = new HttpHeaders(); - - if(this.p.userPermission(this.p.permissionList.Chat.access)) { - // - this.headers = this.headers.set('X-User-Id', SessionStore.user.ChatData.data.userId); - this.headers = this.headers.set('X-Auth-Token', SessionStore.user.ChatData.data.authToken); - this.options = { - headers: this.headers, - }; - } - } + this.setheader() } - getDocumentDetails(url:string) { - let headersc = new HttpHeaders(); - headersc = headersc.set('X-User-Id', this.loggedUserChat['data'].userId); - headersc = headersc.set('X-Auth-Token', this.loggedUserChat['data'].authToken); - headersc = headersc.set('Sec-Fetch-Dest', 'attachment'); - headersc = headersc.set('Sec-Fetch-Mode', 'navigate'); - headersc = headersc.set('Cookie', 'rc_uid=fsMwcNdufWvdnChj7'); - headersc = headersc.set('Cookie', 'rc_token=MLbhikLQI4xo9_vL43HqheKPPbxjag7hKfwxe9AjcvY'); - // headersc = headersc.set("Host", "www.tabularium.pt"); - // headersc = headersc.set("Origin", "http://localhost:8100"); - headersc = headersc.set('Referer', 'http://localhost:8100/'); - let optionsc = { - headers: headersc, - withCredentials: true - }; - // let fullUrl = "https://www.tabularium.pt/" + url; - return this.http.get(url, optionsc).subscribe(()=>{ - // this.fileService.viewDocumentByUrl(url) - }); + getDocumentDetails(url: string) { + let headersc = new HttpHeaders(); + headersc = headersc.set('X-User-Id', this.loggedUserChat['data'].userId); + headersc = headersc.set('X-Auth-Token', this.loggedUserChat['data'].authToken); + headersc = headersc.set('Sec-Fetch-Dest', 'attachment'); + headersc = headersc.set('Sec-Fetch-Mode', 'navigate'); + headersc = headersc.set('Cookie', 'rc_uid=fsMwcNdufWvdnChj7'); + headersc = headersc.set('Cookie', 'rc_token=MLbhikLQI4xo9_vL43HqheKPPbxjag7hKfwxe9AjcvY'); + // headersc = headersc.set("Host", "www.tabularium.pt"); + // headersc = headersc.set("Origin", "http://localhost:8100"); + headersc = headersc.set('Referer', 'http://localhost:8100/'); + let optionsc = { + headers: headersc, + withCredentials: true + }; + // let fullUrl = "https://www.tabularium.pt/" + url; + return this.http.get(url, optionsc).subscribe(() => { + // this.fileService.viewDocumentByUrl(url) + }); + } + + getAllChannels() { + return this.http.get(environment.apiChatUrl + 'channels.list', this.options); + } + + getAllUserChannels() { + return this.http.get(environment.apiChatUrl + 'channels.list.joined', this.options); + } + + getAllRooms() { + return this.http.get(environment.apiChatUrl + 'rooms.get', this.options); + } + + getRoomInfo(roomId: any) { + let params = new HttpParams(); + params = params.set("roomId", roomId); + let opts = { + headers: this.headers, + params: params + } + return this.http.get(environment.apiChatUrl + 'rooms.info', opts); + } + + customsRooms(params: any) { + let opts = { + headers: this.headers, + params: params + } + return this.http.get(environment.apiChatUrl + 'rooms.get', opts); + } + getAllPrivateGroups() { + return this.http.get(environment.apiChatUrl + 'groups.list', this.options); + } + + getAllUsers() { + console.log(this.options) + return this.http.get(environment.apiChatUrl + 'users.list', this.options); + } + getAllConnectedUsers() { + return this.http.get(environment.apiChatUrl + 'users.presence', this.options); + } + + //Load messages from roomId + getAllDirectMessages() { + return this.http.get(environment.apiChatUrl + 'im.list', this.options); + } + //Load messages from roomId + getRoomMessages(roomId: any) { + + let params = new HttpParams(); + params = params.set("roomId", roomId); + + let opts = { + headers: this.headers, + params: params, + } + return this.http.get(environment.apiChatUrl + 'im.history', opts); + } + + sendMessage(body: any) { + let opts = { + headers: this.headers, + } + return this.http.post(environment.apiChatUrl + 'chat.sendMessage', body, opts); + } + + uploadFile(formData: any, rid: string) { + let url = environment.apiChatUrl + 'rooms.upload/' + rid; + let opts = { + headers: this.headers, + } + return this.http.post(url, formData, opts); + } + + deleteMessage(body: any) { + let opts = { + headers: this.headers, + } + return this.http.post(environment.apiChatUrl + 'chat.delete', body, opts); + } + + leaveRoom(body: any) { + let opts = { + headers: this.headers, + } + return this.http.post(environment.apiChatUrl + 'rooms.leave', body, opts); + } + //Load members from a chat + getMembers(roomId: any) { + + let params = new HttpParams(); + params = params.set("roomId", roomId); + + let opts = { + headers: this.headers, + params: params + } + return this.http.get(environment.apiChatUrl + 'im.members', opts); + } + + getMemberInfo(userId: string) { + let params = new HttpParams(); + params = params.set("userId", userId); + + let opts = { + headers: this.headers, + params: params + } + return this.http.get(environment.apiChatUrl + 'users.info', opts); + } + + setUserStatus(body: any) { + let opts = { + headers: this.headers, + } + return this.http.post(environment.apiChatUrl + 'users.setStatus', body, this.options); + } + + removeChatRoom(body: any) { + let opts = { + headers: this.headers, + } + return this.http.post(environment.apiChatUrl + 'im.delete', body, this.options); + } + + createRoom(body: any) { + return this.http.post(environment.apiChatUrl + 'im.create', body, this.options); + } + getDirectMessage(roomId: string) { + let params = new HttpParams(); + params = params.set("roomId", roomId); + + let opts = { + headers: this.headers, + params: params + } + return this.http.get(environment.apiChatUrl + 'im.messages', opts); + } + + /* GROUPS */ + addGroup(body: any) { + + return this.http.post(environment.apiChatUrl + 'groups.create', body, this.options); + } + setGroupCustomFields(body: any) { + return this.http.post(environment.apiChatUrl + 'groups.setCustomFields', body, this.options); + } + + getGroupMembers(roomId: string) { + let params = new HttpParams(); + let url = environment.apiChatUrl + 'groups.members'; + params = params.set("roomId", roomId); + + let opts = { + headers: this.headers, + params: params + } + return this.http.get(url, opts); + } + + getChannelMembers(roomId: string) { + let params = new HttpParams(); + let url = environment.apiChatUrl + 'channels.members'; + params = params.set("roomId", roomId); + + let opts = { + headers: this.headers, + params: params + } + return this.http.get(url, opts); + } + /* GROUP MESSAGES */ + getPrivateGroupMessages(roomId: any) { + + let params = new HttpParams(); + params = params.set("roomId", roomId); + + let opts = { + headers: this.headers, + params: params + } + return this.http.get(environment.apiChatUrl + 'groups.history', opts); + } + getPublicGroupMessages(roomId: any) { + let params = new HttpParams(); + params = params.set("roomId", roomId); + + let opts = { + headers: this.headers, + params: params + } + return this.http.get(environment.apiChatUrl + 'channels.history', opts); + } + closeGroup(body: any) { + return this.http.post(environment.apiChatUrl + 'groups.close', body, this.options); + } + closeChannel(body: any) { + return this.http.post(environment.apiChatUrl + 'channels.close', body, this.options); + } + leaveGroup(body: any) { + return this.http.post(environment.apiChatUrl + 'groups.leave', body, this.options); + } + leaveChannel(body: any) { + return this.http.post(environment.apiChatUrl + 'channels.leave', body, this.options); + } + removeChannelMember(body: any) { + let opts = { + headers: this.headers, + } + return this.http.post(environment.apiChatUrl + 'channels.kick', body, opts); + } + + addChannelOwner(body: any) { + return this.http.post(environment.apiChatUrl + 'channels.addOwner', body, this.options); + } + + addGroupOwner(body: any) { + return this.http.post(environment.apiChatUrl + 'groups.addOwner', body, this.options); + } + + deleteGroup(body: any) { + return this.http.post(environment.apiChatUrl + 'groups.delete', body, this.options); + } + + deleteChannel(body: any) { + return this.http.post(environment.apiChatUrl + 'channels.delete', body, this.options); + } + addUserToGroup(body: any) { + return this.http.post(environment.apiChatUrl + 'groups.invite', body, this.options); + } + getGroupInfo(roomId: any) { + let params = new HttpParams(); + params = params.set("roomId", roomId); + + let opts = { + headers: this.headers, + params: params + } + return this.http.get(environment.apiChatUrl + 'groups.info', opts); + } + renameGroup(body: any) { + return this.http.post(environment.apiChatUrl + 'groups.rename', body, this.options); + } + removeGroupMember(body: any) { + let opts = { + headers: this.headers, + } + return this.http.post(environment.apiChatUrl + 'groups.kick', body, opts); + } + + async subscribe(roomId: any) { + + let params = new HttpParams(); + params = params.set("roomId", roomId); + let opts = { + headers: this.headers, + params: params } - getAllChannels() { - return this.http.get(environment.apiChatUrl+'channels.list', this.options); - } + this.http.get(environment.apiChatUrl + 'im.messages', opts).subscribe(async res => { - getAllUserChannels() { - return this.http.get(environment.apiChatUrl+'channels.list.joined', this.options); - } - getAllRooms() { - return this.http.get(environment.apiChatUrl+'rooms.get', this.options); - } - - getRoomInfo(roomId:any) { - let params = new HttpParams(); - params = params.set("roomId", roomId); - let opts = { - headers: this.headers, - params: params - } - return this.http.get(environment.apiChatUrl+'rooms.info', opts); - } - - customsRooms(params:any){ - let opts = { - headers: this.headers, - params: params - } - return this.http.get(environment.apiChatUrl+'rooms.get', opts); - } - getAllPrivateGroups(){ - return this.http.get(environment.apiChatUrl+'groups.list', this.options); - } - - getAllUsers(){ - return this.http.get(environment.apiChatUrl+'users.list', this.options); - } - getAllConnectedUsers(){ - return this.http.get(environment.apiChatUrl+'users.presence', this.options); - } - - //Load messages from roomId - getAllDirectMessages(){ - return this.http.get(environment.apiChatUrl+'im.list', this.options); - } - //Load messages from roomId - getRoomMessages(roomId:any){ - - let params = new HttpParams(); - params = params.set("roomId", roomId); - - let opts = { - headers: this.headers, - params: params, - } - return this.http.get(environment.apiChatUrl+'im.history', opts); - } - - sendMessage(body:any) { - let opts = { - headers: this.headers, - } - return this.http.post(environment.apiChatUrl+'chat.sendMessage', body, opts); - } - - uploadFile(formData:any, rid:string){ - let url = environment.apiChatUrl+'rooms.upload/'+rid; - let opts = { - headers: this.headers, - } - return this.http.post(url, formData, opts); - } - - deleteMessage(body:any){ - let opts = { - headers: this.headers, - } - return this.http.post(environment.apiChatUrl+'chat.delete', body, opts); - } - - leaveRoom(body:any){ - let opts = { - headers: this.headers, - } - return this.http.post(environment.apiChatUrl+'rooms.leave', body, opts); - } - //Load members from a chat - getMembers(roomId:any){ - - let params = new HttpParams(); - params = params.set("roomId", roomId); - - let opts = { - headers: this.headers, - params: params - } - return this.http.get(environment.apiChatUrl+'im.members', opts); - } - - getMemberInfo(userId:string){ - let params = new HttpParams(); - params = params.set("userId", userId); - - let opts = { - headers: this.headers, - params: params - } - return this.http.get(environment.apiChatUrl+'users.info', opts); - } - - setUserStatus(body:any){ - let opts = { - headers: this.headers, - } - return this.http.post(environment.apiChatUrl+'users.setStatus', body, this.options); - } - - removeChatRoom(body:any){ - let opts = { - headers: this.headers, - } - return this.http.post(environment.apiChatUrl+'im.delete', body, this.options); - } - - createRoom(body:any){ - return this.http.post(environment.apiChatUrl+'im.create', body, this.options); - } - getDirectMessage(roomId:string){ - let params = new HttpParams(); - params = params.set("roomId", roomId); - - let opts = { - headers: this.headers, - params: params - } - return this.http.get(environment.apiChatUrl+'im.messages', opts); - } - - /* GROUPS */ - addGroup(body:any){ - - return this.http.post(environment.apiChatUrl+'groups.create', body, this.options); - } - setGroupCustomFields(body:any){ - return this.http.post(environment.apiChatUrl+'groups.setCustomFields', body, this.options); - } - - getGroupMembers(roomId:string){ - let params = new HttpParams(); - let url=environment.apiChatUrl+'groups.members'; - params = params.set("roomId", roomId); - - let opts = { - headers: this.headers, - params: params - } - return this.http.get(url, opts); - } - - getChannelMembers(roomId:string){ - let params = new HttpParams(); - let url=environment.apiChatUrl+'channels.members'; - params = params.set("roomId", roomId); - - let opts = { - headers: this.headers, - params: params - } - return this.http.get(url, opts); - } - /* GROUP MESSAGES */ - getPrivateGroupMessages(roomId:any){ - - let params = new HttpParams(); - params = params.set("roomId", roomId); - - let opts = { - headers: this.headers, - params: params - } - return this.http.get(environment.apiChatUrl+'groups.history', opts); - } - getPublicGroupMessages(roomId:any){ - let params = new HttpParams(); - params = params.set("roomId", roomId); - - let opts = { - headers: this.headers, - params: params - } - return this.http.get(environment.apiChatUrl+'channels.history', opts); - } - closeGroup(body:any){ - return this.http.post(environment.apiChatUrl+'groups.close', body, this.options); - } - closeChannel(body:any){ - return this.http.post(environment.apiChatUrl+'channels.close', body, this.options); - } - leaveGroup(body:any){ - return this.http.post(environment.apiChatUrl+'groups.leave', body, this.options); - } - leaveChannel(body:any){ - return this.http.post(environment.apiChatUrl+'channels.leave', body, this.options); - } - removeChannelMember(body:any){ - let opts = { - headers: this.headers, - } - return this.http.post(environment.apiChatUrl+'channels.kick', body, opts); - } - - addChannelOwner(body:any){ - return this.http.post(environment.apiChatUrl+'channels.addOwner', body, this.options); - } - - addGroupOwner(body:any){ - return this.http.post(environment.apiChatUrl+'groups.addOwner', body, this.options); - } - - deleteGroup(body:any){ - return this.http.post(environment.apiChatUrl+'groups.delete', body, this.options); - } - - deleteChannel(body:any){ - return this.http.post(environment.apiChatUrl+'channels.delete', body, this.options); - } - addUserToGroup(body:any){ - return this.http.post(environment.apiChatUrl+'groups.invite', body, this.options); - } - getGroupInfo(roomId:any){ - let params = new HttpParams(); - params = params.set("roomId", roomId); - - let opts = { - headers: this.headers, - params: params - } - return this.http.get(environment.apiChatUrl+'groups.info', opts); - } - renameGroup(body:any){ - return this.http.post(environment.apiChatUrl+'groups.rename', body, this.options); - } - removeGroupMember(body:any){ - let opts = { - headers: this.headers, - } - return this.http.post(environment.apiChatUrl+'groups.kick', body, opts); - } - - async subscribe(roomId:any) { - - let params = new HttpParams(); - params = params.set("roomId", roomId); - let opts = { - headers: this.headers, - params: params + if (res == 502) { + // Connection timeout + // happens when the connection was pending for too long + // let's reconnect + await this.subscribe(roomId); + } else if (res != 200) { + // Show Error + //showMessage(response.statusText); + this.getRoomMessages(roomId) + // Reconnect in one second + await new Promise(resolve => setTimeout(resolve, 1000)); + await this.subscribe(roomId); + } else { + // Got message + //let message = await response.text(); + this.getRoomMessages(roomId) + await this.subscribe(roomId); } - this.http.get(environment.apiChatUrl+'im.messages', opts).subscribe(async res => { - + }) - if (res == 502) { - // Connection timeout - // happens when the connection was pending for too long - // let's reconnect - await this.subscribe(roomId); - } else if (res != 200) { - // Show Error - //showMessage(response.statusText); - this.getRoomMessages(roomId) - // Reconnect in one second - await new Promise(resolve => setTimeout(resolve, 1000)); - await this.subscribe(roomId); - } else { - // Got message - //let message = await response.text(); - this.getRoomMessages(roomId) - await this.subscribe(roomId); + + } + + setheader() { + if (this.p.userPermission(this.p.permissionList.Chat.access)) { + this.loggedUserChat = this.authService.ValidatedUserChat; + this.headers = new HttpHeaders(); + + if (this.p.userPermission(this.p.permissionList.Chat.access)) { + // + this.headers = this.headers.set('X-User-Id', SessionStore.user.ChatData.data.userId); + this.headers = this.headers.set('X-Auth-Token', SessionStore.user.ChatData.data.authToken); + this.options = { + headers: this.headers, + }; + } + } + } + + refreshtoken() { + this.headers = this.headers.set('Authorization', SessionStore.user.BasicAuthKey); + let options = { + headers: this.headers + }; + return this.http.get(environment.apiURL + 'UserAuthentication/RegenereChatToken', options).subscribe(async res => { + let data = { + status: res['status'], + data: { + userId: res['data'].userId, + authToken: res['data'].authToken } - - }) - - - } - - refreshtoken(){ - this.headers = this.headers.set('Authorization', SessionStore.user.BasicAuthKey); - let options = { - headers: this.headers - }; - return this.http.get(environment.apiURL+'UserAuthentication/RegenereChatToken',options).subscribe(async res => { - let data = { - status: res['status'], - data: { - userId: res['data'].userId, - authToken: res['data'].authToken } - } - SessionStore.user.ChatData = data - console.log(res) - console.log(SessionStore.user.ChatData) - }); - } + } + SessionStore.user.ChatData = data + SessionStore.save() + this.setheader() + console.log(res) + console.log(SessionStore.user.ChatData) + }); + } } From 4275d71a437884a6a8a8fd57e0eab81edcdf683b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Eudes=20In=C3=A1cio?= Date: Fri, 10 Jun 2022 09:42:41 +0100 Subject: [PATCH 3/6] Refresh token done --- .../chat-options-features.page.ts | 14 +------------- .../modals/set-room-owner/set-room-owner.page.ts | 2 +- src/app/pages/chat/chat.page.ts | 10 +++------- src/app/pages/chat/edit-group/edit-group.page.ts | 6 +----- .../group-contacts/group-contacts.page.ts | 7 +------ .../chat/group-messages/group-messages.page.ts | 7 +------ .../pages/chat/messages/contacts/contacts.page.ts | 7 +------ src/app/pages/chat/messages/messages.page.ts | 7 +------ src/app/pages/chat/new-group/new-group.page.ts | 1 + src/app/shared/chat/edit-group/edit-group.page.ts | 7 +------ .../group-contacts/group-contacts.page.ts | 7 +------ .../chat/group-messages/group-messages.page.ts | 7 +------ .../shared/chat/messages/contacts/contacts.page.ts | 8 ++------ src/app/shared/chat/messages/messages.page.ts | 7 +------ .../popover/chat-popover/chat-popover.page.ts | 8 +------- .../messages-options/messages-options.page.ts | 7 +------ 16 files changed, 19 insertions(+), 93 deletions(-) diff --git a/src/app/modals/chat-options-features/chat-options-features.page.ts b/src/app/modals/chat-options-features/chat-options-features.page.ts index a4a5a91cb..b384af419 100644 --- a/src/app/modals/chat-options-features/chat-options-features.page.ts +++ b/src/app/modals/chat-options-features/chat-options-features.page.ts @@ -48,7 +48,7 @@ export class ChatOptionsFeaturesPage implements OnInit { } ngOnInit() { - + this.chatService.refreshtoken(); } notImplemented() { @@ -118,12 +118,6 @@ export class ChatOptionsFeaturesPage implements OnInit { this.chatService.sendMessage(body).subscribe(res=> { // - },(error: HttpErrorResponse) => { - if(error.status === 401){ - this.chatService.refreshtoken() - this.chatService.sendMessage(body); - } - }); // }; @@ -149,12 +143,6 @@ export class ChatOptionsFeaturesPage implements OnInit { this.chatService.sendMessage(body).subscribe(res=> { - },(error: HttpErrorResponse) => { - if(error.status === 401){ - this.chatService.refreshtoken() - this.chatService.sendMessage(body); - } - }); } diff --git a/src/app/modals/set-room-owner/set-room-owner.page.ts b/src/app/modals/set-room-owner/set-room-owner.page.ts index fd44f44c7..823571f20 100644 --- a/src/app/modals/set-room-owner/set-room-owner.page.ts +++ b/src/app/modals/set-room-owner/set-room-owner.page.ts @@ -33,7 +33,7 @@ export class SetRoomOwnerPage implements OnInit { } ngOnInit() { - + this.chatService.refreshtoken(); } async close(){ diff --git a/src/app/pages/chat/chat.page.ts b/src/app/pages/chat/chat.page.ts index 23608cd60..9c2f930f0 100644 --- a/src/app/pages/chat/chat.page.ts +++ b/src/app/pages/chat/chat.page.ts @@ -133,7 +133,7 @@ export class ChatPage implements OnInit { ngOnInit() { - /* let data = { + /* let data = { status: "success", data: { userId: "CqYSKR5hrAumZihs7", @@ -142,6 +142,8 @@ export class ChatPage implements OnInit { } SessionStore.user.ChatData = data SessionStore.save() */ + console.log(SessionStore.user.ChatData.data.authToken) + this.chatService.refreshtoken(); this.segment = "Contactos"; @@ -517,12 +519,6 @@ export class ChatPage implements OnInit { // }*/ - },(error: HttpErrorResponse) => { - if(error.status === 401){ - this.chatService.refreshtoken() - //this.getChatMembers(); - } - }); } diff --git a/src/app/pages/chat/edit-group/edit-group.page.ts b/src/app/pages/chat/edit-group/edit-group.page.ts index 0a8c3235d..206348eff 100644 --- a/src/app/pages/chat/edit-group/edit-group.page.ts +++ b/src/app/pages/chat/edit-group/edit-group.page.ts @@ -29,6 +29,7 @@ export class EditGroupPage implements OnInit { } ngOnInit() { + this.chatService.refreshtoken(); this.getRoomInfo(); } @@ -37,11 +38,6 @@ export class EditGroupPage implements OnInit { this.room = room['room']; this.groupName = this.room.name.split('-').join(' '); - },(error: HttpErrorResponse) => { - if(error.status === 401) { - this.chatService.refreshtoken(); - this.getRoomInfo() - } }); } diff --git a/src/app/pages/chat/group-messages/group-contacts/group-contacts.page.ts b/src/app/pages/chat/group-messages/group-contacts/group-contacts.page.ts index ca0ff798f..405ce8086 100644 --- a/src/app/pages/chat/group-messages/group-contacts/group-contacts.page.ts +++ b/src/app/pages/chat/group-messages/group-contacts/group-contacts.page.ts @@ -56,6 +56,7 @@ export class GroupContactsPage implements OnInit { } ngOnInit() { + this.chatService.refreshtoken(); this.loadUsers(); this.getMembers(); @@ -85,12 +86,6 @@ export class GroupContactsPage implements OnInit { this.showLoader = false; - },(error: HttpErrorResponse) => { - if(error.status === 401){ - this.chatService.refreshtoken() - this.loadUsers(); - } - }); } diff --git a/src/app/pages/chat/group-messages/group-messages.page.ts b/src/app/pages/chat/group-messages/group-messages.page.ts index 212b2f835..73e60aa79 100644 --- a/src/app/pages/chat/group-messages/group-messages.page.ts +++ b/src/app/pages/chat/group-messages/group-messages.page.ts @@ -133,6 +133,7 @@ export class GroupMessagesPage implements OnInit, AfterViewInit, OnDestroy { } ngOnInit() { + this.chatService.refreshtoken(); this.loggedUser = this.loggedUserChat; this.getRoomInfo(); @@ -381,12 +382,6 @@ export class GroupMessagesPage implements OnInit, AfterViewInit, OnDestroy { this.allUsers = res['users'].filter(data => data.username != SessionStore.user.UserName); - },(error: HttpErrorResponse) => { - if(error.status === 401){ - this.chatService.refreshtoken() - this.getChatMembers(); - } - }); } diff --git a/src/app/pages/chat/messages/contacts/contacts.page.ts b/src/app/pages/chat/messages/contacts/contacts.page.ts index 40dd5ac8b..0983ecbbe 100644 --- a/src/app/pages/chat/messages/contacts/contacts.page.ts +++ b/src/app/pages/chat/messages/contacts/contacts.page.ts @@ -43,6 +43,7 @@ export class ContactsPage implements OnInit { } ngOnInit() { + this.chatService.refreshtoken(); this.loadUsers(); } @@ -67,12 +68,6 @@ export class ContactsPage implements OnInit { return 0; }); this.showLoader = false; - },(error: HttpErrorResponse) => { - if(error.status === 401){ - this.chatService.refreshtoken() - this.loadUsers(); - } - }); } diff --git a/src/app/pages/chat/messages/messages.page.ts b/src/app/pages/chat/messages/messages.page.ts index 2a26d3274..73062561a 100644 --- a/src/app/pages/chat/messages/messages.page.ts +++ b/src/app/pages/chat/messages/messages.page.ts @@ -157,6 +157,7 @@ export class MessagesPage implements OnInit, AfterViewInit, OnDestroy { } ngOnInit() { + this.chatService.refreshtoken(); this.wsChatMethodsService.getUserOfRoom(this.roomId).then((value) => { }) @@ -520,12 +521,6 @@ export class MessagesPage implements OnInit, AfterViewInit, OnDestroy { this.members = res['members']; this.dmUsers = res['members'].filter(data => data.username != this.sessionStore.user.UserName) this.showLoader = false; - },(error: HttpErrorResponse) => { - if(error.status === 401){ - this.chatService.refreshtoken() - this.getChatMembers(); - } - }); } diff --git a/src/app/pages/chat/new-group/new-group.page.ts b/src/app/pages/chat/new-group/new-group.page.ts index e1c5889df..6a1760090 100644 --- a/src/app/pages/chat/new-group/new-group.page.ts +++ b/src/app/pages/chat/new-group/new-group.page.ts @@ -43,6 +43,7 @@ export class NewGroupPage implements OnInit { } ngOnInit() { + this.chatService.refreshtoken(); console.log(this.documents) } diff --git a/src/app/shared/chat/edit-group/edit-group.page.ts b/src/app/shared/chat/edit-group/edit-group.page.ts index ac40055f0..dcd9ec80d 100644 --- a/src/app/shared/chat/edit-group/edit-group.page.ts +++ b/src/app/shared/chat/edit-group/edit-group.page.ts @@ -34,6 +34,7 @@ export class EditGroupPage implements OnInit { } ngOnInit() { + this.chatService.refreshtoken(); this.getRoomInfo(); } @@ -42,12 +43,6 @@ export class EditGroupPage implements OnInit { this.room = room['room']; this.groupName = this.room.name.split('-').join(' '); - },(error: HttpErrorResponse) => { - if(error.status === 401){ - this.chatService.refreshtoken() - this.getRoomInfo(); - } - }); } diff --git a/src/app/shared/chat/group-messages/group-contacts/group-contacts.page.ts b/src/app/shared/chat/group-messages/group-contacts/group-contacts.page.ts index 9ff9610f7..d1b369472 100644 --- a/src/app/shared/chat/group-messages/group-contacts/group-contacts.page.ts +++ b/src/app/shared/chat/group-messages/group-contacts/group-contacts.page.ts @@ -57,6 +57,7 @@ export class GroupContactsPage implements OnInit { } ngOnInit() { + this.chatService.refreshtoken(); //this.getRoomInfo(); this.loadUsers(); @@ -203,12 +204,6 @@ export class GroupContactsPage implements OnInit { this.showLoader = false; - },(error: HttpErrorResponse) => { - if(error.status === 401){ - this.chatService.refreshtoken() - this.loadUsers(); - } - }); } diff --git a/src/app/shared/chat/group-messages/group-messages.page.ts b/src/app/shared/chat/group-messages/group-messages.page.ts index da3fa4db9..aef5acf91 100644 --- a/src/app/shared/chat/group-messages/group-messages.page.ts +++ b/src/app/shared/chat/group-messages/group-messages.page.ts @@ -160,6 +160,7 @@ export class GroupMessagesPage implements OnInit, OnChanges, AfterViewInit, OnDe } ngOnInit() { + this.chatService.refreshtoken(); console.log(this.roomId) this.loggedUser = this.loggedUserChat; //setTimeout(() => { @@ -367,12 +368,6 @@ export class GroupMessagesPage implements OnInit, OnChanges, AfterViewInit, OnDe this.allUsers = res['users'].filter(data => data.username != SessionStore.user.UserName); // - },(error: HttpErrorResponse) => { - if(error.status === 401){ - this.chatService.refreshtoken() - this.getChatMembers(); - } - }); } diff --git a/src/app/shared/chat/messages/contacts/contacts.page.ts b/src/app/shared/chat/messages/contacts/contacts.page.ts index a0680ce79..cf0821c9b 100644 --- a/src/app/shared/chat/messages/contacts/contacts.page.ts +++ b/src/app/shared/chat/messages/contacts/contacts.page.ts @@ -42,7 +42,9 @@ export class ContactsPage implements OnInit { } ngOnInit() { + this.loadUsers(); + this.chatService.refreshtoken(); } onChange(event){ @@ -83,12 +85,6 @@ export class ContactsPage implements OnInit { return 0; }); this.showLoader = false; - },(error: HttpErrorResponse) => { - if(error.status === 401){ - this.chatService.refreshtoken() - this.loadUsers(); - } - }); } diff --git a/src/app/shared/chat/messages/messages.page.ts b/src/app/shared/chat/messages/messages.page.ts index 10fa2fc1f..ad1a1ac3f 100644 --- a/src/app/shared/chat/messages/messages.page.ts +++ b/src/app/shared/chat/messages/messages.page.ts @@ -155,6 +155,7 @@ export class MessagesPage implements OnInit, OnChanges, AfterViewInit, OnDestroy } ngOnInit() { + this.chatService.refreshtoken(); this.scrollToBottom(); this.getChatMembers(); @@ -525,12 +526,6 @@ export class MessagesPage implements OnInit, OnChanges, AfterViewInit, OnDestroy this.members = res['members']; this.dmUsers = res['members'].filter(data => data.username != this.sessionStore.user.UserName) this.showLoader = false; - },(error: HttpErrorResponse) => { - if(error.status === 401){ - this.chatService.refreshtoken() - this.getChatMembers(); - } - }); } diff --git a/src/app/shared/popover/chat-popover/chat-popover.page.ts b/src/app/shared/popover/chat-popover/chat-popover.page.ts index cd63e74b9..3e81f382d 100644 --- a/src/app/shared/popover/chat-popover/chat-popover.page.ts +++ b/src/app/shared/popover/chat-popover/chat-popover.page.ts @@ -32,7 +32,7 @@ export class ChatPopoverPage implements OnInit { } ngOnInit() { - + this.chatService.refreshtoken(); } close(action:any){ @@ -169,12 +169,6 @@ export class ChatPopoverPage implements OnInit { }); } - },(error: HttpErrorResponse) => { - if(error.status === 401){ - this.chatService.refreshtoken() - this.deleteGroup(); - } - }); this.popoverController.dismiss('delete'); this.modalController.dismiss('delete'); diff --git a/src/app/shared/popover/messages-options/messages-options.page.ts b/src/app/shared/popover/messages-options/messages-options.page.ts index 744631dd4..7b79121bc 100644 --- a/src/app/shared/popover/messages-options/messages-options.page.ts +++ b/src/app/shared/popover/messages-options/messages-options.page.ts @@ -25,6 +25,7 @@ export class MessagesOptionsPage implements OnInit { } ngOnInit() { + this.chatService.refreshtoken(); } close(){ @@ -42,12 +43,6 @@ export class MessagesOptionsPage implements OnInit { let body = { "roomId": this.roomId } this.chatService.removeChatRoom(body).subscribe(res=>{ - },(error: HttpErrorResponse) => { - if(error.status === 401){ - this.chatService.refreshtoken() - this.closeChatRoom(); - } - }); this.close(); } From 5534ea728f1d06e10d1c31ccde8fe175f374439e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Eudes=20In=C3=A1cio?= Date: Fri, 10 Jun 2022 13:44:48 +0100 Subject: [PATCH 4/6] Bug on login when chat is down --- src/app/services/chat.service.ts | 24 ++++++++++++++---------- 1 file changed, 14 insertions(+), 10 deletions(-) diff --git a/src/app/services/chat.service.ts b/src/app/services/chat.service.ts index ca97becee..1db701a39 100644 --- a/src/app/services/chat.service.ts +++ b/src/app/services/chat.service.ts @@ -340,18 +340,22 @@ export class ChatService { } setheader() { - if (this.p.userPermission(this.p.permissionList.Chat.access)) { - this.loggedUserChat = this.authService.ValidatedUserChat; - this.headers = new HttpHeaders(); - + try { if (this.p.userPermission(this.p.permissionList.Chat.access)) { - // - this.headers = this.headers.set('X-User-Id', SessionStore.user.ChatData.data.userId); - this.headers = this.headers.set('X-Auth-Token', SessionStore.user.ChatData.data.authToken); - this.options = { - headers: this.headers, - }; + this.loggedUserChat = this.authService.ValidatedUserChat; + this.headers = new HttpHeaders(); + + if (this.p.userPermission(this.p.permissionList.Chat.access)) { + // + this.headers = this.headers.set('X-User-Id', SessionStore.user.ChatData.data.userId); + this.headers = this.headers.set('X-Auth-Token', SessionStore.user.ChatData.data.authToken); + this.options = { + headers: this.headers, + }; + } } + } catch (error) { + console.log(error) } } From 3c716ee3eaa05e9dc85bc8f5e5e8772ad9f0791c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Eudes=20In=C3=A1cio?= Date: Sun, 12 Jun 2022 23:43:18 +0100 Subject: [PATCH 5/6] verification added on group option --- .../group-messages/group-messages.page.ts | 155 +++++++++--------- 1 file changed, 81 insertions(+), 74 deletions(-) diff --git a/src/app/shared/chat/group-messages/group-messages.page.ts b/src/app/shared/chat/group-messages/group-messages.page.ts index aef5acf91..7b4e79ba8 100644 --- a/src/app/shared/chat/group-messages/group-messages.page.ts +++ b/src/app/shared/chat/group-messages/group-messages.page.ts @@ -101,6 +101,7 @@ export class GroupMessagesPage implements OnInit, OnChanges, AfterViewInit, OnDe audioPermissionStatus: 'granted'| 'denied' | 'prompt' | null = null sessionStore = SessionStore + groupAdminId = ""; constructor( public wsChatMethodsService: WsChatMethodsService, @@ -164,7 +165,7 @@ export class GroupMessagesPage implements OnInit, OnChanges, AfterViewInit, OnDe console.log(this.roomId) this.loggedUser = this.loggedUserChat; //setTimeout(() => { - this.getRoomInfo(); + this.getRoomInfo() //}, 1000); this.getChatMembers(); //this.getMessageDB(); @@ -401,7 +402,9 @@ export class GroupMessagesPage implements OnInit, OnChanges, AfterViewInit, OnDe async getRoomInfo() { this.wsChatMethodsService.getGroupRoom(this.roomId).loadHistory({}); let room = await this.chatService.getRoomInfo(this.roomId).toPromise(); + console.log('ROOM',room) this.room = room['room']; + this.groupAdminId = this.room.u._id; if (this.room.name) { this.roomName = this.room.name.split('-').join(' '); } @@ -503,82 +506,86 @@ export class GroupMessagesPage implements OnInit, OnChanges, AfterViewInit, OnDe } async openGroupMessagesOptions() { - - const enterAnimation = (baseEl: any) => { - const backdropAnimation = this.animationController.create() - .addElement(baseEl.querySelector('ion-backdrop')!) - .fromTo('opacity', '0.01', 'var(--backdrop-opacity)'); - - const wrapperAnimation = this.animationController.create() - .addElement(baseEl.querySelector('.modal-wrapper')!) - .keyframes([ - { offset: 0, opacity: '1', right: '-100%' }, - { offset: 1, opacity: '1', right: '0px' } - ]); - - return this.animationController.create() - .addElement(baseEl) - .easing('ease-out') - .duration(500) - .addAnimation([backdropAnimation, wrapperAnimation]); + alert(this.groupAdminId) + if(SessionStore.user.ChatData.data.userId == this.groupAdminId) { + const enterAnimation = (baseEl: any) => { + const backdropAnimation = this.animationController.create() + .addElement(baseEl.querySelector('ion-backdrop')!) + .fromTo('opacity', '0.01', 'var(--backdrop-opacity)'); + + const wrapperAnimation = this.animationController.create() + .addElement(baseEl.querySelector('.modal-wrapper')!) + .keyframes([ + { offset: 0, opacity: '1', right: '-100%' }, + { offset: 1, opacity: '1', right: '0px' } + ]); + + return this.animationController.create() + .addElement(baseEl) + .easing('ease-out') + .duration(500) + .addAnimation([backdropAnimation, wrapperAnimation]); + } + + const leaveAnimation = (baseEl: any) => { + return enterAnimation(baseEl).direction('reverse'); + } + + + /* const popover = await this.popoverController.create({ + component: MessagesOptionsPage, + componentProps: { + roomId: this.dm._id, + }, + cssClass: 'messages-options', + event: ev, + translucent: true, + }); + return await popover.present(); */ + + + + + const modal = await this.modalController.create({ + enterAnimation, + leaveAnimation, + component: ChatPopoverPage, + cssClass: 'model profile-modal search-submodal', + componentProps: { + roomId: this.roomId, + members: this.members, + } + }); + await modal.present(); + modal.onDidDismiss().then(res => { + + if (res.data == 'leave') { + this.getRoomInfo(); + this.closeAllDesktopComponents.emit(); + this.showEmptyContainer.emit(); + this.wsChatMethodsService.hidingRoom(this.roomId); + } + else if (res.data == 'delete') { + this.closeAllDesktopComponents.emit(); + this.showEmptyContainer.emit(); + } + else if (res.data == 'cancel') { + + } + else if (res.data == 'edit') { + + //this.closeAllDesktopComponents.emit(); + this.openEditGroupPage.emit(this.roomId); + } + else { + this.roomName = res.data.name.split('-').join(' '); + + }; + + }); } - const leaveAnimation = (baseEl: any) => { - return enterAnimation(baseEl).direction('reverse'); - } - - - /* const popover = await this.popoverController.create({ - component: MessagesOptionsPage, - componentProps: { - roomId: this.dm._id, - }, - cssClass: 'messages-options', - event: ev, - translucent: true, - }); - return await popover.present(); */ - - - - const modal = await this.modalController.create({ - enterAnimation, - leaveAnimation, - component: ChatPopoverPage, - cssClass: 'model profile-modal search-submodal', - componentProps: { - roomId: this.roomId, - members: this.members, - } - }); - await modal.present(); - modal.onDidDismiss().then(res => { - - if (res.data == 'leave') { - this.getRoomInfo(); - this.closeAllDesktopComponents.emit(); - this.showEmptyContainer.emit(); - this.wsChatMethodsService.hidingRoom(this.roomId); - } - else if (res.data == 'delete') { - this.closeAllDesktopComponents.emit(); - this.showEmptyContainer.emit(); - } - else if (res.data == 'cancel') { - - } - else if (res.data == 'edit') { - - //this.closeAllDesktopComponents.emit(); - this.openEditGroupPage.emit(this.roomId); - } - else { - this.roomName = res.data.name.split('-').join(' '); - - }; - - }); } openSendGroupMessageOptions(ev?: any) { From 9a1d0c67d22b703c915a9ce8bf3833fad8c66e29 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Eudes=20In=C3=A1cio?= Date: Mon, 13 Jun 2022 12:11:35 +0100 Subject: [PATCH 6/6] user without permission cant delete or edit group name --- .../chat/group-messages/group-messages.page.ts | 14 +++++++++----- .../popover/chat-popover/chat-popover.page.html | 6 +++--- .../popover/chat-popover/chat-popover.page.ts | 4 ++++ 3 files changed, 16 insertions(+), 8 deletions(-) diff --git a/src/app/shared/chat/group-messages/group-messages.page.ts b/src/app/shared/chat/group-messages/group-messages.page.ts index 7b4e79ba8..cd7a7ee3b 100644 --- a/src/app/shared/chat/group-messages/group-messages.page.ts +++ b/src/app/shared/chat/group-messages/group-messages.page.ts @@ -75,6 +75,7 @@ export class GroupMessagesPage implements OnInit, OnChanges, AfterViewInit, OnDe scrollToBottomBtn = false; roomCountDownDate: string; roomCountDownTime: string; + isAdmin = false; @Input() roomId: string; @Output() closeAllDesktopComponents: EventEmitter = new EventEmitter(); @@ -101,7 +102,6 @@ export class GroupMessagesPage implements OnInit, OnChanges, AfterViewInit, OnDe audioPermissionStatus: 'granted'| 'denied' | 'prompt' | null = null sessionStore = SessionStore - groupAdminId = ""; constructor( public wsChatMethodsService: WsChatMethodsService, @@ -404,10 +404,16 @@ export class GroupMessagesPage implements OnInit, OnChanges, AfterViewInit, OnDe let room = await this.chatService.getRoomInfo(this.roomId).toPromise(); console.log('ROOM',room) this.room = room['room']; - this.groupAdminId = this.room.u._id; if (this.room.name) { this.roomName = this.room.name.split('-').join(' '); } + + + if(SessionStore.user.ChatData.data.userId == this.room.u._id){ + this.isAdmin = true + } else { + this.isAdmin = false + } if (this.room.customFields.countDownDate) { this.roomCountDownDate = this.room.customFields.countDownDate; @@ -506,8 +512,6 @@ export class GroupMessagesPage implements OnInit, OnChanges, AfterViewInit, OnDe } async openGroupMessagesOptions() { - alert(this.groupAdminId) - if(SessionStore.user.ChatData.data.userId == this.groupAdminId) { const enterAnimation = (baseEl: any) => { const backdropAnimation = this.animationController.create() .addElement(baseEl.querySelector('ion-backdrop')!) @@ -554,6 +558,7 @@ export class GroupMessagesPage implements OnInit, OnChanges, AfterViewInit, OnDe componentProps: { roomId: this.roomId, members: this.members, + isAdmin: this.isAdmin } }); await modal.present(); @@ -583,7 +588,6 @@ export class GroupMessagesPage implements OnInit, OnChanges, AfterViewInit, OnDe }; }); - } } diff --git a/src/app/shared/popover/chat-popover/chat-popover.page.html b/src/app/shared/popover/chat-popover/chat-popover.page.html index d85351acb..099781440 100644 --- a/src/app/shared/popover/chat-popover/chat-popover.page.html +++ b/src/app/shared/popover/chat-popover/chat-popover.page.html @@ -7,9 +7,9 @@
- +
- - + +
diff --git a/src/app/shared/popover/chat-popover/chat-popover.page.ts b/src/app/shared/popover/chat-popover/chat-popover.page.ts index 3e81f382d..8d6cfc5a8 100644 --- a/src/app/shared/popover/chat-popover/chat-popover.page.ts +++ b/src/app/shared/popover/chat-popover/chat-popover.page.ts @@ -6,6 +6,7 @@ import { ThemeService } from 'src/app/services/theme.service' import { SetRoomOwnerPage } from 'src/app/modals/set-room-owner/set-room-owner.page'; import { WsChatMethodsService } from 'src/app/services/chat/ws-chat-methods.service'; import { HttpErrorResponse } from '@angular/common/http'; +import { SessionStore } from 'src/app/store/session.service'; @Component({ @@ -17,6 +18,7 @@ export class ChatPopoverPage implements OnInit { roomId:string; room: any; members:any; + isAdmin = false; constructor( private popoverController: PopoverController, @@ -29,6 +31,7 @@ export class ChatPopoverPage implements OnInit { ) { this.roomId = this.navParams.get('roomId'); this.members = this.navParams.get('members'); + this.isAdmin = this.navParams.get('isAdmin'); } ngOnInit() { @@ -63,6 +66,7 @@ export class ChatPopoverPage implements OnInit { componentProps: { roomId: this.roomId, members: this.members, + isAdmin: this.isAdmin } }); await modal.present();