Signal-iOS/SignalServiceKit/src/Network/OWSSenderKeyRequestSerializer.swift
2021-09-09 11:18:04 -07:00

38 lines
1.2 KiB
Swift

//
// Copyright (c) 2020 Open Whisper Systems. All rights reserved.
//
import Foundation
import AFNetworking
class OWSSenderKeyBodyRequestSerializer: AFHTTPRequestSerializer {
let senderKeyBody: Data
init(senderKeyBody: Data) {
self.senderKeyBody = senderKeyBody
super.init()
}
required init?(coder: NSCoder) {
senderKeyBody = Data()
super.init(coder: coder)
}
override func request(bySerializingRequest request: URLRequest, withParameters parameters: Any?, error: NSErrorPointer) -> URLRequest? {
var mutableRequest = request
httpRequestHeaders.forEach {
if mutableRequest.value(forHTTPHeaderField: $0.key) == nil {
mutableRequest.setValue($0.value, forHTTPHeaderField: $0.key)
}
}
// Don't mess around with trying to parse an untyped parameters argument. We have they bytes,
// just set it on the request.
if mutableRequest.value(forHTTPHeaderField: "Content-Type") == nil {
mutableRequest.setValue(kSenderKeySendRequestBodyContentType, forHTTPHeaderField: "Content-Type")
}
mutableRequest.httpBody = senderKeyBody
return mutableRequest
}
}