Message Requests: Add new "Report spam and block" button

This commit is contained in:
Evan Hahn 2021-05-27 16:17:05 -04:00 committed by Scott Nonnenberg
parent 20e501d9f1
commit d4dc9b8e39
33 changed files with 630 additions and 92 deletions

View file

@ -838,6 +838,7 @@ class MessageReceiverInner extends EventTarget {
source: envelope.source,
sourceUuid: envelope.sourceUuid,
sourceDevice: envelope.sourceDevice,
serverGuid: envelope.serverGuid,
serverTimestamp: envelope.serverTimestamp,
decrypted: MessageReceiverInner.arrayBufferToStringBase64(
plaintext
@ -1561,6 +1562,7 @@ class MessageReceiverInner extends EventTarget {
sourceUuid: envelope.sourceUuid,
sourceDevice: envelope.sourceDevice,
timestamp: envelope.timestamp.toNumber(),
serverGuid: envelope.serverGuid,
serverTimestamp: envelope.serverTimestamp,
unidentifiedDeliveryReceived: envelope.unidentifiedDeliveryReceived,
message,

View file

@ -733,6 +733,7 @@ const URL_CALLS = {
profile: 'v1/profile',
registerCapabilities: 'v1/devices/capabilities',
removeSignalingKey: 'v1/accounts/signaling_key',
reportMessage: 'v1/messages/report',
signed: 'v2/keys/signed',
storageManifest: 'v1/storage/manifest',
storageModify: 'v1/storage/',
@ -926,6 +927,7 @@ export type WebAPIType = {
registerKeys: (genKeys: KeysType) => Promise<void>;
registerSupportForUnauthenticatedDelivery: () => Promise<any>;
removeSignalingKey: () => Promise<void>;
reportMessage: (senderE164: string, serverGuid: string) => Promise<void>;
requestVerificationSMS: (number: string) => Promise<any>;
requestVerificationVoice: (number: string) => Promise<any>;
sendMessages: (
@ -1115,6 +1117,7 @@ export function initialize({
registerKeys,
registerSupportForUnauthenticatedDelivery,
removeSignalingKey,
reportMessage,
requestVerificationSMS,
requestVerificationVoice,
sendMessages,
@ -1404,6 +1407,18 @@ export function initialize({
});
}
async function reportMessage(
senderE164: string,
serverGuid: string
): Promise<void> {
await _ajax({
call: 'reportMessage',
httpType: 'POST',
urlParameters: `/${senderE164}/${serverGuid}`,
responseType: 'arraybuffer',
});
}
async function requestVerificationSMS(number: string) {
return _ajax({
call: 'accounts',