Merge branch 'chatSessonExpire' of https://bitbucket.org/equilibriumito/gabinete-digital into developer

This commit is contained in:
Eudes Inácio
2022-06-13 12:31:22 +01:00
18 changed files with 480 additions and 405 deletions
@@ -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 { FileToBase64Service } from 'src/app/services/file/file-to-base64.service';
import { environment } from 'src/environments/environment'; import { environment } from 'src/environments/environment';
import { ThemeService } from 'src/app/services/theme.service' import { ThemeService } from 'src/app/services/theme.service'
import { HttpErrorResponse } from '@angular/common/http';
@Component({ @Component({
selector: 'app-chat-options-features', selector: 'app-chat-options-features',
@@ -47,7 +48,7 @@ export class ChatOptionsFeaturesPage implements OnInit {
} }
ngOnInit() { ngOnInit() {
this.chatService.refreshtoken();
} }
notImplemented() { notImplemented() {
@@ -117,8 +118,6 @@ export class ChatOptionsFeaturesPage implements OnInit {
this.chatService.sendMessage(body).subscribe(res=> { this.chatService.sendMessage(body).subscribe(res=> {
// //
},(error) => {
}); });
// //
}; };
@@ -144,8 +143,6 @@ export class ChatOptionsFeaturesPage implements OnInit {
this.chatService.sendMessage(body).subscribe(res=> { this.chatService.sendMessage(body).subscribe(res=> {
},(error) => {
}); });
} }
@@ -33,7 +33,7 @@ export class SetRoomOwnerPage implements OnInit {
} }
ngOnInit() { ngOnInit() {
this.chatService.refreshtoken();
} }
async close(){ async close(){
+13 -1
View File
@@ -1,4 +1,4 @@
import { HttpClient, HttpHeaders, HttpParams } from '@angular/common/http'; import { HttpClient, HttpErrorResponse, HttpHeaders, HttpParams } from '@angular/common/http';
import { import {
Component, Component,
OnInit, OnInit,
@@ -129,6 +129,18 @@ export class ChatPage implements OnInit {
ngOnInit() { ngOnInit() {
/* let data = {
status: "success",
data: {
userId: "CqYSKR5hrAumZihs7",
authToken: "bvh5BH98Av5ShMnEW94Cwm1Hf-yHEHbl121ijq5Odc_sdvs"
}
}
SessionStore.user.ChatData = data
SessionStore.save() */
console.log(SessionStore.user.ChatData.data.authToken)
this.chatService.refreshtoken();
this.segment = "Contactos"; this.segment = "Contactos";
this.authService.userData$.subscribe((res: any) => { this.authService.userData$.subscribe((res: any) => {
@@ -1,3 +1,4 @@
import { HttpErrorResponse } from '@angular/common/http';
import { Component, OnInit } from '@angular/core'; import { Component, OnInit } from '@angular/core';
import { ModalController, NavParams, PickerController } from '@ionic/angular'; import { ModalController, NavParams, PickerController } from '@ionic/angular';
import { ChatService } from 'src/app/services/chat.service'; import { ChatService } from 'src/app/services/chat.service';
@@ -28,6 +29,7 @@ export class EditGroupPage implements OnInit {
} }
ngOnInit() { ngOnInit() {
this.chatService.refreshtoken();
this.getRoomInfo(); this.getRoomInfo();
} }
@@ -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 { Component, OnInit } from '@angular/core';
import { ModalController, NavParams } from '@ionic/angular'; import { ModalController, NavParams } from '@ionic/angular';
import * as _ from 'lodash'; import * as _ from 'lodash';
@@ -56,6 +56,7 @@ export class GroupContactsPage implements OnInit {
} }
ngOnInit() { ngOnInit() {
this.chatService.refreshtoken();
this.loadUsers(); this.loadUsers();
this.getMembers(); this.getMembers();
@@ -31,6 +31,7 @@ import { MessageService } from 'src/app/services/chat/message.service';
import { File } from '@awesome-cordova-plugins/file/ngx'; import { File } from '@awesome-cordova-plugins/file/ngx';
import { FileOpener } from '@awesome-cordova-plugins/file-opener/ngx'; import { FileOpener } from '@awesome-cordova-plugins/file-opener/ngx';
import { SessionStore } from 'src/app/store/session.service'; import { SessionStore } from 'src/app/store/session.service';
import { HttpErrorResponse } from '@angular/common/http';
@Component({ @Component({
selector: 'app-group-messages', selector: 'app-group-messages',
@@ -132,6 +133,7 @@ export class GroupMessagesPage implements OnInit, AfterViewInit, OnDestroy {
} }
ngOnInit() { ngOnInit() {
this.chatService.refreshtoken();
this.loggedUser = this.loggedUserChat; this.loggedUser = this.loggedUserChat;
this.getRoomInfo(); this.getRoomInfo();
@@ -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 { Component, OnInit } from '@angular/core';
import { ModalController } from '@ionic/angular'; import { ModalController } from '@ionic/angular';
import { AuthService } from 'src/app/services/auth.service'; import { AuthService } from 'src/app/services/auth.service';
@@ -43,6 +43,7 @@ export class ContactsPage implements OnInit {
} }
ngOnInit() { ngOnInit() {
this.chatService.refreshtoken();
this.loadUsers(); this.loadUsers();
} }
@@ -36,6 +36,7 @@ import { FileToBase64Service } from 'src/app/services/file/file-to-base64.servic
import { Camera, CameraResultType, CameraSource } from '@capacitor/camera'; import { Camera, CameraResultType, CameraSource } from '@capacitor/camera';
import { DomSanitizer } from '@angular/platform-browser'; import { DomSanitizer } from '@angular/platform-browser';
import { SessionStore } from 'src/app/store/session.service'; import { SessionStore } from 'src/app/store/session.service';
import { HttpErrorResponse } from '@angular/common/http';
const IMAGE_DIR = 'stored-images'; const IMAGE_DIR = 'stored-images';
@@ -156,6 +157,7 @@ export class MessagesPage implements OnInit, AfterViewInit, OnDestroy {
} }
ngOnInit() { ngOnInit() {
this.chatService.refreshtoken();
this.wsChatMethodsService.getUserOfRoom(this.roomId).then((value) => { this.wsChatMethodsService.getUserOfRoom(this.roomId).then((value) => {
}) })
@@ -43,6 +43,7 @@ export class NewGroupPage implements OnInit {
} }
ngOnInit() { ngOnInit() {
this.chatService.refreshtoken();
console.log(this.documents) console.log(this.documents)
} }
+43 -13
View File
@@ -29,19 +29,7 @@ export class ChatService {
private storageService: StorageService, private storageService: StorageService,
public p: PermissionService) { public p: PermissionService) {
if(this.p.userPermission(this.p.permissionList.Chat.access)) { this.setheader()
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,
};
}
}
} }
@@ -100,6 +88,7 @@ export class ChatService {
} }
getAllUsers() { getAllUsers() {
console.log(this.options)
return this.http.get(environment.apiChatUrl + 'users.list', this.options); return this.http.get(environment.apiChatUrl + 'users.list', this.options);
} }
getAllConnectedUsers() { getAllConnectedUsers() {
@@ -350,4 +339,45 @@ export class ChatService {
} }
setheader() {
try {
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,
};
}
}
} catch (error) {
console.log(error)
}
}
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
SessionStore.save()
this.setheader()
console.log(res)
console.log(SessionStore.user.ChatData)
});
}
} }
@@ -1,3 +1,4 @@
import { HttpErrorResponse } from '@angular/common/http';
import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core'; import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';
import { ModalController, PickerController } from '@ionic/angular'; import { ModalController, PickerController } from '@ionic/angular';
import { AuthService } from 'src/app/services/auth.service'; import { AuthService } from 'src/app/services/auth.service';
@@ -33,6 +34,7 @@ export class EditGroupPage implements OnInit {
} }
ngOnInit() { ngOnInit() {
this.chatService.refreshtoken();
this.getRoomInfo(); this.getRoomInfo();
} }
@@ -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 { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';
import { ModalController, NavParams } from '@ionic/angular'; import { ModalController, NavParams } from '@ionic/angular';
import * as _ from 'lodash'; import * as _ from 'lodash';
@@ -57,6 +57,7 @@ export class GroupContactsPage implements OnInit {
} }
ngOnInit() { ngOnInit() {
this.chatService.refreshtoken();
//this.getRoomInfo(); //this.getRoomInfo();
this.loadUsers(); this.loadUsers();
@@ -34,6 +34,7 @@ import { AlertController } from '@ionic/angular';
import { File } from '@awesome-cordova-plugins/file/ngx'; import { File } from '@awesome-cordova-plugins/file/ngx';
import { FileOpener } from '@awesome-cordova-plugins/file-opener/ngx'; import { FileOpener } from '@awesome-cordova-plugins/file-opener/ngx';
import { SessionStore } from 'src/app/store/session.service'; import { SessionStore } from 'src/app/store/session.service';
import { HttpErrorResponse } from '@angular/common/http';
/* /*
@@ -74,6 +75,7 @@ export class GroupMessagesPage implements OnInit, OnChanges, AfterViewInit, OnDe
scrollToBottomBtn = false; scrollToBottomBtn = false;
roomCountDownDate: string; roomCountDownDate: string;
roomCountDownTime: string; roomCountDownTime: string;
isAdmin = false;
@Input() roomId: string; @Input() roomId: string;
@Output() closeAllDesktopComponents: EventEmitter<any> = new EventEmitter<any>(); @Output() closeAllDesktopComponents: EventEmitter<any> = new EventEmitter<any>();
@@ -159,10 +161,11 @@ export class GroupMessagesPage implements OnInit, OnChanges, AfterViewInit, OnDe
} }
ngOnInit() { ngOnInit() {
this.chatService.refreshtoken();
console.log(this.roomId) console.log(this.roomId)
this.loggedUser = this.loggedUserChat; this.loggedUser = this.loggedUserChat;
//setTimeout(() => { //setTimeout(() => {
this.getRoomInfo(); this.getRoomInfo()
//}, 1000); //}, 1000);
this.getChatMembers(); this.getChatMembers();
//this.getMessageDB(); //this.getMessageDB();
@@ -399,11 +402,19 @@ export class GroupMessagesPage implements OnInit, OnChanges, AfterViewInit, OnDe
async getRoomInfo() { async getRoomInfo() {
this.wsChatMethodsService.getGroupRoom(this.roomId).loadHistory({}); this.wsChatMethodsService.getGroupRoom(this.roomId).loadHistory({});
let room = await this.chatService.getRoomInfo(this.roomId).toPromise(); let room = await this.chatService.getRoomInfo(this.roomId).toPromise();
console.log('ROOM',room)
this.room = room['room']; this.room = room['room'];
if (this.room.name) { if (this.room.name) {
this.roomName = this.room.name.split('-').join(' '); 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) { if (this.room.customFields.countDownDate) {
this.roomCountDownDate = this.room.customFields.countDownDate; this.roomCountDownDate = this.room.customFields.countDownDate;
} }
@@ -501,7 +512,6 @@ export class GroupMessagesPage implements OnInit, OnChanges, AfterViewInit, OnDe
} }
async openGroupMessagesOptions() { async openGroupMessagesOptions() {
const enterAnimation = (baseEl: any) => { const enterAnimation = (baseEl: any) => {
const backdropAnimation = this.animationController.create() const backdropAnimation = this.animationController.create()
.addElement(baseEl.querySelector('ion-backdrop')!) .addElement(baseEl.querySelector('ion-backdrop')!)
@@ -548,6 +558,7 @@ export class GroupMessagesPage implements OnInit, OnChanges, AfterViewInit, OnDe
componentProps: { componentProps: {
roomId: this.roomId, roomId: this.roomId,
members: this.members, members: this.members,
isAdmin: this.isAdmin
} }
}); });
await modal.present(); await modal.present();
@@ -577,6 +588,8 @@ export class GroupMessagesPage implements OnInit, OnChanges, AfterViewInit, OnDe
}; };
}); });
} }
openSendGroupMessageOptions(ev?: any) { openSendGroupMessageOptions(ev?: any) {
@@ -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 { Component, EventEmitter, OnInit, Output } from '@angular/core';
import { ModalController } from '@ionic/angular'; import { ModalController } from '@ionic/angular';
import { AuthService } from 'src/app/services/auth.service'; import { AuthService } from 'src/app/services/auth.service';
@@ -42,7 +42,9 @@ export class ContactsPage implements OnInit {
} }
ngOnInit() { ngOnInit() {
this.loadUsers(); this.loadUsers();
this.chatService.refreshtoken();
} }
onChange(event){ onChange(event){
@@ -31,6 +31,7 @@ import { AlertController, Platform } from '@ionic/angular';
import { File } from '@awesome-cordova-plugins/file/ngx'; import { File } from '@awesome-cordova-plugins/file/ngx';
import { FileOpener } from '@awesome-cordova-plugins/file-opener/ngx'; import { FileOpener } from '@awesome-cordova-plugins/file-opener/ngx';
import { SessionStore } from 'src/app/store/session.service'; import { SessionStore } from 'src/app/store/session.service';
import { HttpErrorResponse } from '@angular/common/http';
const IMAGE_DIR = 'stored-images'; const IMAGE_DIR = 'stored-images';
@@ -154,6 +155,7 @@ export class MessagesPage implements OnInit, OnChanges, AfterViewInit, OnDestroy
} }
ngOnInit() { ngOnInit() {
this.chatService.refreshtoken();
this.scrollToBottom(); this.scrollToBottom();
this.getChatMembers(); this.getChatMembers();
@@ -7,9 +7,9 @@
</div> </div>
<div class="buttons"> <div class="buttons">
<button (click)="leaveGroup()" class="btn-cancel" shape="round" >Sair do Grupo</button> <button (click)="leaveGroup()" class="btn-cancel" shape="round" >Sair do Grupo</button>
<button (click)="openChangeGroupName()" class="btn-cancel" shape="round" >Alterar nome do grupo</button> <button *ngIf="isAdmin" (click)="openChangeGroupName()" class="btn-cancel" shape="round" >Alterar nome do grupo</button>
<div class="solid"></div> <div class="solid"></div>
<button (click)="close('cancel')" full class="btn-cancel mobile-only" shape="round" >Cancelar</button> <button (click)="close('cancel')" full class="btn-cancel mobile-only" shape="round" >Cancelar</button>
<button (click)="deleteGroup()" class="btn-delete" shape="round">Apagar grupo</button> <button *ngIf="isAdmin" (click)="deleteGroup()" class="btn-delete" shape="round">Apagar grupo</button>
</div> </div>
</ion-content> </ion-content>
@@ -5,6 +5,8 @@ import { ToastService } from 'src/app/services/toast.service';
import { ThemeService } from 'src/app/services/theme.service' import { ThemeService } from 'src/app/services/theme.service'
import { SetRoomOwnerPage } from 'src/app/modals/set-room-owner/set-room-owner.page'; 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 { 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({ @Component({
@@ -16,6 +18,7 @@ export class ChatPopoverPage implements OnInit {
roomId:string; roomId:string;
room: any; room: any;
members:any; members:any;
isAdmin = false;
constructor( constructor(
private popoverController: PopoverController, private popoverController: PopoverController,
@@ -28,10 +31,11 @@ export class ChatPopoverPage implements OnInit {
) { ) {
this.roomId = this.navParams.get('roomId'); this.roomId = this.navParams.get('roomId');
this.members = this.navParams.get('members'); this.members = this.navParams.get('members');
this.isAdmin = this.navParams.get('isAdmin');
} }
ngOnInit() { ngOnInit() {
this.chatService.refreshtoken();
} }
close(action:any){ close(action:any){
@@ -62,6 +66,7 @@ export class ChatPopoverPage implements OnInit {
componentProps: { componentProps: {
roomId: this.roomId, roomId: this.roomId,
members: this.members, members: this.members,
isAdmin: this.isAdmin
} }
}); });
await modal.present(); await modal.present();
@@ -1,3 +1,4 @@
import { HttpErrorResponse } from '@angular/common/http';
import { Component, OnInit } from '@angular/core'; import { Component, OnInit } from '@angular/core';
import { ModalController, NavParams, PopoverController } from '@ionic/angular'; import { ModalController, NavParams, PopoverController } from '@ionic/angular';
import { ChatService } from 'src/app/services/chat.service'; import { ChatService } from 'src/app/services/chat.service';
@@ -24,6 +25,7 @@ export class MessagesOptionsPage implements OnInit {
} }
ngOnInit() { ngOnInit() {
this.chatService.refreshtoken();
} }
close(){ close(){