iOS/Sources/Shared/API/Webhook/SensorProvider.swift
Bruno Pantaleão Gonçalves 16f5a1bc75
Simplify and migrate onboarding screens to SwiftUI (#3527)
<!-- Thank you for submitting a Pull Request and helping to improve Home
Assistant. Please complete the following sections to help the processing
and review of your changes. Please do not delete anything from this
template. -->

## Summary
<!-- Provide a brief summary of the changes you have made and most
importantly what they aim to achieve -->

## Screenshots
<!-- If this is a user-facing change not in the frontend, please include
screenshots in light and dark mode. -->

## Link to pull request in Documentation repository
<!-- Pull requests that add, change or remove functionality must have a
corresponding pull request in the Companion App Documentation repository
(https://github.com/home-assistant/companion.home-assistant). Please add
the number of this pull request after the "#" -->
Documentation: home-assistant/companion.home-assistant#

## Any other notes
<!-- If there is any other information of note, like if this Pull
Request is part of a bigger change, please include it here. -->



https://github.com/user-attachments/assets/e79c6e4d-13ff-405a-9463-02e597ce4996
2025-04-08 23:54:34 +02: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]>
}