iOS MeData Service
Functions
saveMeDataRecord
public func saveMeDataRecord(
name: String,
values: Any?,
onSuccess: @escaping () -> Void,
onError: ((Error) -> Void)? = nil
)
Saves a new MeData record for the specified definition.
Parameters:
name: String— MeData definition name.values: Any?— Encoded record value(s), must match the definition’s value type.onSuccess: () -> Void— Called when the record is saved successfully.onError: ((Error) -> Void)? = nil— Called when an error occurs.
syncMeDataDefinitions
public func syncMeDataDefinitions(
onSuccess: @escaping () -> Void,
onError: ((Error) -> Void)? = nil
)
Synchronizes all MeData definitions with the Orchestrator and updates local storage.
Parameters:
onSuccess: () -> Void— Called when synchronization completes.onError: ((Error) -> Void)? = nil— Called when an error occurs.
getMeDataDefinitions
public func getMeDataDefinitions(
onSuccess: @escaping ([MeDataDefinition]) -> Void,
onError: ((Error) -> Void)? = nil
)
Retrieves all available MeData definitions from local storage.
Parameters:
onSuccess: ([MeDataDefinition]) -> Void— Called with the list of definitions.onError: ((Error) -> Void)? = nil— Called when an error occurs.
getMeDataDefinition
public func getMeDataDefinition(
name: String,
onSuccess: @escaping (MeDataDefinition?) -> Void,
onError: ((Error) -> Void)? = nil
)
Retrieves a single MeData definition by its name.
Parameters:
name: String— MeData definition name.onSuccess: (MeDataDefinition?) -> Void— Called with the definition or nil.onError: ((Error) -> Void)? = nil— Called when an error occurs.
getMeDataCategories
public func getMeDataCategories(
onSuccess: @escaping ([MeDataCategory]?) -> Void,
onError: ((Error) -> Void)? = nil
)
Returns the list of MeData categories used for grouping and UI organization.
Parameters:
onSuccess: ([MeDataCategory]?) -> Void— Called with the category list or nil.onError: ((Error) -> Void)? = nil— Called when an error occurs.
getMeDataDefinitionsByCategory
public func getMeDataDefinitionsByCategory(
name: String,
onSuccess: @escaping ([MeDataDefinition]?) -> Void,
onError: ((Error) -> Void)? = nil
)
Retrieves MeData definitions that belong to the specified category.
Parameters:
name: String— Category name.onSuccess: ([MeDataDefinition]?) -> Void— Called with the definitions or nil.onError: ((Error) -> Void)? = nil— Called when an error occurs.
getMeDataRecords
public func getMeDataRecords(
name: String,
onSuccess: @escaping ([MeDataRecord]?) -> Void,
onError: ((Error) -> Void)? = nil
)
Retrieves all recorded values for the given MeData definition.
Parameters:
name: String— MeData definition name.onSuccess: ([MeDataRecord]?) -> Void— Called with the records or nil.onError: ((Error) -> Void)? = nil— Called when an error occurs.
getLastMeDataRecord
public func getLastMeDataRecord(
name: String,
onSuccess: @escaping (MeDataRecord?) -> Void,
onError: ((Error) -> Void)? = nil
)
Returns the most recent MeData record for the specified definition.
Parameters:
name: String— MeData definition name.onSuccess: (MeDataRecord?) -> Void— Called with the latest record or nil.onError: ((Error) -> Void)? = nil— Called when an error occurs.
collectMeData
public func collectMeData(
meDataDefinitionNames: [String],
onSuccess: @escaping ([String: Any]) -> Void,
onError: ((Error) -> Void)? = nil
)
Collects the requested MeData items and returns a key–value map.
Parameters:
meDataDefinitionNames: [String]— List of MeData definition names to collect.onSuccess: ([String: Any]) -> Void— Called with a map of definition name to collected value.onError: ((Error) -> Void)? = nil— Called when an error occurs.
Classes
MeDataDefinition
public struct MeDataDefinition: Codable, Hashable {
public var id: String
public var name: String
public var text: String
public var source: String
public var script: Script?
public var valueDef: ValueDefinition?
public var category: MeDataCategory?
public var iconUrl: String?
public var description: String?
public var sharable: Bool? = false
public var hidden: Bool? = false
public var storageSettings: MeDataStorageSettings?
public var question: Question?
}
ValueDefinition
public struct ValueDefinition: Codable, Hashable {
public var type: String // DataType
public var constraints: ValueTypeConstraints?
public var multivalued: Bool?
public var multiValueConstraints: MultiValueConstraints?
public var enumerated: Bool?
public var enumeratedValues: [EnumeratedValue]?
public var enumeratedValueConstraints: EnumeratedValueConstraints?
}
ValueTypeConstraints
public struct ValueTypeConstraints: Codable, Hashable {
public var minValue: Int?
public var maxValue: Int?
public var regex: String?
public var allowCamera: Bool?
public var allowGallery: Bool?
}
MultiValueConstraints
public struct MultiValueConstraints: Codable, Hashable {
public var minValue: Int
public var maxValue: Int
}
EnumeratedValue
public struct EnumeratedValue: Codable, Hashable {
public var id: String?
public var text: String
public var name: String
public var description: String?
public var imageUrl: String?
}
EnumeratedValueConstraints
public struct EnumeratedValueConstraints: Codable, Hashable {
public var allowNone: Bool?
public var allowIdk: Bool?
public var allowNa: Bool?
public var allowOther: Bool?
}
MeDataCategory
public struct MeDataCategory: Codable, Hashable {
public var id: String
public var name: String
public var text: String
public var iconUrl: String?
public var description: String?
}
MeDataStorageSettings
public struct MeDataStorageSettings: Codable, Hashable {
public var onlyIfChanged: Bool?
public var longLimit: Int?
}
Question
public struct Question: Codable, Hashable {
public var id: String?
public var name: String
public var text: String
public var description: String?
public var imageUrl: String?
}
MeData
public struct MeData: Codable {
public var id: String
public var definitionName: String
public var firstValueSaveDate: Int64
public var lastValueSaveDate: Int64
public var lastValueId: String
public var records: [MeDataRecord]
}
MeDataRecord
public struct MeDataRecord: Codable {
public var id: String
public var meDataDefinitionId: String
public var notAvailable: Bool
public var date: Int64
public var values: [MeDataValue]
}
MeDataValue
public struct MeDataValue: Codable {
public var id: String
public var evName: String?
public var value: String
}
ValueTypeConstraints
public struct ValueTypeConstraints: Codable, Hashable {
var minValue: Int?
var maxValue: Int?
var regex: String?
var allowCamera: Bool?
var allowGallery: Bool?
}
DataType
public enum DataType: String, Codable {
case STRING
case NUMBER
case BOOLEAN
case DATETIME
case IMAGE
case VIDEO
case OBJECT
}
MeDataType
public enum MeDataType: String, Codable {
case NATIVE = "NATIVE"
case QA_BASED = "QA"
case API_BASED = "API_BASED"
case SCRIPTED = "SCRIPT"
case INFERRED = "INFERRED"
}