mirror of
https://github.com/muety/wakapi.git
synced 2023-08-10 21:12:56 +03:00
feat: allow to configure custom api url for relay and import (resolve #105)
This commit is contained in:
53
routes/utils/heartbeat_utils.go
Normal file
53
routes/utils/heartbeat_utils.go
Normal file
@ -0,0 +1,53 @@
|
||||
package utils
|
||||
|
||||
import (
|
||||
"bytes"
|
||||
"encoding/json"
|
||||
"github.com/muety/wakapi/models"
|
||||
"io/ioutil"
|
||||
"net/http"
|
||||
)
|
||||
|
||||
func ParseHeartbeats(r *http.Request) ([]*models.Heartbeat, error) {
|
||||
heartbeats, err := tryParseBulk(r)
|
||||
if err == nil {
|
||||
return heartbeats, err
|
||||
}
|
||||
|
||||
heartbeats, err = tryParseSingle(r)
|
||||
if err == nil {
|
||||
return heartbeats, err
|
||||
}
|
||||
|
||||
return []*models.Heartbeat{}, err
|
||||
}
|
||||
|
||||
func tryParseBulk(r *http.Request) ([]*models.Heartbeat, error) {
|
||||
var heartbeats []*models.Heartbeat
|
||||
|
||||
body, _ := ioutil.ReadAll(r.Body)
|
||||
r.Body.Close()
|
||||
r.Body = ioutil.NopCloser(bytes.NewBuffer(body))
|
||||
|
||||
dec := json.NewDecoder(ioutil.NopCloser(bytes.NewBuffer(body)))
|
||||
if err := dec.Decode(&heartbeats); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
return heartbeats, nil
|
||||
}
|
||||
|
||||
func tryParseSingle(r *http.Request) ([]*models.Heartbeat, error) {
|
||||
var heartbeat models.Heartbeat
|
||||
|
||||
body, _ := ioutil.ReadAll(r.Body)
|
||||
r.Body.Close()
|
||||
r.Body = ioutil.NopCloser(bytes.NewBuffer(body))
|
||||
|
||||
dec := json.NewDecoder(ioutil.NopCloser(bytes.NewBuffer(body)))
|
||||
if err := dec.Decode(&heartbeat); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
return []*models.Heartbeat{&heartbeat}, nil
|
||||
}
|
Reference in New Issue
Block a user