iOS/Sources/Shared/API/Webhook/Sensors/SensorProvider.swift
mat1th 97834bfd5e
Update swift lint and format + appy fixes (#2585)
## Summary
Swift lint and swiftformat are outdated. This PR does update those +
applies the new formatting form swiftformat.
There is 1 swift file with a manual change:
`Sources/Vehicle/Templates/Areas/CarPlayAreasViewModel.swift`. This is
done because `swiftlint` did create the following swiftlint error:
`error: Cyclomatic Complexity Violation: Function should have complexity
10 or less; currently complexity is 11 (cyclomatic_complexity)`.

Because it does change a lot of files the question is if we want to
finetune the `swiftformat` rules.

## Screenshots
No user facing changes.

## Link to pull request in Documentation repository
NA

## Any other notes
NA
2024-02-22 13:06:39 +01:00

43 lines
1019 B
Swift

import CoreLocation
import Foundation
import PromiseKit
import Version
public struct SensorProviderRequest {
public enum Reason: Equatable {
case registration
case trigger(String)
}
public var reason: Reason
public var dependencies: SensorProviderDependencies
public var location: CLLocation?
public var serverVersion: Version
public init(
reason: Reason,
dependencies: SensorProviderDependencies,
location: CLLocation?,
serverVersion: Version
) {
self.reason = reason
self.dependencies = dependencies
self.location = location
self.serverVersion = serverVersion
}
var lastUpdateReason: String {
switch reason {
case .registration:
return "registration"
case let .trigger(reason):
return reason
}
}
}
public protocol SensorProvider: AnyObject {
init(request: SensorProviderRequest)
func sensors() -> Promise<[WebhookSensor]>
}