diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml new file mode 100644 index 000000000..14eebadee --- /dev/null +++ b/.gitlab-ci.yml @@ -0,0 +1,47 @@ +image: docker:latest + +variables: + DOCKER_DRIVER: overlay + +stages: + #- Install + - Test + #- Deploy + +services: +- docker:dind + +before_script: + - docker info + - apk update + - apk upgrade + - apk add --update bash + - apk add curl jq python3 python3-dev build-base libffi-dev libressl-dev gettext + #- curl -O https://bootstrap.pypa.io/get-pip.py + #- python3 get-pip.py + #- pip install docker-compose + #- mkdir -p ~/.ssh && chmod 700 ~/.ssh && echo "$SSH_KRY" > ~/.ssh/id_rsa.pub + #- cat ~/.ssh/id_rsa.pub + #- cp ./.env.example ./.env + #- echo "$SSH_PASS" + +#'Install': +# stage: Install +# script: +# - docker-compose -f docker/docker-compose-install.yml build + +'Test': + stage: Test + script: + - docker build . + +#'API deploy': +# stage: Deploy +# script: +# - sshpass -p'R!9rayBAHx#asWA2' ssh -o StrictHostKeyChecking=no root@160.242.22.23 'cd project; cd digipay-compose; cd service; cd digipay; ls; git pull origin master; cd ..; cd ..; docker-compose -f docker-compose-prod.yml up -d --no-deps --build backend; exit' + + # - ssh -o StrictHostKeyChecking=no root@160.242.22.23 "ls" + +# only: +# # Trigger deployments only from master branch +# - master diff --git a/dockerfile b/dockerfile new file mode 100644 index 000000000..fbee3b3f6 --- /dev/null +++ b/dockerfile @@ -0,0 +1,68 @@ +# # Stage 1: Compile and Build angular codebase + + + +# # Use official node image as the base image + +FROM node:14.15.0 as build + +# # Set up ENV + +ENV NODE_ENV=production + +# Set the working directory + +WORKDIR /usr/local/app + + + + + + +# # Install all the dependencies + +RUN npm config set unsafe-perm true + +RUN npm ci + +RUN npm audit fix + +RUN npm install -g @ionic/cli + +RUN npm install -g @angular/cli + +RUN npm install -g cordova + +RUN npm install -g cordova-res + +# # # Generate the build of the application + +RUN ionic build --prod + +# # Add the source code to app + +COPY ./www /usr/local/app/ + + + +# # Stage 2: Serve app with nginx server + + + +# # Use official nginx image as the base image + +# FROM nginx:latest + + + +# Copy the build output to replace the default nginx contents. + +#COPY ./www/ /usr/share/nginx/html/ + + + +# Expose port 80 + +# EXPOSE 80 + +#CMD ["nginx", "-g", "daemon off;"] \ No newline at end of file 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 005d6775a..44d206942 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 @@ -7,6 +7,7 @@ import { ChatService } from 'src/app/services/chat.service'; import { NewGroupPage } from '../../new-group/new-group.page'; import { GroupMessagesPage } from '../group-messages.page'; import { ThemeService } from 'src/app/services/theme.service' +import { SessionStore } from 'src/app/store/session.service'; @Component({ selector: 'app-group-contacts', @@ -31,7 +32,8 @@ export class GroupContactsPage implements OnInit { isGroupCreated:boolean; groupName:string; selectedUserList:any; - + sessionStore = SessionStore + constructor( private modalController: ModalController, private http: HttpClient, @@ -68,7 +70,7 @@ export class GroupContactsPage implements OnInit { this.contacts = res.users.filter(f => !this.members.some(item => item._id === f._id)); } else{ - this.contacts = res.users.filter(data => data.username != this.loggedUser.me.username); + this.contacts = res.users.filter(data => data.username != this.sessionStore.user.RochetChatUser); } this.users = this.contacts.sort((a,b) => { if(a.name < b.name){ diff --git a/src/app/pages/chat/group-messages/group-messages.page.html b/src/app/pages/chat/group-messages/group-messages.page.html index ffe9cd26d..1ae503504 100644 --- a/src/app/pages/chat/group-messages/group-messages.page.html +++ b/src/app/pages/chat/group-messages/group-messages.page.html @@ -57,7 +57,7 @@ A conversa original mantêm-se como chat individual
-
+
{{msg.u.name ?? ""}} {{msg.duration}} @@ -78,7 +78,7 @@
-
-
+
{{msg.u.name ?? ""}} {{msg.duration}} 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 c2588adb2..88630ab5d 100644 --- a/src/app/pages/chat/group-messages/group-messages.page.ts +++ b/src/app/pages/chat/group-messages/group-messages.page.ts @@ -260,11 +260,11 @@ export class GroupMessagesPage implements OnInit, AfterViewInit, OnDestroy { try { this.storage.get('recordData').then((recordData) => { - console.log(recordData); + if (recordData?.value?.recordDataBase64.includes('data:audio')) { this.audioRecorded = this.sanitiser.bypassSecurityTrustResourceUrl(recordData?.value?.recordDataBase64); } - else { + else if(recordData?.value?.mimeType && recordData?.value?.recordDataBase64) { this.audioRecorded = this.sanitiser.bypassSecurityTrustResourceUrl(`data:${recordData.value.mimeType};base64,${recordData?.value?.recordDataBase64}`); } }); @@ -287,7 +287,7 @@ export class GroupMessagesPage implements OnInit, AfterViewInit, OnDestroy { this.recording = false; if (result.value && result.value.recordDataBase64) { const recordData = result.value.recordDataBase64; - //console.log(recordData); + // const fileName = new Date().getTime() + ".mp3"; //Save file await this.storage.set('fileName', fileName) @@ -478,12 +478,12 @@ export class GroupMessagesPage implements OnInit, AfterViewInit, OnDestroy { const roomId = this.roomId let audioFile; this.storage.get('recordData').then((recordData) => { - console.log(recordData); + audioFile = recordData; if (recordData?.value?.recordDataBase64.includes('data:audio')) { this.audioRecorded = recordData?.value?.recordDataBase64; } - else { + else if(recordData?.value?.mimeType && recordData?.value?.recordDataBase64){ this.audioRecorded = `data:${recordData.value.mimeType};base64,${recordData?.value?.recordDataBase64}`; } diff --git a/src/app/pages/chat/messages/contacts/contacts.page.ts b/src/app/pages/chat/messages/contacts/contacts.page.ts index 8c23c93dd..0f45b3f82 100644 --- a/src/app/pages/chat/messages/contacts/contacts.page.ts +++ b/src/app/pages/chat/messages/contacts/contacts.page.ts @@ -7,6 +7,7 @@ import { GroupMessagesPage } from '../../group-messages/group-messages.page'; import { MessagesPage } from '../messages.page'; import { ThemeService } from 'src/app/services/theme.service' import { WsChatMethodsService} from 'src/app/services/chat/ws-chat-methods.service' +import { SessionStore } from 'src/app/store/session.service'; @Component({ selector: 'app-contacts', @@ -24,6 +25,7 @@ export class ContactsPage implements OnInit { textSearch:string; room:any; dm:any; + sessionStore = SessionStore constructor( private modalController: ModalController, @@ -55,7 +57,7 @@ export class ContactsPage implements OnInit { }; this.chatService.getAllUsers().subscribe((res:any)=>{ console.log(res.users); - this.contacts = res.users.filter(data => data.username != this.loggedUser.me.username); + this.contacts = res.users.filter(data => data.username != this.sessionStore.user.RochetChatUser); this.users = this.contacts.sort((a,b) => { if(a.name < b.name){ return -1; diff --git a/src/app/pages/chat/messages/messages.page.html b/src/app/pages/chat/messages/messages.page.html index 7468cfd9c..6043f9066 100644 --- a/src/app/pages/chat/messages/messages.page.html +++ b/src/app/pages/chat/messages/messages.page.html @@ -50,7 +50,7 @@
-
{{msg.u.name}} @@ -74,7 +74,7 @@
-
+
{{msg.u.name}} {{msg.duration}} diff --git a/src/app/pages/chat/messages/messages.page.ts b/src/app/pages/chat/messages/messages.page.ts index 00902e197..eae007500 100644 --- a/src/app/pages/chat/messages/messages.page.ts +++ b/src/app/pages/chat/messages/messages.page.ts @@ -46,6 +46,7 @@ import { StringDecoder } from 'string_decoder'; import { File } from '@awesome-cordova-plugins/file/ngx'; import { FileOpener } from '@awesome-cordova-plugins/file-opener/ngx'; import { DocumentViewer } from '@awesome-cordova-plugins/document-viewer/ngx'; +import { SessionStore } from 'src/app/store/session.service'; const IMAGE_DIR = 'stored-images'; @@ -110,6 +111,7 @@ export class MessagesPage implements OnInit, AfterViewInit, OnDestroy { downloadLoader: boolean; audioPermissionStatus: 'granted'| 'denied' | 'prompt' | null = null + sessionStore = SessionStore constructor( public popoverController: PopoverController, @@ -226,11 +228,11 @@ export class MessagesPage implements OnInit, AfterViewInit, OnDestroy { try { this.storage.get('recordData').then((recordData) => { - console.log(recordData); + if (recordData?.value?.recordDataBase64.includes('data:audio')) { this.audioRecorded = this.sanitiser.bypassSecurityTrustResourceUrl(recordData?.value?.recordDataBase64); } - else { + else if(recordData?.value?.mimeType && recordData?.value?.recordDataBase64) { this.audioRecorded = this.sanitiser.bypassSecurityTrustResourceUrl(`data:${recordData.value.mimeType};base64,${recordData?.value?.recordDataBase64}`); } }); @@ -273,7 +275,7 @@ export class MessagesPage implements OnInit, AfterViewInit, OnDestroy { this.recording = false; if (result.value && result.value.recordDataBase64) { const recordData = result.value.recordDataBase64; - //console.log(recordData); + // const fileName = new Date().getTime() + ".mp3"; //Save file this.storage.set('fileName', fileName); @@ -427,7 +429,7 @@ export class MessagesPage implements OnInit, AfterViewInit, OnDestroy { if (recordData?.value?.recordDataBase64.includes('data:audio')) { this.audioRecorded = recordData?.value?.recordDataBase64; } - else { + else if(recordData?.value?.mimeType && recordData?.value?.recordDataBase64) { this.audioRecorded = `data:${recordData.value.mimeType};base64,${recordData?.value?.recordDataBase64}`; } @@ -534,7 +536,7 @@ export class MessagesPage implements OnInit, AfterViewInit, OnDestroy { this.showLoader = true; this.chatService.getMembers(this.roomId).subscribe(res => { this.members = res['members']; - this.dmUsers = res['members'].filter(data => data.username != this.loggedUser.me.username) + this.dmUsers = res['members'].filter(data => data.username != this.sessionStore.user.RochetChatUser) this.showLoader = false; }); } diff --git a/src/app/services/auth.service.ts b/src/app/services/auth.service.ts index 30e60c3ff..32200beff 100644 --- a/src/app/services/auth.service.ts +++ b/src/app/services/auth.service.ts @@ -61,7 +61,9 @@ export class AuthService { } if (localStorage.getItem("userChat") != null) { - this.ValidatedUserChat = JSON.parse(localStorage.getItem('userChat')); + this.ValidatedUserChat = { + data: JSON.parse(localStorage.getItem('userChat')) + }; } } diff --git a/src/app/services/chat/room.service.ts b/src/app/services/chat/room.service.ts index 80fcab564..2e2f88363 100644 --- a/src/app/services/chat/room.service.ts +++ b/src/app/services/chat/room.service.ts @@ -51,6 +51,7 @@ export class RoomService { messagesLocalReference = [] members = [] u + sessionStore = SessionStore scrollDown = () => { } diff --git a/src/app/services/chat/ws-chat-methods.service.ts b/src/app/services/chat/ws-chat-methods.service.ts index e3b3786f5..369085175 100644 --- a/src/app/services/chat/ws-chat-methods.service.ts +++ b/src/app/services/chat/ws-chat-methods.service.ts @@ -41,9 +41,10 @@ export class WsChatMethodsService { currentRoom: RoomService = null users: chatUser[] = [] + sessionStore = SessionStore loggedUser: any; - + constructor( private WsChatService: WsChatService, private storage: Storage, @@ -183,7 +184,7 @@ export class WsChatMethodsService { const res = await this.chatService.getMembers(roomId).toPromise(); const members = res['members']; - const users = members.filter(data => data.username != this.loggedUser.me.username); + const users = members.filter(data => data.username != this.sessionStore.user.RochetChatUser); rooms.result.update[index]['members'] = users await this.prepareRoom(roomData); @@ -191,7 +192,7 @@ export class WsChatMethodsService { if (roomData.t === 'p') { const res = await this.chatService.getGroupMembers(roomId).toPromise() const members = res['members']; - const users = members.filter(data => data.username != this.loggedUser.me.username); + const users = members.filter(data => data.username != this.sessionStore.user.RochetChatUser); rooms.result.update[index]['members'] = users @@ -199,7 +200,7 @@ export class WsChatMethodsService { else { const res = await this.chatService.getChannelMembers(roomId).toPromise() const members = res['members']; - const users = members.filter(data => data.username != this.loggedUser.me.username); + const users = members.filter(data => data.username != this.sessionStore.user.RochetChatUser); rooms.result.update[index]['members'] = users diff --git a/src/app/services/chat/ws-chat.service.ts b/src/app/services/chat/ws-chat.service.ts index 7dc07f82c..6323b1e1c 100644 --- a/src/app/services/chat/ws-chat.service.ts +++ b/src/app/services/chat/ws-chat.service.ts @@ -674,7 +674,7 @@ export class WsChatService { registerCallback:(params: wsCallbacksParams) => { let id = params.requestId || params.key || uuidv4() - console.log('register id', params) + // console.log('register id', params) this.wsCallbacks[id] = params this.n++ return id 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 53a2394cb..936ff49fb 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 @@ -7,6 +7,7 @@ import { ChatService } from 'src/app/services/chat.service'; import { NewGroupPage } from '../../new-group/new-group.page'; import { GroupMessagesPage } from '../group-messages.page'; import { ThemeService } from 'src/app/services/theme.service' +import { SessionStore } from 'src/app/store/session.service'; @Component({ selector: 'app-group-contacts', @@ -31,6 +32,7 @@ export class GroupContactsPage implements OnInit { isGroupCreated:boolean; groupName:string; selectedUserList:any; + sessionStore = SessionStore @Input() roomId:string; @Output() openGroupMessage:EventEmitter = new EventEmitter(); @@ -156,7 +158,7 @@ export class GroupContactsPage implements OnInit { this.contacts = res.users.filter(f => !this.members.some(item => item._id === f._id)); } else{ - this.contacts = res.users.filter(data => data.username != this.loggedUser.me.username); + this.contacts = res.users.filter(data => data.username != this.sessionStore.user.RochetChatUser); } this.users = this.contacts.sort((a,b) => { @@ -186,7 +188,7 @@ export class GroupContactsPage implements OnInit { this.contacts = res.users.filter(f => !this.members.some(item => item._id === f._id)); } else{ - this.contacts = res.users.filter(data => data.username != this.loggedUser.me.username); + this.contacts = res.users.filter(data => data.username != this.sessionStore.user.RochetChatUser); } this.users = this.contacts.sort((a,b) => { diff --git a/src/app/shared/chat/group-messages/group-messages.page.html b/src/app/shared/chat/group-messages/group-messages.page.html index eed47e2bb..c707ecbd8 100644 --- a/src/app/shared/chat/group-messages/group-messages.page.html +++ b/src/app/shared/chat/group-messages/group-messages.page.html @@ -42,7 +42,7 @@
-
+
@@ -69,7 +69,7 @@
-
+
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 a7843735c..820f2ebab 100644 --- a/src/app/shared/chat/group-messages/group-messages.page.ts +++ b/src/app/shared/chat/group-messages/group-messages.page.ts @@ -39,6 +39,7 @@ import { DomSanitizer } from '@angular/platform-browser'; import { AlertController, NavParams } 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'; /* @@ -104,6 +105,7 @@ export class GroupMessagesPage implements OnInit, OnChanges, AfterViewInit, OnDe duration = 0; audioPermissionStatus: 'granted'| 'denied' | 'prompt' | null = null + sessionStore = SessionStore constructor( public wsChatMethodsService: WsChatMethodsService, @@ -287,11 +289,11 @@ export class GroupMessagesPage implements OnInit, OnChanges, AfterViewInit, OnDe }) this.storage.get('recordData').then((recordData) => { - console.log(recordData); + if (recordData?.value?.recordDataBase64.includes('data:audio')) { this.audioRecorded = this.sanitiser.bypassSecurityTrustResourceUrl(recordData?.value?.recordDataBase64); } - else { + else if(recordData?.value?.mimeType && recordData?.value?.recordDataBase64) { this.audioRecorded = this.sanitiser.bypassSecurityTrustResourceUrl(`data:${recordData.value.mimeType};base64,${recordData?.value?.recordDataBase64}`); } }); @@ -334,7 +336,7 @@ export class GroupMessagesPage implements OnInit, OnChanges, AfterViewInit, OnDe this.recording = false; if (result.value && result.value.recordDataBase64) { const recordData = result.value.recordDataBase64; - //console.log(recordData); + // const fileName = new Date().getTime() + ".mp3"; //Save file this.storage.set('fileName', fileName); @@ -462,12 +464,12 @@ export class GroupMessagesPage implements OnInit, OnChanges, AfterViewInit, OnDe const roomId = this.roomId let audioFile; this.storage.get('recordData').then((recordData) => { - console.log(recordData); + audioFile = recordData; if (recordData?.value?.recordDataBase64.includes('data:audio')) { this.audioRecorded = recordData?.value?.recordDataBase64; } - else { + else if(recordData?.value?.mimeType && recordData?.value?.recordDataBase64) { this.audioRecorded = `data:${recordData.value.mimeType};base64,${recordData?.value?.recordDataBase64}`; } diff --git a/src/app/shared/chat/messages/contacts/contacts.page.ts b/src/app/shared/chat/messages/contacts/contacts.page.ts index 8ca65d560..6dfd88e75 100644 --- a/src/app/shared/chat/messages/contacts/contacts.page.ts +++ b/src/app/shared/chat/messages/contacts/contacts.page.ts @@ -7,6 +7,7 @@ import { GroupMessagesPage } from '../../group-messages/group-messages.page'; import { MessagesPage } from '../messages.page'; import { ThemeService } from 'src/app/services/theme.service' import { WsChatMethodsService} from 'src/app/services/chat/ws-chat-methods.service' +import { SessionStore } from 'src/app/store/session.service'; @Component({ selector: 'app-contacts', @@ -24,6 +25,7 @@ export class ContactsPage implements OnInit { textSearch:string; room:any; dm:any; + sessionStore = SessionStore @Output() openMessage:EventEmitter = new EventEmitter(); @@ -71,8 +73,8 @@ export class ContactsPage implements OnInit { }; this.chatService.getAllUsers().subscribe((res:any)=>{ console.log(res.users); - //this.contacts = res.users.filter(data => data.username != this.loggedUser.me.username); - this.contacts = res.users.filter(data => data.username != this.loggedUser.me.username); + //this.contacts = res.users.filter(data => data.username != this.sessionStore.user.RochetChatUser); + this.contacts = res.users.filter(data => data.username != this.sessionStore.user.RochetChatUser); this.users = this.contacts.sort((a,b) => { if(a.name < b.name){ return -1; diff --git a/src/app/shared/chat/messages/messages.page.html b/src/app/shared/chat/messages/messages.page.html index b8f21d049..cd7b7a49e 100644 --- a/src/app/shared/chat/messages/messages.page.html +++ b/src/app/shared/chat/messages/messages.page.html @@ -36,7 +36,7 @@
-
+
@@ -65,7 +65,7 @@
-
diff --git a/src/app/shared/chat/messages/messages.page.ts b/src/app/shared/chat/messages/messages.page.ts index b08467e10..6ba153488 100644 --- a/src/app/shared/chat/messages/messages.page.ts +++ b/src/app/shared/chat/messages/messages.page.ts @@ -38,6 +38,7 @@ import { DomSanitizer } from '@angular/platform-browser'; import { AlertController, Platform, NavParams } 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'; const IMAGE_DIR = 'stored-images'; @@ -95,6 +96,7 @@ export class MessagesPage implements OnInit, OnChanges, AfterViewInit, OnDestroy duration = 0; audioPermissionStatus: 'granted'| 'denied' | 'prompt' | null = null + sessionStore = SessionStore constructor( public popoverController: PopoverController, @@ -281,11 +283,11 @@ export class MessagesPage implements OnInit, OnChanges, AfterViewInit, OnDestroy }) this.storage.get('recordData').then((recordData) => { - console.log(recordData); + if (recordData?.value?.recordDataBase64.includes('data:audio')) { this.audioRecorded = this.sanitiser.bypassSecurityTrustResourceUrl(recordData?.value?.recordDataBase64); } - else { + else if(recordData?.value?.mimeType && recordData?.value?.recordDataBase64) { this.audioRecorded = this.sanitiser.bypassSecurityTrustResourceUrl(`data:${recordData.value.mimeType};base64,${recordData?.value?.recordDataBase64}`); } }); @@ -293,11 +295,11 @@ export class MessagesPage implements OnInit, OnChanges, AfterViewInit, OnDestroy this.storage.get('recordData').then((recordData) => { - console.log(recordData); - if (recordData.value.recordDataBase64.includes('data:audio')) { + + if (recordData?.value?.recordDataBase64?.includes('data:audio')) { this.audioRecorded = this.sanitiser.bypassSecurityTrustResourceUrl(recordData.value.recordDataBase64); } - else { + else if(recordData?.value?.mimeType && recordData?.value?.recordDataBase64) { this.audioRecorded = this.sanitiser.bypassSecurityTrustResourceUrl(`data:${recordData.value.mimeType};base64,${recordData.value.recordDataBase64}`); } }); @@ -337,7 +339,7 @@ export class MessagesPage implements OnInit, OnChanges, AfterViewInit, OnDestroy this.recording = false; if (result.value && result.value.recordDataBase64) { const recordData = result.value.recordDataBase64; - //console.log(recordData); + // const fileName = new Date().getTime() + ".mp3"; //Save file this.storage.set('fileName', fileName); @@ -406,10 +408,10 @@ export class MessagesPage implements OnInit, OnChanges, AfterViewInit, OnDestroy const roomId = this.roomId let audioFile; this.storage.get('recordData').then((recordData) => { - console.log(recordData); + audioFile = recordData; - if (recordData.value.recordDataBase64.includes('data:audio')) { + if (recordData?.value?.recordDataBase64?.includes('data:audio')) { this.audioRecorded = recordData.value.recordDataBase64; } else { @@ -543,7 +545,7 @@ export class MessagesPage implements OnInit, OnChanges, AfterViewInit, OnDestroy //this.showLoader = true; this.chatService.getMembers(this.roomId).subscribe(res => { this.members = res['members']; - this.dmUsers = res['members'].filter(data => data.username != this.loggedUser.me.username) + this.dmUsers = res['members'].filter(data => data.username != this.sessionStore.user.RochetChatUser) this.showLoader = false; }); } diff --git a/src/environments/environment.ts b/src/environments/environment.ts index e1c6e905b..5f8a0d1c3 100644 --- a/src/environments/environment.ts +++ b/src/environments/environment.ts @@ -23,10 +23,10 @@ export const environment = { production: false, //apiURL: 'https://gabinetedigital.dyndns.info/GabineteDigital.Services/V5/api/', apiURL: 'http://gpr-dev-01.gabinetedigital.local/GabineteDigital.Services/V5/api/', - //apiChatUrl: 'https://gabinetedigitalchat.dyndns.info/api/v1/', - //apiWsChatUrl: 'wss://gabinetedigitalchat.dyndns.info/websocket', - apiChatUrl: 'https://www.tabularium.pt/api/v1/', - apiWsChatUrl: 'wss://www.tabularium.pt/websocket', + apiChatUrl: 'https://gabinetedigitalchat.dyndns.info/api/v1/', + apiWsChatUrl: 'wss://gabinetedigitalchat.dyndns.info/websocket', + //apiChatUrl: 'https://www.tabularium.pt/api/v1/', + //apiWsChatUrl: 'wss://www.tabularium.pt/websocket', /* apiChatUrl: 'http://chat.gabinetedigital.local:3000/api/v1/', */ domain: 'gabinetedigital.local', //gabinetedigital.local defaultuser: 'paulo.pinto@gabinetedigital.local',//paulo.pinto paulo.pinto@gabinetedigital.local