55 lines
1.2 KiB
Swift

//
// 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
}
}