forked from Qortal/qortal-ui
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
100 lines
2.6 KiB
100 lines
2.6 KiB
export const replaceMessagesEdited = async ({ |
|
decodedMessages, |
|
parentEpml, |
|
isReceipient, |
|
decodeMessageFunc, |
|
_publicKey |
|
}) => { |
|
const findNewMessages = decodedMessages.map(async (msg) => { |
|
let msgItem = msg |
|
try { |
|
let msgQuery = `&involving=${msg.recipient}&involving=${msg.sender}` |
|
if (!isReceipient) { |
|
msgQuery = `&txGroupId=${msg.txGroupId}` |
|
} |
|
const response = await parentEpml.request("apiCall", { |
|
type: "api", |
|
url: `/chat/messages?chatreference=${msg.reference}&reverse=true${msgQuery}`, |
|
}) |
|
|
|
console.log({response}) |
|
|
|
if (response && Array.isArray(response) && response.length !== 0) { |
|
let responseItem = { ...response[0] } |
|
console.log('right before') |
|
const decodeResponseItem = decodeMessageFunc(responseItem, isReceipient, _publicKey) |
|
console.log({decodeResponseItem}) |
|
delete decodeResponseItem.timestamp |
|
msgItem = { |
|
...msg, |
|
...decodeResponseItem, |
|
editedTimestamp: response[0].timestamp, |
|
} |
|
} |
|
} catch (error) { |
|
console.log(error) |
|
} |
|
|
|
return msgItem |
|
}) |
|
const updateMessages = await Promise.all(findNewMessages) |
|
const findNewMessages2 = updateMessages.map(async (msg) => { |
|
let parsedMessageObj = msg |
|
try { |
|
parsedMessageObj = JSON.parse(msg.decodedMessage) |
|
} catch (error) { |
|
console.log('error', {parsedMessageObj}) |
|
return msg |
|
} |
|
console.log('noerror') |
|
let msgItem = msg |
|
try { |
|
let msgQuery = `&involving=${msg.recipient}&involving=${msg.sender}` |
|
if (!isReceipient) { |
|
msgQuery = `&txGroupId=${msg.txGroupId}` |
|
} |
|
|
|
console.log({parsedMessageObj}) |
|
if (parsedMessageObj.repliedTo) { |
|
const response = await parentEpml.request("apiCall", { |
|
type: "api", |
|
url: `/chat/messages?chatreference=${parsedMessageObj.repliedTo}&reverse=true${msgQuery}`, |
|
}) |
|
console.log({response2: response}) |
|
if ( |
|
response && |
|
Array.isArray(response) && |
|
response.length !== 0 |
|
) { |
|
msgItem = { |
|
...msg, |
|
repliedToData: decodeMessageFunc(response[0], isReceipient, _publicKey), |
|
} |
|
} else { |
|
const response2 = await parentEpml.request("apiCall", { |
|
type: "api", |
|
url: `/chat/messages?reference=${parsedMessageObj.repliedTo}&reverse=true${msgQuery}`, |
|
}) |
|
|
|
if ( |
|
response2 && |
|
Array.isArray(response2) && |
|
response2.length !== 0 |
|
) { |
|
msgItem = { |
|
...msg, |
|
repliedToData: decodeMessageFunc(response2[0]), |
|
} |
|
} |
|
} |
|
} |
|
} catch (error) { |
|
console.log(error) |
|
} |
|
|
|
return msgItem |
|
}) |
|
const updateMessages2 = await Promise.all(findNewMessages2) |
|
|
|
return updateMessages2 |
|
}
|
|
|