2022-01-10 23:52:33 +01:00
|
|
|
import { Injectable } from '@angular/core';
|
2022-01-13 10:52:03 +01:00
|
|
|
import { Message } from 'src/app/models/chatMethod';
|
2022-01-28 15:28:21 +01:00
|
|
|
import { Storage } from '@ionic/storage';
|
2022-02-03 21:01:53 +01:00
|
|
|
import { SessionStore } from 'src/app/store/session.service';
|
|
|
|
|
import { capitalizeTxt } from 'src/plugin/text'
|
2022-01-10 23:52:33 +01:00
|
|
|
|
|
|
|
|
@Injectable({
|
|
|
|
|
providedIn: 'root'
|
|
|
|
|
})
|
|
|
|
|
export class MessageService {
|
|
|
|
|
|
2022-01-13 21:24:43 +01:00
|
|
|
customFields
|
2022-01-11 15:43:09 +01:00
|
|
|
channels = []
|
|
|
|
|
mentions = []
|
|
|
|
|
msg = ''
|
|
|
|
|
rid = ''
|
2022-01-11 16:07:54 +01:00
|
|
|
ts = {}
|
|
|
|
|
u = {}
|
2022-01-17 11:27:25 +01:00
|
|
|
t = ''
|
2022-01-11 16:07:54 +01:00
|
|
|
_id =''
|
2022-02-03 21:01:53 +01:00
|
|
|
_updatedAt
|
2022-01-13 10:52:03 +01:00
|
|
|
file
|
|
|
|
|
attachments
|
2022-02-03 21:01:53 +01:00
|
|
|
offline = true
|
2022-02-04 00:22:35 +01:00
|
|
|
displayType = ''
|
2022-02-07 15:51:21 +01:00
|
|
|
temporaryData = {}
|
2022-01-11 16:07:54 +01:00
|
|
|
|
2022-01-28 15:28:21 +01:00
|
|
|
constructor(private storage: Storage) {
|
2022-02-03 21:01:53 +01:00
|
|
|
}
|
2022-01-11 16:07:54 +01:00
|
|
|
|
2022-02-07 15:51:21 +01:00
|
|
|
setData({customFields, channels, mentions, msg ,rid ,ts, u, t, _id, _updatedAt, file, attachments, temporaryData}:Message) {
|
2022-02-03 21:01:53 +01:00
|
|
|
this.customFields = customFields
|
|
|
|
|
this.channels = channels || []
|
|
|
|
|
this.mentions = mentions || []
|
|
|
|
|
this.msg = msg || ""
|
2022-01-11 16:07:54 +01:00
|
|
|
this.rid = rid
|
|
|
|
|
this.ts = ts
|
2022-02-03 21:01:53 +01:00
|
|
|
this.u = u || { name: this.usernameToDisplayName(SessionStore.user.RochetChatUser), username: SessionStore.user.RochetChatUser, _id: ""}
|
2022-01-17 11:27:25 +01:00
|
|
|
this.t = t
|
2022-01-11 16:07:54 +01:00
|
|
|
this._id = _id
|
2022-02-03 21:01:53 +01:00
|
|
|
this._updatedAt = _updatedAt || new Date().getTime()
|
2022-01-13 10:52:03 +01:00
|
|
|
this.file = file
|
|
|
|
|
this.attachments = attachments
|
2022-02-07 15:51:21 +01:00
|
|
|
this,temporaryData = {}
|
2022-01-28 15:28:21 +01:00
|
|
|
|
2022-02-03 21:01:53 +01:00
|
|
|
if(!this.ts) {
|
|
|
|
|
this.offline = true
|
|
|
|
|
} else {
|
|
|
|
|
this.offline = false
|
|
|
|
|
}
|
|
|
|
|
|
2022-01-28 15:28:21 +01:00
|
|
|
|
|
|
|
|
if (this.file) {
|
2022-02-04 00:22:35 +01:00
|
|
|
this.getFileFromDb()
|
|
|
|
|
if(this.file.type) {
|
|
|
|
|
if(this.file.type != 'application/webtrix' && typeof(this.file.type) == 'string') {
|
|
|
|
|
this.displayType = this.file.type.replace('application/','').toUpperCase()
|
|
|
|
|
}
|
2022-01-28 15:28:21 +01:00
|
|
|
}
|
2022-02-04 00:22:35 +01:00
|
|
|
|
2022-01-28 15:28:21 +01:00
|
|
|
}
|
2022-02-02 20:16:12 +01:00
|
|
|
|
2022-02-04 00:22:35 +01:00
|
|
|
|
2022-01-11 16:07:54 +01:00
|
|
|
}
|
|
|
|
|
|
2022-02-03 21:01:53 +01:00
|
|
|
private usernameToDisplayName(username) {
|
|
|
|
|
|
|
|
|
|
const firstName = capitalizeTxt(username.split('.')[0])
|
|
|
|
|
const lastName = capitalizeTxt(username.split('.')[1])
|
|
|
|
|
return firstName + ' ' + lastName
|
|
|
|
|
}
|
|
|
|
|
|
2022-02-04 00:22:35 +01:00
|
|
|
getFileFromDb() {
|
|
|
|
|
if (this.file) {
|
|
|
|
|
if (this.file.guid) {
|
|
|
|
|
this.storage.get(this.file.guid).then((image) => {
|
|
|
|
|
if(image != null) {
|
|
|
|
|
this.file.image_url = image
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
2022-02-07 15:51:21 +01:00
|
|
|
sendFile() {
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
2022-01-10 23:52:33 +01:00
|
|
|
}
|