mirror of
https://github.com/Qortal/qortal-mobile.git
synced 2025-04-23 11:27:52 +00:00
1902 lines
45 KiB
TypeScript
1902 lines
45 KiB
TypeScript
import {
|
|
addDataPublishes,
|
|
addEnteredQmailTimestamp,
|
|
addTimestampEnterChat,
|
|
addTimestampGroupAnnouncement,
|
|
addTimestampMention,
|
|
addUserSettings,
|
|
banFromGroup,
|
|
cancelBan,
|
|
cancelInvitationToGroup,
|
|
checkLocalFunc,
|
|
checkNewMessages,
|
|
checkThreads,
|
|
clearAllNotifications,
|
|
createGroup,
|
|
decryptDirectFunc,
|
|
decryptSingleForPublishes,
|
|
decryptSingleFunc,
|
|
decryptWallet,
|
|
findUsableApi,
|
|
getApiKeyFromStorage,
|
|
getBalanceInfo,
|
|
getCustomNodesFromStorage,
|
|
getDataPublishes,
|
|
getEnteredQmailTimestamp,
|
|
getGroupDataSingle,
|
|
getKeyPair,
|
|
getLTCBalance,
|
|
getNameInfo,
|
|
getTempPublish,
|
|
getTimestampEnterChat,
|
|
getTimestampGroupAnnouncement,
|
|
getTimestampMention,
|
|
getUserInfo,
|
|
getUserSettings,
|
|
handleActiveGroupDataFromSocket,
|
|
inviteToGroup,
|
|
joinGroup,
|
|
kickFromGroup,
|
|
leaveGroup,
|
|
makeAdmin,
|
|
notifyAdminRegenerateSecretKey,
|
|
pauseAllQueues,
|
|
registerName,
|
|
removeAdmin,
|
|
resumeAllQueues,
|
|
saveTempPublish,
|
|
sendChatDirect,
|
|
sendChatGroup,
|
|
sendChatNotification,
|
|
sendCoin,
|
|
setChatHeads,
|
|
setGroupData,
|
|
updateThreadActivity,
|
|
walletVersion,
|
|
} from "./background";
|
|
import { decryptGroupEncryption, encryptAndPublishSymmetricKeyGroupChat, encryptAndPublishSymmetricKeyGroupChatForAdmins, publishGroupEncryptedResource, publishOnQDN } from "./backgroundFunctions/encryption";
|
|
import { PUBLIC_NOTIFICATION_CODE_FIRST_SECRET_KEY } from "./constants/codes";
|
|
import { encryptSingle } from "./qdn/encryption/group-encryption";
|
|
import { _createPoll, _voteOnPoll } from "./qortalRequests/get";
|
|
import { getData, storeData } from "./utils/chromeStorage";
|
|
|
|
export function versionCase(request, event) {
|
|
event.source.postMessage(
|
|
{
|
|
requestId: request.requestId,
|
|
action: "version",
|
|
payload: { version: "1.0" },
|
|
type: "backgroundMessageResponse",
|
|
},
|
|
event.origin
|
|
);
|
|
}
|
|
|
|
export async function getWalletInfoCase(request, event) {
|
|
try {
|
|
const response = await getKeyPair();
|
|
|
|
try {
|
|
const walletInfo = await getData('walletInfo').catch((error)=> null)
|
|
if(walletInfo){
|
|
event.source.postMessage(
|
|
{
|
|
requestId: request.requestId,
|
|
action: "getWalletInfo",
|
|
payload: { walletInfo, hasKeyPair: true },
|
|
type: "backgroundMessageResponse",
|
|
},
|
|
event.origin
|
|
);
|
|
} else {
|
|
event.source.postMessage(
|
|
{
|
|
requestId: request.requestId,
|
|
action: "getWalletInfo",
|
|
error: "No wallet info found",
|
|
type: "backgroundMessageResponse",
|
|
},
|
|
event.origin
|
|
);
|
|
}
|
|
|
|
} catch (error) {
|
|
event.source.postMessage(
|
|
{
|
|
requestId: request.requestId,
|
|
action: "getWalletInfo",
|
|
error: "No wallet info found",
|
|
type: "backgroundMessageResponse",
|
|
},
|
|
event.origin
|
|
);
|
|
}
|
|
|
|
} catch (error) {
|
|
try {
|
|
const walletInfo = await getData('walletInfo').catch((error)=> null)
|
|
if(walletInfo){
|
|
event.source.postMessage(
|
|
{
|
|
requestId: request.requestId,
|
|
action: "getWalletInfo",
|
|
payload: { walletInfo, hasKeyPair: false },
|
|
type: "backgroundMessageResponse",
|
|
},
|
|
event.origin
|
|
);
|
|
} else {
|
|
event.source.postMessage(
|
|
{
|
|
requestId: request.requestId,
|
|
action: "getWalletInfo",
|
|
error: "Wallet not authenticated",
|
|
type: "backgroundMessageResponse",
|
|
},
|
|
event.origin
|
|
);
|
|
}
|
|
} catch (error) {
|
|
event.source.postMessage(
|
|
{
|
|
requestId: request.requestId,
|
|
action: "getWalletInfo",
|
|
error: "Wallet not authenticated",
|
|
type: "backgroundMessageResponse",
|
|
},
|
|
event.origin
|
|
);
|
|
}
|
|
|
|
}
|
|
}
|
|
|
|
export async function validApiCase(request, event) {
|
|
try {
|
|
const usableApi = await findUsableApi();
|
|
|
|
event.source.postMessage(
|
|
{
|
|
requestId: request.requestId,
|
|
action: "validApi",
|
|
payload: usableApi,
|
|
type: "backgroundMessageResponse",
|
|
},
|
|
event.origin
|
|
);
|
|
} catch (error) {
|
|
event.source.postMessage(
|
|
{
|
|
requestId: request.requestId,
|
|
action: "validApi",
|
|
error: error?.message,
|
|
type: "backgroundMessageResponse",
|
|
},
|
|
event.origin
|
|
);
|
|
}
|
|
}
|
|
|
|
export async function nameCase(request, event) {
|
|
try {
|
|
const response = await getNameInfo();
|
|
|
|
event.source.postMessage(
|
|
{
|
|
requestId: request.requestId,
|
|
action: "name",
|
|
payload: response,
|
|
type: "backgroundMessageResponse",
|
|
},
|
|
event.origin
|
|
);
|
|
} catch (error) {
|
|
event.source.postMessage(
|
|
{
|
|
requestId: request.requestId,
|
|
action: "name",
|
|
error: error?.message,
|
|
type: "backgroundMessageResponse",
|
|
},
|
|
event.origin
|
|
);
|
|
}
|
|
}
|
|
|
|
export async function userInfoCase(request, event) {
|
|
try {
|
|
const response = await getUserInfo();
|
|
|
|
event.source.postMessage(
|
|
{
|
|
requestId: request.requestId,
|
|
action: "userInfo",
|
|
payload: response,
|
|
type: "backgroundMessageResponse",
|
|
},
|
|
event.origin
|
|
);
|
|
} catch (error) {
|
|
event.source.postMessage(
|
|
{
|
|
requestId: request.requestId,
|
|
action: "userInfo",
|
|
error: "User not authenticated",
|
|
type: "backgroundMessageResponse",
|
|
},
|
|
event.origin
|
|
);
|
|
}
|
|
}
|
|
|
|
export async function decryptWalletCase(request, event) {
|
|
try {
|
|
const { password, wallet } = request.payload;
|
|
const response = await decryptWallet({password, wallet, walletVersion});
|
|
event.source.postMessage(
|
|
{
|
|
requestId: request.requestId,
|
|
action: "decryptWallet",
|
|
payload: response,
|
|
type: "backgroundMessageResponse",
|
|
},
|
|
event.origin
|
|
);
|
|
} catch (error) {
|
|
event.source.postMessage(
|
|
{
|
|
requestId: request.requestId,
|
|
action: "decryptWallet",
|
|
error: error?.message,
|
|
type: "backgroundMessageResponse",
|
|
},
|
|
event.origin
|
|
);
|
|
}
|
|
}
|
|
|
|
export async function balanceCase(request, event) {
|
|
try {
|
|
const response = await getBalanceInfo();
|
|
|
|
event.source.postMessage(
|
|
{
|
|
requestId: request.requestId,
|
|
action: "balance",
|
|
payload: response,
|
|
type: "backgroundMessageResponse",
|
|
},
|
|
event.origin
|
|
);
|
|
} catch (error) {
|
|
event.source.postMessage(
|
|
{
|
|
requestId: request.requestId,
|
|
action: "balance",
|
|
error: error?.message,
|
|
type: "backgroundMessageResponse",
|
|
},
|
|
event.origin
|
|
);
|
|
}
|
|
}
|
|
export async function ltcBalanceCase(request, event) {
|
|
try {
|
|
const response = await getLTCBalance();
|
|
|
|
event.source.postMessage(
|
|
{
|
|
requestId: request.requestId,
|
|
action: "ltcBalance",
|
|
payload: response,
|
|
type: "backgroundMessageResponse",
|
|
},
|
|
event.origin
|
|
);
|
|
} catch (error) {
|
|
event.source.postMessage(
|
|
{
|
|
requestId: request.requestId,
|
|
action: "ltcBalance",
|
|
error: error?.message,
|
|
type: "backgroundMessageResponse",
|
|
},
|
|
event.origin
|
|
);
|
|
}
|
|
}
|
|
|
|
export async function sendCoinCase(request, event) {
|
|
try {
|
|
const { receiver, password, amount } = request.payload;
|
|
const { res } = await sendCoin({ receiver, password, amount });
|
|
if (!res?.success) {
|
|
event.source.postMessage(
|
|
{
|
|
requestId: request.requestId,
|
|
action: "sendCoin",
|
|
error: res?.data?.message,
|
|
type: "backgroundMessageResponse",
|
|
},
|
|
event.origin
|
|
);
|
|
return;
|
|
}
|
|
event.source.postMessage(
|
|
{
|
|
requestId: request.requestId,
|
|
action: "sendCoin",
|
|
payload: true,
|
|
type: "backgroundMessageResponse",
|
|
},
|
|
event.origin
|
|
);
|
|
} catch (error) {
|
|
event.source.postMessage(
|
|
{
|
|
requestId: request.requestId,
|
|
action: "sendCoin",
|
|
error: error?.message,
|
|
type: "backgroundMessageResponse",
|
|
},
|
|
event.origin
|
|
);
|
|
}
|
|
}
|
|
|
|
export async function inviteToGroupCase(request, event) {
|
|
try {
|
|
const { groupId, qortalAddress, inviteTime } = request.payload;
|
|
const response = await inviteToGroup({
|
|
groupId,
|
|
qortalAddress,
|
|
inviteTime,
|
|
});
|
|
|
|
event.source.postMessage(
|
|
{
|
|
requestId: request.requestId,
|
|
action: "inviteToGroup",
|
|
payload: response,
|
|
type: "backgroundMessageResponse",
|
|
},
|
|
event.origin
|
|
);
|
|
} catch (error) {
|
|
event.source.postMessage(
|
|
{
|
|
requestId: request.requestId,
|
|
action: "inviteToGroup",
|
|
error: error?.message,
|
|
type: "backgroundMessageResponse",
|
|
},
|
|
event.origin
|
|
);
|
|
}
|
|
}
|
|
|
|
export async function saveTempPublishCase(request, event) {
|
|
try {
|
|
const { data, key } = request.payload;
|
|
const response = await saveTempPublish({ data, key });
|
|
|
|
event.source.postMessage(
|
|
{
|
|
requestId: request.requestId,
|
|
action: "saveTempPublish",
|
|
payload: response,
|
|
type: "backgroundMessageResponse",
|
|
},
|
|
event.origin
|
|
);
|
|
} catch (error) {
|
|
event.source.postMessage(
|
|
{
|
|
requestId: request.requestId,
|
|
action: "saveTempPublish",
|
|
error: error?.message,
|
|
type: "backgroundMessageResponse",
|
|
},
|
|
event.origin
|
|
);
|
|
}
|
|
}
|
|
|
|
export async function getTempPublishCase(request, event) {
|
|
try {
|
|
const response = await getTempPublish();
|
|
|
|
event.source.postMessage(
|
|
{
|
|
requestId: request.requestId,
|
|
action: "getTempPublish",
|
|
payload: response,
|
|
type: "backgroundMessageResponse",
|
|
},
|
|
event.origin
|
|
);
|
|
} catch (error) {
|
|
event.source.postMessage(
|
|
{
|
|
requestId: request.requestId,
|
|
action: "getTempPublish",
|
|
error: error?.message,
|
|
type: "backgroundMessageResponse",
|
|
},
|
|
event.origin
|
|
);
|
|
}
|
|
}
|
|
|
|
export async function createGroupCase(request, event) {
|
|
try {
|
|
const {
|
|
groupName,
|
|
groupDescription,
|
|
groupType,
|
|
groupApprovalThreshold,
|
|
minBlock,
|
|
maxBlock,
|
|
} = request.payload;
|
|
const response = await createGroup({
|
|
groupName,
|
|
groupDescription,
|
|
groupType,
|
|
groupApprovalThreshold,
|
|
minBlock,
|
|
maxBlock,
|
|
});
|
|
|
|
event.source.postMessage(
|
|
{
|
|
requestId: request.requestId,
|
|
action: "createGroup",
|
|
payload: response,
|
|
type: "backgroundMessageResponse",
|
|
},
|
|
event.origin
|
|
);
|
|
} catch (error) {
|
|
event.source.postMessage(
|
|
{
|
|
requestId: request.requestId,
|
|
action: "createGroup",
|
|
error: error?.message,
|
|
type: "backgroundMessageResponse",
|
|
},
|
|
event.origin
|
|
);
|
|
}
|
|
}
|
|
|
|
export async function cancelInvitationToGroupCase(request, event) {
|
|
try {
|
|
const { groupId, qortalAddress } = request.payload;
|
|
const response = await cancelInvitationToGroup({ groupId, qortalAddress });
|
|
|
|
event.source.postMessage(
|
|
{
|
|
requestId: request.requestId,
|
|
action: "cancelInvitationToGroup",
|
|
payload: response,
|
|
type: "backgroundMessageResponse",
|
|
},
|
|
event.origin
|
|
);
|
|
} catch (error) {
|
|
event.source.postMessage(
|
|
{
|
|
requestId: request.requestId,
|
|
action: "cancelInvitationToGroup",
|
|
error: error?.message,
|
|
type: "backgroundMessageResponse",
|
|
},
|
|
event.origin
|
|
);
|
|
}
|
|
}
|
|
|
|
export async function leaveGroupCase(request, event) {
|
|
try {
|
|
const { groupId } = request.payload;
|
|
const response = await leaveGroup({ groupId });
|
|
|
|
event.source.postMessage(
|
|
{
|
|
requestId: request.requestId,
|
|
action: "leaveGroup",
|
|
payload: response,
|
|
type: "backgroundMessageResponse",
|
|
},
|
|
event.origin
|
|
);
|
|
} catch (error) {
|
|
event.source.postMessage(
|
|
{
|
|
requestId: request.requestId,
|
|
action: "leaveGroup",
|
|
error: error?.message,
|
|
type: "backgroundMessageResponse",
|
|
},
|
|
event.origin
|
|
);
|
|
}
|
|
}
|
|
|
|
export async function joinGroupCase(request, event) {
|
|
try {
|
|
const { groupId } = request.payload;
|
|
const response = await joinGroup({ groupId });
|
|
|
|
event.source.postMessage(
|
|
{
|
|
requestId: request.requestId,
|
|
action: "joinGroup",
|
|
payload: response,
|
|
type: "backgroundMessageResponse",
|
|
},
|
|
event.origin
|
|
);
|
|
} catch (error) {
|
|
event.source.postMessage(
|
|
{
|
|
requestId: request.requestId,
|
|
action: "joinGroup",
|
|
error: error?.message,
|
|
type: "backgroundMessageResponse",
|
|
},
|
|
event.origin
|
|
);
|
|
}
|
|
}
|
|
|
|
export async function kickFromGroupCase(request, event) {
|
|
try {
|
|
const { groupId, qortalAddress, rBanReason } = request.payload;
|
|
const response = await kickFromGroup({
|
|
groupId,
|
|
qortalAddress,
|
|
rBanReason,
|
|
});
|
|
|
|
event.source.postMessage(
|
|
{
|
|
requestId: request.requestId,
|
|
action: "kickFromGroup",
|
|
payload: response,
|
|
type: "backgroundMessageResponse",
|
|
},
|
|
event.origin
|
|
);
|
|
} catch (error) {
|
|
event.source.postMessage(
|
|
{
|
|
requestId: request.requestId,
|
|
action: "kickFromGroup",
|
|
error: error?.message,
|
|
type: "backgroundMessageResponse",
|
|
},
|
|
event.origin
|
|
);
|
|
}
|
|
}
|
|
|
|
export async function banFromGroupCase(request, event) {
|
|
try {
|
|
const { groupId, qortalAddress, rBanReason, rBanTime } = request.payload;
|
|
const response = await banFromGroup({
|
|
groupId,
|
|
qortalAddress,
|
|
rBanReason,
|
|
rBanTime,
|
|
});
|
|
|
|
event.source.postMessage(
|
|
{
|
|
requestId: request.requestId,
|
|
action: "banFromGroup",
|
|
payload: response,
|
|
type: "backgroundMessageResponse",
|
|
},
|
|
event.origin
|
|
);
|
|
} catch (error) {
|
|
event.source.postMessage(
|
|
{
|
|
requestId: request.requestId,
|
|
action: "banFromGroup",
|
|
error: error?.message,
|
|
type: "backgroundMessageResponse",
|
|
},
|
|
event.origin
|
|
);
|
|
}
|
|
}
|
|
|
|
export async function addDataPublishesCase(request, event) {
|
|
try {
|
|
const { data, groupId, type } = request.payload;
|
|
const response = await addDataPublishes( data, groupId, type );
|
|
|
|
|
|
event.source.postMessage(
|
|
{
|
|
requestId: request.requestId,
|
|
action: "addDataPublishes",
|
|
payload: response,
|
|
type: "backgroundMessageResponse",
|
|
},
|
|
event.origin
|
|
);
|
|
} catch (error) {
|
|
event.source.postMessage(
|
|
{
|
|
requestId: request.requestId,
|
|
action: "addDataPublishes",
|
|
error: error?.message,
|
|
type: "backgroundMessageResponse",
|
|
},
|
|
event.origin
|
|
);
|
|
}
|
|
}
|
|
|
|
export async function getDataPublishesCase(request, event) {
|
|
try {
|
|
const { groupId, type } = request.payload;
|
|
const response = await getDataPublishes(groupId, type );
|
|
|
|
|
|
event.source.postMessage(
|
|
{
|
|
requestId: request.requestId,
|
|
action: "getDataPublishes",
|
|
payload: response,
|
|
type: "backgroundMessageResponse",
|
|
},
|
|
event.origin
|
|
);
|
|
} catch (error) {
|
|
event.source.postMessage(
|
|
{
|
|
requestId: request.requestId,
|
|
action: "getDataPublishes",
|
|
error: error?.message,
|
|
type: "backgroundMessageResponse",
|
|
},
|
|
event.origin
|
|
);
|
|
}
|
|
}
|
|
export async function addUserSettingsCase(request, event) {
|
|
try {
|
|
const { keyValue } = request.payload;
|
|
const response = await addUserSettings({ keyValue });
|
|
|
|
event.source.postMessage(
|
|
{
|
|
requestId: request.requestId,
|
|
action: "addUserSettings",
|
|
payload: response,
|
|
type: "backgroundMessageResponse",
|
|
},
|
|
event.origin
|
|
);
|
|
} catch (error) {
|
|
event.source.postMessage(
|
|
{
|
|
requestId: request.requestId,
|
|
action: "addUserSettings",
|
|
error: error?.message,
|
|
type: "backgroundMessageResponse",
|
|
},
|
|
event.origin
|
|
);
|
|
}
|
|
}
|
|
|
|
export async function getUserSettingsCase(request, event) {
|
|
try {
|
|
const { key } = request.payload;
|
|
const response = await getUserSettings({ key });
|
|
|
|
event.source.postMessage(
|
|
{
|
|
requestId: request.requestId,
|
|
action: "getUserSettings",
|
|
payload: response,
|
|
type: "backgroundMessageResponse",
|
|
},
|
|
event.origin
|
|
);
|
|
} catch (error) {
|
|
event.source.postMessage(
|
|
{
|
|
requestId: request.requestId,
|
|
action: "getUserSettings",
|
|
error: error?.message,
|
|
type: "backgroundMessageResponse",
|
|
},
|
|
event.origin
|
|
);
|
|
}
|
|
}
|
|
|
|
export async function cancelBanCase(request, event) {
|
|
try {
|
|
const { groupId, qortalAddress } = request.payload;
|
|
const response = await cancelBan({ groupId, qortalAddress });
|
|
|
|
event.source.postMessage(
|
|
{
|
|
requestId: request.requestId,
|
|
action: "cancelBan",
|
|
payload: response,
|
|
type: "backgroundMessageResponse",
|
|
},
|
|
event.origin
|
|
);
|
|
} catch (error) {
|
|
event.source.postMessage(
|
|
{
|
|
requestId: request.requestId,
|
|
action: "cancelBan",
|
|
error: error?.message,
|
|
type: "backgroundMessageResponse",
|
|
},
|
|
event.origin
|
|
);
|
|
}
|
|
}
|
|
|
|
export async function registerNameCase(request, event) {
|
|
try {
|
|
const { name } = request.payload;
|
|
const response = await registerName({ name });
|
|
|
|
event.source.postMessage(
|
|
{
|
|
requestId: request.requestId,
|
|
action: "registerName",
|
|
payload: response,
|
|
type: "backgroundMessageResponse",
|
|
},
|
|
event.origin
|
|
);
|
|
} catch (error) {
|
|
event.source.postMessage(
|
|
{
|
|
requestId: request.requestId,
|
|
action: "registerName",
|
|
error: error?.message,
|
|
type: "backgroundMessageResponse",
|
|
},
|
|
event.origin
|
|
);
|
|
}
|
|
}
|
|
|
|
export async function makeAdminCase(request, event) {
|
|
try {
|
|
const { groupId, qortalAddress } = request.payload;
|
|
const response = await makeAdmin({ groupId, qortalAddress });
|
|
|
|
event.source.postMessage(
|
|
{
|
|
requestId: request.requestId,
|
|
action: "makeAdmin",
|
|
payload: response,
|
|
type: "backgroundMessageResponse",
|
|
},
|
|
event.origin
|
|
);
|
|
} catch (error) {
|
|
event.source.postMessage(
|
|
{
|
|
requestId: request.requestId,
|
|
action: "makeAdmin",
|
|
error: error?.message,
|
|
type: "backgroundMessageResponse",
|
|
},
|
|
event.origin
|
|
);
|
|
}
|
|
}
|
|
|
|
export async function removeAdminCase(request, event) {
|
|
try {
|
|
const { groupId, qortalAddress } = request.payload;
|
|
const response = await removeAdmin({ groupId, qortalAddress });
|
|
|
|
event.source.postMessage(
|
|
{
|
|
requestId: request.requestId,
|
|
action: "removeAdmin",
|
|
payload: response,
|
|
type: "backgroundMessageResponse",
|
|
},
|
|
event.origin
|
|
);
|
|
} catch (error) {
|
|
event.source.postMessage(
|
|
{
|
|
requestId: request.requestId,
|
|
action: "removeAdmin",
|
|
error: error?.message,
|
|
type: "backgroundMessageResponse",
|
|
},
|
|
event.origin
|
|
);
|
|
}
|
|
}
|
|
|
|
export async function notificationCase(request, event) {
|
|
try {
|
|
const notificationId = "chat_notification_" + Date.now(); // Create a unique ID
|
|
|
|
// chrome.notifications.create(notificationId, {
|
|
// type: "basic",
|
|
// iconUrl: "qort.png", // Add an appropriate icon for chat notifications
|
|
// title: "New Group Message!",
|
|
// message: "You have received a new message from one of your groups",
|
|
// priority: 2, // Use the maximum priority to ensure it's
|
|
// });
|
|
// Set a timeout to clear the notification after 'timeout' milliseconds
|
|
// setTimeout(() => {
|
|
// chrome.notifications.clear(notificationId);
|
|
// }, 3000);
|
|
|
|
// event.source.postMessage(
|
|
// {
|
|
// requestId: request.requestId,
|
|
// action: "notification",
|
|
// payload: true,
|
|
// type: "backgroundMessageResponse",
|
|
// },
|
|
// event.origin
|
|
// );
|
|
} catch (error) {
|
|
event.source.postMessage(
|
|
{
|
|
requestId: request.requestId,
|
|
action: "notification",
|
|
error: "Error displaying notifaction",
|
|
type: "backgroundMessageResponse",
|
|
},
|
|
event.origin
|
|
);
|
|
}
|
|
}
|
|
|
|
export async function addTimestampEnterChatCase(request, event) {
|
|
try {
|
|
const { groupId, timestamp } = request.payload;
|
|
const response = await addTimestampEnterChat({ groupId, timestamp });
|
|
|
|
event.source.postMessage(
|
|
{
|
|
requestId: request.requestId,
|
|
action: "addTimestampEnterChat",
|
|
payload: response,
|
|
type: "backgroundMessageResponse",
|
|
},
|
|
event.origin
|
|
);
|
|
} catch (error) {
|
|
event.source.postMessage(
|
|
{
|
|
requestId: request.requestId,
|
|
action: "addTimestampEnterChat",
|
|
error: error?.message,
|
|
type: "backgroundMessageResponse",
|
|
},
|
|
event.origin
|
|
);
|
|
}
|
|
}
|
|
|
|
export async function setApiKeyCase(request, event) {
|
|
try {
|
|
const payload = request.payload;
|
|
storeData('apiKey', payload)
|
|
event.source.postMessage(
|
|
{
|
|
requestId: request.requestId,
|
|
action: "setApiKey",
|
|
payload: true,
|
|
type: "backgroundMessageResponse",
|
|
},
|
|
event.origin
|
|
);
|
|
} catch (error) {
|
|
event.source.postMessage(
|
|
{
|
|
requestId: request.requestId,
|
|
action: "setApiKey",
|
|
error: error?.message,
|
|
type: "backgroundMessageResponse",
|
|
},
|
|
event.origin
|
|
);
|
|
}
|
|
}
|
|
export async function setCustomNodesCase(request, event) {
|
|
try {
|
|
const nodes = request.payload;
|
|
storeData('customNodes', nodes)
|
|
|
|
event.source.postMessage(
|
|
{
|
|
requestId: request.requestId,
|
|
action: "setCustomNodes",
|
|
payload: true,
|
|
type: "backgroundMessageResponse",
|
|
},
|
|
event.origin
|
|
);
|
|
} catch (error) {
|
|
event.source.postMessage(
|
|
{
|
|
requestId: request.requestId,
|
|
action: "setCustomNodes",
|
|
error: error?.message,
|
|
type: "backgroundMessageResponse",
|
|
},
|
|
event.origin
|
|
);
|
|
}
|
|
}
|
|
|
|
export async function getApiKeyCase(request, event) {
|
|
try {
|
|
const response = await getApiKeyFromStorage();
|
|
|
|
event.source.postMessage(
|
|
{
|
|
requestId: request.requestId,
|
|
action: "getApiKey",
|
|
payload: response,
|
|
type: "backgroundMessageResponse",
|
|
},
|
|
event.origin
|
|
);
|
|
} catch (error) {
|
|
event.source.postMessage(
|
|
{
|
|
requestId: request.requestId,
|
|
action: "getApiKey",
|
|
error: error?.message,
|
|
type: "backgroundMessageResponse",
|
|
},
|
|
event.origin
|
|
);
|
|
}
|
|
}
|
|
|
|
export async function getCustomNodesFromStorageCase(request, event) {
|
|
try {
|
|
const response = await getCustomNodesFromStorage();
|
|
|
|
event.source.postMessage(
|
|
{
|
|
requestId: request.requestId,
|
|
action: "getCustomNodesFromStorage",
|
|
payload: response,
|
|
type: "backgroundMessageResponse",
|
|
},
|
|
event.origin
|
|
);
|
|
} catch (error) {
|
|
event.source.postMessage(
|
|
{
|
|
requestId: request.requestId,
|
|
action: "getCustomNodesFromStorage",
|
|
error: error?.message,
|
|
type: "backgroundMessageResponse",
|
|
},
|
|
event.origin
|
|
);
|
|
}
|
|
}
|
|
|
|
export async function notifyAdminRegenerateSecretKeyCase(request, event) {
|
|
try {
|
|
const { groupName, adminAddress } = request.payload;
|
|
const response = await notifyAdminRegenerateSecretKey({
|
|
groupName,
|
|
adminAddress,
|
|
});
|
|
|
|
event.source.postMessage(
|
|
{
|
|
requestId: request.requestId,
|
|
action: "notifyAdminRegenerateSecretKey",
|
|
payload: response,
|
|
type: "backgroundMessageResponse",
|
|
},
|
|
event.origin
|
|
);
|
|
} catch (error) {
|
|
event.source.postMessage(
|
|
{
|
|
requestId: request.requestId,
|
|
action: "notifyAdminRegenerateSecretKey",
|
|
error: error?.message,
|
|
type: "backgroundMessageResponse",
|
|
},
|
|
event.origin
|
|
);
|
|
}
|
|
}
|
|
|
|
export async function addGroupNotificationTimestampCase(request, event) {
|
|
try {
|
|
const { groupId, timestamp } = request.payload;
|
|
const response = await addTimestampGroupAnnouncement({
|
|
groupId,
|
|
timestamp,
|
|
seenTimestamp: true
|
|
});
|
|
|
|
event.source.postMessage(
|
|
{
|
|
requestId: request.requestId,
|
|
action: "addGroupNotificationTimestamp",
|
|
payload: response,
|
|
type: "backgroundMessageResponse",
|
|
},
|
|
event.origin
|
|
);
|
|
} catch (error) {
|
|
event.source.postMessage(
|
|
{
|
|
requestId: request.requestId,
|
|
action: "addGroupNotificationTimestamp",
|
|
error: error?.message,
|
|
type: "backgroundMessageResponse",
|
|
},
|
|
event.origin
|
|
);
|
|
}
|
|
}
|
|
|
|
export async function clearAllNotificationsCase(request, event) {
|
|
try {
|
|
await clearAllNotifications();
|
|
|
|
event.source.postMessage(
|
|
{
|
|
requestId: request.requestId,
|
|
action: "clearAllNotifications",
|
|
payload: true,
|
|
type: "backgroundMessageResponse",
|
|
},
|
|
event.origin
|
|
);
|
|
} catch (error) {
|
|
event.source.postMessage(
|
|
{
|
|
requestId: request.requestId,
|
|
action: "clearAllNotifications",
|
|
error: error?.message,
|
|
type: "backgroundMessageResponse",
|
|
},
|
|
event.origin
|
|
);
|
|
}
|
|
}
|
|
|
|
export async function setGroupDataCase(request, event) {
|
|
try {
|
|
const { groupId, secretKeyData, secretKeyResource, admins } =
|
|
request.payload;
|
|
const response = await setGroupData({
|
|
groupId,
|
|
secretKeyData,
|
|
secretKeyResource,
|
|
admins,
|
|
});
|
|
|
|
event.source.postMessage(
|
|
{
|
|
requestId: request.requestId,
|
|
action: "setGroupData",
|
|
payload: response,
|
|
type: "backgroundMessageResponse",
|
|
},
|
|
event.origin
|
|
);
|
|
} catch (error) {
|
|
event.source.postMessage(
|
|
{
|
|
requestId: request.requestId,
|
|
action: "setGroupData",
|
|
error: error?.message,
|
|
type: "backgroundMessageResponse",
|
|
},
|
|
event.origin
|
|
);
|
|
}
|
|
}
|
|
|
|
export async function getGroupDataSingleCase(request, event) {
|
|
try {
|
|
const { groupId } = request.payload;
|
|
const response = await getGroupDataSingle({ groupId });
|
|
|
|
event.source.postMessage(
|
|
{
|
|
requestId: request.requestId,
|
|
action: "getGroupDataSingle",
|
|
payload: response,
|
|
type: "backgroundMessageResponse",
|
|
},
|
|
event.origin
|
|
);
|
|
} catch (error) {
|
|
event.source.postMessage(
|
|
{
|
|
requestId: request.requestId,
|
|
action: "getGroupDataSingle",
|
|
error: error?.message,
|
|
type: "backgroundMessageResponse",
|
|
},
|
|
event.origin
|
|
);
|
|
}
|
|
}
|
|
|
|
export async function getTimestampEnterChatCase(request, event) {
|
|
try {
|
|
const response = await getTimestampEnterChat();
|
|
|
|
event.source.postMessage(
|
|
{
|
|
requestId: request.requestId,
|
|
action: "getTimestampEnterChat",
|
|
payload: response,
|
|
type: "backgroundMessageResponse",
|
|
},
|
|
event.origin
|
|
);
|
|
} catch (error) {
|
|
event.source.postMessage(
|
|
{
|
|
requestId: request.requestId,
|
|
action: "getTimestampEnterChat",
|
|
error: error?.message,
|
|
type: "backgroundMessageResponse",
|
|
},
|
|
event.origin
|
|
);
|
|
}
|
|
}
|
|
|
|
export async function getGroupNotificationTimestampCase(request, event) {
|
|
try {
|
|
const response = await getTimestampGroupAnnouncement();
|
|
|
|
event.source.postMessage(
|
|
{
|
|
requestId: request.requestId,
|
|
action: "getGroupNotificationTimestamp",
|
|
payload: response,
|
|
type: "backgroundMessageResponse",
|
|
},
|
|
event.origin
|
|
);
|
|
} catch (error) {
|
|
event.source.postMessage(
|
|
{
|
|
requestId: request.requestId,
|
|
action: "getGroupNotificationTimestamp",
|
|
error: error?.message,
|
|
type: "backgroundMessageResponse",
|
|
},
|
|
event.origin
|
|
);
|
|
}
|
|
}
|
|
|
|
export async function encryptAndPublishSymmetricKeyGroupChatCase(
|
|
request,
|
|
event
|
|
) {
|
|
try {
|
|
const { groupId, previousData, previousNumber } = request.payload;
|
|
const { data, numberOfMembers } =
|
|
await encryptAndPublishSymmetricKeyGroupChat({
|
|
groupId,
|
|
previousData,
|
|
previousNumber,
|
|
});
|
|
|
|
event.source.postMessage(
|
|
{
|
|
requestId: request.requestId,
|
|
action: "encryptAndPublishSymmetricKeyGroupChat",
|
|
payload: data,
|
|
type: "backgroundMessageResponse",
|
|
},
|
|
event.origin
|
|
);
|
|
if (!previousData) {
|
|
try {
|
|
sendChatGroup({
|
|
groupId,
|
|
typeMessage: undefined,
|
|
chatReference: undefined,
|
|
messageText: PUBLIC_NOTIFICATION_CODE_FIRST_SECRET_KEY,
|
|
});
|
|
} catch (error) {
|
|
// error in sending chat message
|
|
}
|
|
}
|
|
try {
|
|
sendChatNotification(data, groupId, previousData, numberOfMembers);
|
|
} catch (error) {
|
|
// error in sending notification
|
|
}
|
|
} catch (error) {
|
|
event.source.postMessage(
|
|
{
|
|
requestId: request.requestId,
|
|
action: "encryptAndPublishSymmetricKeyGroupChat",
|
|
error: error?.message,
|
|
type: "backgroundMessageResponse",
|
|
},
|
|
event.origin
|
|
);
|
|
}
|
|
}
|
|
|
|
export async function encryptAndPublishSymmetricKeyGroupChatForAdminsCase(
|
|
request,
|
|
event
|
|
) {
|
|
try {
|
|
const { groupId, previousData, admins } = request.payload;
|
|
const { data, numberOfMembers } =
|
|
await encryptAndPublishSymmetricKeyGroupChatForAdmins({
|
|
groupId,
|
|
previousData,
|
|
admins
|
|
});
|
|
|
|
event.source.postMessage(
|
|
{
|
|
requestId: request.requestId,
|
|
action: "encryptAndPublishSymmetricKeyGroupChatForAdmins",
|
|
payload: data,
|
|
type: "backgroundMessageResponse",
|
|
},
|
|
event.origin
|
|
);
|
|
} catch (error) {
|
|
event.source.postMessage(
|
|
{
|
|
requestId: request.requestId,
|
|
action: "encryptAndPublishSymmetricKeyGroupChat",
|
|
error: error?.message,
|
|
type: "backgroundMessageResponse",
|
|
},
|
|
event.origin
|
|
);
|
|
}
|
|
}
|
|
|
|
export async function publishGroupEncryptedResourceCase(request, event) {
|
|
try {
|
|
const {encryptedData, identifier} = request.payload;
|
|
const response = await publishGroupEncryptedResource({encryptedData, identifier});
|
|
|
|
event.source.postMessage(
|
|
{
|
|
requestId: request.requestId,
|
|
action: "publishGroupEncryptedResource",
|
|
payload: response,
|
|
type: "backgroundMessageResponse",
|
|
},
|
|
event.origin
|
|
);
|
|
} catch (error) {
|
|
event.source.postMessage(
|
|
{
|
|
requestId: request.requestId,
|
|
action: "publishGroupEncryptedResource",
|
|
error: error?.message,
|
|
type: "backgroundMessageResponse",
|
|
},
|
|
event.origin
|
|
);
|
|
}
|
|
}
|
|
|
|
export async function publishOnQDNCase(request, event) {
|
|
try {
|
|
const {data, identifier, service, title,
|
|
description,
|
|
category,
|
|
tag1,
|
|
tag2,
|
|
tag3,
|
|
tag4,
|
|
tag5, uploadType} = request.payload;
|
|
const response = await publishOnQDN({data, identifier, service, title,
|
|
description,
|
|
category,
|
|
tag1,
|
|
tag2,
|
|
tag3,
|
|
tag4,
|
|
tag5, uploadType});
|
|
|
|
event.source.postMessage(
|
|
{
|
|
requestId: request.requestId,
|
|
action: "publishOnQDN",
|
|
payload: response,
|
|
type: "backgroundMessageResponse",
|
|
},
|
|
event.origin
|
|
);
|
|
} catch (error) {
|
|
event.source.postMessage(
|
|
{
|
|
requestId: request.requestId,
|
|
action: "publishOnQDN",
|
|
error: error?.message || 'Unable to publish',
|
|
type: "backgroundMessageResponse",
|
|
},
|
|
event.origin
|
|
);
|
|
}
|
|
}
|
|
|
|
export async function handleActiveGroupDataFromSocketCase(request, event) {
|
|
try {
|
|
const {groups, directs} = request.payload;
|
|
const response = await handleActiveGroupDataFromSocket({groups, directs});
|
|
|
|
event.source.postMessage(
|
|
{
|
|
requestId: request.requestId,
|
|
action: "handleActiveGroupDataFromSocket",
|
|
payload: true,
|
|
type: "backgroundMessageResponse",
|
|
},
|
|
event.origin
|
|
);
|
|
} catch (error) {
|
|
event.source.postMessage(
|
|
{
|
|
requestId: request.requestId,
|
|
action: "handleActiveGroupDataFromSocket",
|
|
error: error?.message,
|
|
type: "backgroundMessageResponse",
|
|
},
|
|
event.origin
|
|
);
|
|
}
|
|
}
|
|
|
|
export async function getThreadActivityCase(request, event) {
|
|
try {
|
|
const response = await checkThreads(true)
|
|
|
|
event.source.postMessage(
|
|
{
|
|
requestId: request.requestId,
|
|
action: "getThreadActivity",
|
|
payload: response,
|
|
type: "backgroundMessageResponse",
|
|
},
|
|
event.origin
|
|
);
|
|
} catch (error) {
|
|
event.source.postMessage(
|
|
{
|
|
requestId: request.requestId,
|
|
action: "getThreadActivity",
|
|
error: error?.message,
|
|
type: "backgroundMessageResponse",
|
|
},
|
|
event.origin
|
|
);
|
|
}
|
|
}
|
|
|
|
export async function updateThreadActivityCase(request, event) {
|
|
try {
|
|
const { threadId, qortalName, groupId, thread} = request.payload;
|
|
const response = await updateThreadActivity({ threadId, qortalName, groupId, thread });
|
|
|
|
event.source.postMessage(
|
|
{
|
|
requestId: request.requestId,
|
|
action: "updateThreadActivity",
|
|
payload: response,
|
|
type: "backgroundMessageResponse",
|
|
},
|
|
event.origin
|
|
);
|
|
} catch (error) {
|
|
event.source.postMessage(
|
|
{
|
|
requestId: request.requestId,
|
|
action: "updateThreadActivity",
|
|
error: error?.message,
|
|
type: "backgroundMessageResponse",
|
|
},
|
|
event.origin
|
|
);
|
|
}
|
|
}
|
|
|
|
export async function decryptGroupEncryptionCase(request, event) {
|
|
try {
|
|
const { data} = request.payload;
|
|
const response = await decryptGroupEncryption({ data });
|
|
event.source.postMessage(
|
|
{
|
|
requestId: request.requestId,
|
|
action: "decryptGroupEncryption",
|
|
payload: response,
|
|
type: "backgroundMessageResponse",
|
|
},
|
|
event.origin
|
|
);
|
|
} catch (error) {
|
|
event.source.postMessage(
|
|
{
|
|
requestId: request.requestId,
|
|
action: "decryptGroupEncryption",
|
|
error: error?.message,
|
|
type: "backgroundMessageResponse",
|
|
},
|
|
event.origin
|
|
);
|
|
}
|
|
}
|
|
|
|
export async function encryptSingleCase(request, event) {
|
|
try {
|
|
const { data, secretKeyObject, typeNumber} = request.payload;
|
|
const response = await encryptSingle({ data64: data, secretKeyObject, typeNumber });
|
|
|
|
event.source.postMessage(
|
|
{
|
|
requestId: request.requestId,
|
|
action: "encryptSingle",
|
|
payload: response,
|
|
type: "backgroundMessageResponse",
|
|
},
|
|
event.origin
|
|
);
|
|
} catch (error) {
|
|
event.source.postMessage(
|
|
{
|
|
requestId: request.requestId,
|
|
action: "encryptSingle",
|
|
error: error?.message,
|
|
type: "backgroundMessageResponse",
|
|
},
|
|
event.origin
|
|
);
|
|
}
|
|
}
|
|
|
|
export async function decryptSingleCase(request, event) {
|
|
try {
|
|
const { data, secretKeyObject, skipDecodeBase64} = request.payload;
|
|
const response = await decryptSingleFunc({ messages: data, secretKeyObject, skipDecodeBase64 });
|
|
event.source.postMessage(
|
|
{
|
|
requestId: request.requestId,
|
|
action: "decryptSingle",
|
|
payload: response,
|
|
type: "backgroundMessageResponse",
|
|
},
|
|
event.origin
|
|
);
|
|
} catch (error) {
|
|
event.source.postMessage(
|
|
{
|
|
requestId: request.requestId,
|
|
action: "decryptSingle",
|
|
error: error?.message,
|
|
type: "backgroundMessageResponse",
|
|
},
|
|
event.origin
|
|
);
|
|
}
|
|
}
|
|
|
|
export async function pauseAllQueuesCase(request, event) {
|
|
try {
|
|
await pauseAllQueues();
|
|
|
|
event.source.postMessage(
|
|
{
|
|
requestId: request.requestId,
|
|
action: "pauseAllQueues",
|
|
payload: true,
|
|
type: "backgroundMessageResponse",
|
|
},
|
|
event.origin
|
|
);
|
|
} catch (error) {
|
|
event.source.postMessage(
|
|
{
|
|
requestId: request.requestId,
|
|
action: "pauseAllQueues",
|
|
error: error?.message,
|
|
type: "backgroundMessageResponse",
|
|
},
|
|
event.origin
|
|
);
|
|
}
|
|
}
|
|
|
|
export async function resumeAllQueuesCase(request, event) {
|
|
try {
|
|
await resumeAllQueues();
|
|
|
|
event.source.postMessage(
|
|
{
|
|
requestId: request.requestId,
|
|
action: "resumeAllQueues",
|
|
payload: true,
|
|
type: "backgroundMessageResponse",
|
|
},
|
|
event.origin
|
|
);
|
|
} catch (error) {
|
|
event.source.postMessage(
|
|
{
|
|
requestId: request.requestId,
|
|
action: "resumeAllQueues",
|
|
error: error?.message,
|
|
type: "backgroundMessageResponse",
|
|
},
|
|
event.origin
|
|
);
|
|
}
|
|
}
|
|
export async function checkLocalCase(request, event) {
|
|
try {
|
|
const response = await checkLocalFunc()
|
|
event.source.postMessage(
|
|
{
|
|
requestId: request.requestId,
|
|
action: "pauseAllQueues",
|
|
payload: response,
|
|
type: "backgroundMessageResponse",
|
|
},
|
|
event.origin
|
|
);
|
|
} catch (error) {
|
|
event.source.postMessage(
|
|
{
|
|
requestId: request.requestId,
|
|
action: "checkLocal",
|
|
error: error?.message,
|
|
type: "backgroundMessageResponse",
|
|
},
|
|
event.origin
|
|
);
|
|
}
|
|
}
|
|
|
|
export async function decryptSingleForPublishesCase(request, event) {
|
|
try {
|
|
const { data, secretKeyObject, skipDecodeBase64} = request.payload;
|
|
const response = await decryptSingleForPublishes({ messages: data, secretKeyObject, skipDecodeBase64 });
|
|
|
|
event.source.postMessage(
|
|
{
|
|
requestId: request.requestId,
|
|
action: "decryptSingleForPublishes",
|
|
payload: response,
|
|
type: "backgroundMessageResponse",
|
|
},
|
|
event.origin
|
|
);
|
|
} catch (error) {
|
|
event.source.postMessage(
|
|
{
|
|
requestId: request.requestId,
|
|
action: "decryptSingle",
|
|
error: error?.message,
|
|
type: "backgroundMessageResponse",
|
|
},
|
|
event.origin
|
|
);
|
|
}
|
|
}
|
|
|
|
export async function decryptDirectCase(request, event) {
|
|
try {
|
|
const { data, involvingAddress} = request.payload;
|
|
const response = await decryptDirectFunc({ messages: data, involvingAddress });
|
|
|
|
event.source.postMessage(
|
|
{
|
|
requestId: request.requestId,
|
|
action: "decryptDirect",
|
|
payload: response,
|
|
type: "backgroundMessageResponse",
|
|
},
|
|
event.origin
|
|
);
|
|
} catch (error) {
|
|
event.source.postMessage(
|
|
{
|
|
requestId: request.requestId,
|
|
action: "decryptDirect",
|
|
error: error?.message,
|
|
type: "backgroundMessageResponse",
|
|
},
|
|
event.origin
|
|
);
|
|
}
|
|
}
|
|
export async function sendChatGroupCase(request, event) {
|
|
try {
|
|
const { groupId,
|
|
typeMessage = undefined,
|
|
chatReference = undefined,
|
|
messageText} = request.payload;
|
|
const response = await sendChatGroup({ groupId, typeMessage, chatReference, messageText });
|
|
|
|
event.source.postMessage(
|
|
{
|
|
requestId: request.requestId,
|
|
action: "sendChatGroup",
|
|
payload: response,
|
|
type: "backgroundMessageResponse",
|
|
},
|
|
event.origin
|
|
);
|
|
} catch (error) {
|
|
event.source.postMessage(
|
|
{
|
|
requestId: request.requestId,
|
|
action: "sendChatGroup",
|
|
error: error?.message,
|
|
type: "backgroundMessageResponse",
|
|
},
|
|
event.origin
|
|
);
|
|
}
|
|
}
|
|
export async function sendChatDirectCase(request, event) {
|
|
try {
|
|
const { directTo,
|
|
typeMessage = undefined,
|
|
chatReference = undefined,
|
|
messageText,
|
|
publicKeyOfRecipient,
|
|
address,
|
|
otherData} = request.payload;
|
|
const response = await sendChatDirect({ directTo,
|
|
chatReference,
|
|
messageText,
|
|
typeMessage,
|
|
publicKeyOfRecipient,
|
|
address,
|
|
otherData });
|
|
|
|
event.source.postMessage(
|
|
{
|
|
requestId: request.requestId,
|
|
action: "sendChatDirect",
|
|
payload: response,
|
|
type: "backgroundMessageResponse",
|
|
},
|
|
event.origin
|
|
);
|
|
} catch (error) {
|
|
event.source.postMessage(
|
|
{
|
|
requestId: request.requestId,
|
|
action: "sendChatDirect",
|
|
error: error?.message,
|
|
type: "backgroundMessageResponse",
|
|
},
|
|
event.origin
|
|
);
|
|
}
|
|
}
|
|
|
|
export async function setupGroupWebsocketCase(request, event) {
|
|
try {
|
|
|
|
checkNewMessages();
|
|
checkThreads();
|
|
event.source.postMessage(
|
|
{
|
|
requestId: request.requestId,
|
|
action: "sendChatDirect",
|
|
payload: true,
|
|
type: "backgroundMessageResponse",
|
|
},
|
|
event.origin
|
|
);
|
|
} catch (error) {
|
|
event.source.postMessage(
|
|
{
|
|
requestId: request.requestId,
|
|
action: "sendChatDirect",
|
|
error: error?.message,
|
|
type: "backgroundMessageResponse",
|
|
},
|
|
event.origin
|
|
);
|
|
}
|
|
}
|
|
|
|
export async function addEnteredQmailTimestampCase(request, event) {
|
|
try {
|
|
const response = await addEnteredQmailTimestamp();
|
|
|
|
event.source.postMessage(
|
|
{
|
|
requestId: request.requestId,
|
|
action: "addEnteredQmailTimestamp",
|
|
payload: response,
|
|
type: "backgroundMessageResponse",
|
|
},
|
|
event.origin
|
|
);
|
|
} catch (error) {
|
|
event.source.postMessage(
|
|
{
|
|
requestId: request.requestId,
|
|
action: "addEnteredQmailTimestamp",
|
|
error: error?.message,
|
|
type: "backgroundMessageResponse",
|
|
},
|
|
event.origin
|
|
);
|
|
}
|
|
}
|
|
export async function getEnteredQmailTimestampCase(request, event) {
|
|
try {
|
|
const response = await getEnteredQmailTimestamp();
|
|
|
|
event.source.postMessage(
|
|
{
|
|
requestId: request.requestId,
|
|
action: "getEnteredQmailTimestamp",
|
|
payload: {timestamp: response},
|
|
type: "backgroundMessageResponse",
|
|
},
|
|
event.origin
|
|
);
|
|
} catch (error) {
|
|
event.source.postMessage(
|
|
{
|
|
requestId: request.requestId,
|
|
action: "getEnteredQmailTimestamp",
|
|
error: error?.message,
|
|
type: "backgroundMessageResponse",
|
|
},
|
|
event.origin
|
|
);
|
|
}
|
|
}
|
|
|
|
export async function getTimestampMentionCase(request, event) {
|
|
try {
|
|
const response = await getTimestampMention();
|
|
|
|
event.source.postMessage(
|
|
{
|
|
requestId: request.requestId,
|
|
action: "getTimestampMention",
|
|
payload: response,
|
|
type: "backgroundMessageResponse",
|
|
},
|
|
event.origin
|
|
);
|
|
} catch (error) {
|
|
event.source.postMessage(
|
|
{
|
|
requestId: request.requestId,
|
|
action: "getTimestampMention",
|
|
error: error?.message,
|
|
type: "backgroundMessageResponse",
|
|
},
|
|
event.origin
|
|
);
|
|
}
|
|
}
|
|
|
|
export async function addTimestampMentionCase(request, event) {
|
|
try {
|
|
const { groupId, timestamp } = request.payload;
|
|
const response = await addTimestampMention({ groupId, timestamp });
|
|
|
|
event.source.postMessage(
|
|
{
|
|
requestId: request.requestId,
|
|
action: "addTimestampMention",
|
|
payload: response,
|
|
type: "backgroundMessageResponse",
|
|
},
|
|
event.origin
|
|
);
|
|
} catch (error) {
|
|
event.source.postMessage(
|
|
{
|
|
requestId: request.requestId,
|
|
action: "addTimestampMention",
|
|
error: error?.message,
|
|
type: "backgroundMessageResponse",
|
|
},
|
|
event.origin
|
|
);
|
|
}
|
|
}
|
|
|
|
export async function createPollCase(request, event) {
|
|
try {
|
|
const { pollName, pollDescription, pollOptions } = request.payload;
|
|
const resCreatePoll = await _createPoll(
|
|
{
|
|
pollName,
|
|
pollDescription,
|
|
options: pollOptions,
|
|
},
|
|
true,
|
|
true // skip permission
|
|
);
|
|
|
|
event.source.postMessage(
|
|
{
|
|
requestId: request.requestId,
|
|
action: "registerName",
|
|
payload: resCreatePoll,
|
|
type: "backgroundMessageResponse",
|
|
},
|
|
event.origin
|
|
);
|
|
} catch (error) {
|
|
event.source.postMessage(
|
|
{
|
|
requestId: request.requestId,
|
|
action: "registerName",
|
|
error: error?.message,
|
|
type: "backgroundMessageResponse",
|
|
},
|
|
event.origin
|
|
);
|
|
}
|
|
}
|
|
export async function voteOnPollCase(request, event) {
|
|
try {
|
|
const res = await _voteOnPoll(request.payload, true, true);
|
|
|
|
|
|
event.source.postMessage(
|
|
{
|
|
requestId: request.requestId,
|
|
action: "registerName",
|
|
payload: res,
|
|
type: "backgroundMessageResponse",
|
|
},
|
|
event.origin
|
|
);
|
|
} catch (error) {
|
|
event.source.postMessage(
|
|
{
|
|
requestId: request.requestId,
|
|
action: "registerName",
|
|
error: error?.message,
|
|
type: "backgroundMessageResponse",
|
|
},
|
|
event.origin
|
|
);
|
|
}
|
|
} |