Make the onEventReceived type more explicit
This commit is contained in:
parent
31e9312731
commit
ae66114ca1
2 changed files with 5 additions and 3 deletions
|
|
@ -22,15 +22,17 @@ type Event =
|
|||
| ReceivedZigbeeEvent of payload: string
|
||||
| TimeChanged of DateTime
|
||||
|
||||
type ParseEventError = ParseZigbeeEventError of ParseZigbeeEventError
|
||||
|
||||
type State = { Time: DateTime }
|
||||
|
||||
let onEventReceived (state: State) (event: Event) =
|
||||
let onEventReceived (state: State) (event: Event) : Result<State * ZigbeeCommand seq, ParseEventError> =
|
||||
result {
|
||||
let partOfDay = getPartOfDay state.Time
|
||||
|
||||
match event with
|
||||
| ReceivedZigbeeEvent payload ->
|
||||
let! zigbeeEvent = parseZigbeeEvent payload
|
||||
let! zigbeeEvent = parseZigbeeEvent payload |> Result.mapError ParseZigbeeEventError
|
||||
|
||||
return
|
||||
state,
|
||||
|
|
|
|||
|
|
@ -44,7 +44,7 @@ let private handleEvent (mqttClient: IMqttClient) (logger: ILogger) (state: Stat
|
|||
do! publishZigbeeCommands mqttClient logger commands
|
||||
return newState
|
||||
}
|
||||
| Error UnknownType -> async.Return state
|
||||
| Error(ParseZigbeeEventError UnknownType) -> async.Return state
|
||||
| Error e ->
|
||||
logger.LogError("Error {Error} while {Event}", e, event)
|
||||
async.Return state
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue