Starts adding tests and github workflow

This commit is contained in:
2024-10-18 17:14:10 +02:00
parent 7827ec794d
commit ad6b7cdbc1
6 changed files with 87 additions and 20 deletions

View File

@@ -23,7 +23,19 @@ type actionTask struct {
DueHour int `json:"due_hour"`
}
func HandleHaMessage(w http.ResponseWriter, r *http.Request) {
type HaMessageHandler struct {
PooRecorderHandler func(message haMessage)
LocationRecorderHandler func(message haMessage)
TicktickHandler func(message haMessage)
}
var DefaultHandler = HaMessageHandler{
PooRecorderHandler: handlePooRecorderMsg,
LocationRecorderHandler: handleLocationRecorderMsg,
TicktickHandler: handleTicktickMsg,
}
func (handler HaMessageHandler) HandleHaMessage(w http.ResponseWriter, r *http.Request) {
var message haMessage
decoder := json.NewDecoder(r.Body)
decoder.DisallowUnknownFields()
@@ -36,13 +48,12 @@ func HandleHaMessage(w http.ResponseWriter, r *http.Request) {
switch message.Target {
case "poo_recorder":
handlePooRecorderMsg(message)
handler.PooRecorderHandler(message)
case "location_recorder":
handleLocationRecorderMsg(message)
handler.LocationRecorderHandler(message)
case "ticktick":
handleTicktickMsg(message)
handler.TicktickHandler(message)
}
}
func handlePooRecorderMsg(message haMessage) {
@@ -50,7 +61,6 @@ func handlePooRecorderMsg(message haMessage) {
case "get_latest":
handleGetLatestPoo()
}
}
func handleLocationRecorderMsg(message haMessage) {