53 lines
1.2 KiB
Swift

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