GBA-8-19/External/Harmony/Backends/Dropbox/Harmony-Dropbox/Extensions/PropertyGroup+Harmony.swift
2024-06-14 17:15:51 +08:00

32 lines
895 B
Swift

//
// PropertyGroup+Harmony.swift
// Harmony-Dropbox
//
// Created by Hthik on 3/4/19.
// Copyright © 2019 Hthik. All rights reserved.
//
import SwiftyDropbox
import Harmony
extension FileProperties.PropertyGroup
{
var metadata: [HarmonyMetadataKey: String] {
let metadata = self.fields.reduce(into: [:]) { $0[HarmonyMetadataKey($1.name)] = $1.value }
return metadata
}
convenience init<T>(templateID: String, metadata: [HarmonyMetadataKey: T])
{
let propertyFields = metadata.compactMap { (key, value) -> FileProperties.PropertyField? in
guard let value = value as? String else { return nil }
let propertyField = FileProperties.PropertyField(name: key.rawValue, value: value)
return propertyField
}
self.init(templateId: templateID, fields: propertyFields)
}
}