mirror of
https://github.com/sigmasternchen/iot-relay
synced 2025-03-15 22:38:55 +00:00
38 lines
617 B
Go
38 lines
617 B
Go
package server
|
|
|
|
import (
|
|
"errors"
|
|
"iot-relay/internal/types"
|
|
"strings"
|
|
)
|
|
|
|
var forbiddenKeys = []string{
|
|
"ip",
|
|
}
|
|
|
|
func parseLine(line string, request *types.Request) error {
|
|
token := strings.Split(line, "=")
|
|
if len(token) != 2 {
|
|
return errors.New("malformed; missing =")
|
|
}
|
|
|
|
key := strings.ToLower(token[0])
|
|
value := strings.TrimRight(token[1], "\n")
|
|
|
|
for _, forbidden := range forbiddenKeys {
|
|
if forbidden == key {
|
|
return errors.New("forbidden key")
|
|
}
|
|
}
|
|
|
|
switch key {
|
|
case "id":
|
|
request.ID = value
|
|
case "loc":
|
|
request.Location = value
|
|
default:
|
|
request.Data[key] = value
|
|
}
|
|
|
|
return nil
|
|
}
|