37 lines
1.1 KiB
Swift
37 lines
1.1 KiB
Swift
//
|
|
// Copyright 2023 Signal Messenger, LLC
|
|
// SPDX-License-Identifier: AGPL-3.0-only
|
|
//
|
|
|
|
import Foundation
|
|
public import LibSignalClient
|
|
|
|
public extension OWSRequestFactory {
|
|
static func reportSpam(
|
|
from sender: Aci,
|
|
withServerGuid serverGuid: String,
|
|
reportingToken: SpamReportingToken?
|
|
) -> TSRequest {
|
|
let url: URL = {
|
|
let urlWithGuid = URL(
|
|
pathComponents: ["v1", "messages", "report", sender.serviceIdString, serverGuid]
|
|
)!
|
|
if serverGuid.isEmpty {
|
|
// This will probably never happen, but the server should be allowed to provide an
|
|
// empty message ID.
|
|
return URL(string: urlWithGuid.path + "/")!
|
|
} else {
|
|
return urlWithGuid
|
|
}
|
|
}()
|
|
|
|
let parameters: [String: String]?
|
|
if let reportingTokenString = reportingToken?.base64EncodedString().nilIfEmpty {
|
|
parameters = ["token": reportingTokenString]
|
|
} else {
|
|
parameters = nil
|
|
}
|
|
|
|
return .init(url: url, method: "POST", parameters: parameters)
|
|
}
|
|
}
|