// // Service.swift // APIService // // Created by Javier Cicchelli on 04/12/2022. // Copyright © 2022 Röck+Cöde. All rights reserved. // import Foundation public protocol Service { func getUser(credentials: Credentials) async throws -> Me func getItems(id: String, credentials: Credentials) async throws -> [Item] func getData(id: String, credentials: Credentials) async throws -> Data func createFolder(id: String, name: String, credentials: Credentials) async throws -> Item func uploadFile(id: String, file: File, credentials: Credentials) async throws -> Item func deleteItem(id: String, credentials: Credentials) async throws } // MARK: - Structs public struct Credentials { // MARK: Properties let username: String let password: String // MARK: Initialisers public init(username: String, password: String) { self.username = username self.password = password } } public struct File { // MARK: Properties let name: String let data: Data // MARK: Initialisers public init(name: String, data: Data) { self.name = name self.data = data } }