// // CreateFolderEndpoint.swift // APIService // // Created by Javier Cicchelli on 04/12/2022. // Copyright © 2022 Röck+Cöde. All rights reserved. // import Foundation struct CreateFolderEndpoint: Endpoint { let path: String let method: RequestMethod let credentials: BasicCredentials let headers: [String : String] let body: Data? } // MARK: - Initialisers extension CreateFolderEndpoint { init( itemId: String, folderName: String, 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.contentTypeJSON] self.body = { let encoder = JSONEncoder() let folder = Folder(name: folderName) do { return try encoder.encode(folder) } catch { return nil } }() } } // MARK: - Models private extension CreateFolderEndpoint { struct Folder: Encodable { let name: String } }