// // UploadFileEndpoint.swift // APIService // // Created by Javier Cicchelli on 04/12/2022. // Copyright © 2022 Röck+Cöde. All rights reserved. // import Foundation struct UploadFileEndpoint: Endpoint { let path: String let method: RequestMethod let credentials: BasicCredentials let headers: [String : String] let body: Data? } // MARK: - Initialisers extension UploadFileEndpoint { init( itemId: String, fileName: String, fileData: Data, username: String, password: String ) { self.path = .init(format: .Formats.itemsWithId, itemId) self.method = .post self.credentials = .init( username: username, password: password ) self.headers = [ .Header.Keys.contentType: .Header.Values.contentTypeOctet, .Header.Keys.contentDisposition: .init(format: .Formats.attachment, fileName) ] self.body = fileData } } // MARK: - String+Formats private extension String.Formats { static let attachment = "attachment;filename*=utf-8''%@" }