use LokiPublicChannelAPI

pull/455/head
Ryan Tharp 6 years ago
parent 133f2a5656
commit dfd6039c83

@ -4,7 +4,6 @@
const _ = require('lodash');
const { rpc } = require('./loki_rpc');
const nodeFetch = require('node-fetch');
const DEFAULT_CONNECTIONS = 3;
const MAX_ACCEPTABLE_FAILURES = 1;
@ -89,57 +88,23 @@ class LokiMessageAPI {
};
if (isPublic) {
const { token, publicEndpoint } = publicSendData;
if (!token) {
throw new window.textsecure.PublicChatError(
`Failed to retrieve valid token for ${publicEndpoint}`
);
}
const { profile } = data;
let displayName = 'Anonymous';
if (profile && profile.displayName) {
({ displayName } = profile);
}
const payload = {
text: data.body,
annotations: [
{
type: 'network.loki.messenger.publicChat',
value: {
timestamp: messageTimeStamp,
from: displayName,
source: this.ourKey,
},
},
],
};
let result;
try {
result = await nodeFetch(publicEndpoint, {
method: 'post',
headers: {
'Content-Type': 'application/json',
Authorization: `Bearer ${token}`,
},
body: JSON.stringify(payload),
});
} catch (e) {
throw new window.textsecure.PublicChatError(
`Failed to send public chat message: ${e}`
);
}
const body = await result.json();
if (!result.ok) {
if (result.status === 401) {
// TODO: Handle token timeout
}
const error = body.meta.error_message;
const res = await publicSendData.sendMessage(
data.body,
messageTimeStamp,
displayName,
this.ourKey
);
if (res === false) {
throw new window.textsecure.PublicChatError(
`Failed to send public chat message: ${error}`
'Failed to send public chat message'
);
}
messageEventData.serverId = body.data.id;
messageEventData.serverId = res;
window.Whisper.events.trigger('publicMessageSent', messageEventData);
return;
}

Loading…
Cancel
Save