mirror of
https://github.com/LukeHagar/plexswift.git
synced 2025-12-09 20:57:45 +00:00
Regeneration
This commit is contained in:
58
Sources/Plexswift/internal/serialization/Form.swift
Normal file
58
Sources/Plexswift/internal/serialization/Form.swift
Normal file
@@ -0,0 +1,58 @@
|
||||
// Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT.
|
||||
|
||||
import Foundation
|
||||
|
||||
func multipartContentType(with boundary: String) -> String {
|
||||
return "multipart/form-data; boundary=\(boundary)"
|
||||
}
|
||||
|
||||
func serializeMultipartFormData(with multipartFormBodySerializable: MultipartFormBodySerializable) throws -> (boundary: String, data: Data) {
|
||||
let boundary = UUID().uuidString
|
||||
|
||||
var data = Data()
|
||||
let parameters = try multipartFormBodySerializable.serializedMultipartFormParameters(formatOverride: nil)
|
||||
parameters.forEach { parameter in
|
||||
switch parameter {
|
||||
case .value(name: let name, serialized: let serialized):
|
||||
guard let serialized else { return }
|
||||
|
||||
data.append(utf8String: "--\(boundary)\r\n")
|
||||
data.append(utf8String: "Content-Disposition: multipart/form-data; name=\"\(name)\"\r\n")
|
||||
data.append(utf8String: "Content-Type: text/plain\r\n\r\n")
|
||||
data.append(utf8String: "\(serialized)\r\n")
|
||||
case .file(name: let name, filename: let filename, data: let content):
|
||||
guard let filename, let content, let contentString = String(data: content, encoding: .ascii) else { return }
|
||||
|
||||
data.append(utf8String: "--\(boundary)\r\n")
|
||||
data.append(utf8String: "Content-Disposition: multipart/form-data; name=\"\(name)\"; filename=\"\(filename)\"\r\n")
|
||||
data.append(utf8String: "Content-Type: text/plain\r\n\r\n")
|
||||
data.append(utf8String: "\(contentString)\r\n")
|
||||
}
|
||||
}
|
||||
|
||||
data.append(utf8String: "--\(boundary)--")
|
||||
|
||||
return (boundary: boundary, data: data)
|
||||
}
|
||||
|
||||
func serializeFormData(with formBodySerializable: FormBodySerializable) throws -> Data? {
|
||||
let encoded = (try formBodySerializable.serializedFormParameters(formatOverride: nil))
|
||||
.compactMap { parameter -> (String, String)? in
|
||||
guard let serialized = parameter.serialized else { return nil }
|
||||
return (parameter.name, serialized)
|
||||
}
|
||||
.map { (name, serialized) in
|
||||
return "\(name)=\(serialized)"
|
||||
}
|
||||
.joined(separator: "&")
|
||||
|
||||
return encoded.data(using: .utf8)
|
||||
}
|
||||
|
||||
fileprivate extension Data {
|
||||
mutating func append(utf8String: String) {
|
||||
if let data = utf8String.data(using: .utf8) {
|
||||
append(data)
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user