Files
htwkalender/backend-ical/service/connector/feedConnector.go
2024-05-26 01:53:46 +02:00

71 lines
1.4 KiB
Go

package connector
import (
"encoding/json"
"htwkalender-ical/model"
"log/slog"
)
func GetFeedByToken(token string) (model.FeedRecord, error) {
var feed model.FeedRecord
// /api/collections/feeds/records/{id}
response, err := RequestApi("/api/collections/feeds/records/" + token)
if err != nil {
return model.FeedRecord{}, err
}
// parse the response body json to FeedRecord struct
feed, err = parseResponse(response.Body())
if err != nil {
slog.Error("Failed to read response body", "error", err)
return model.FeedRecord{}, err
}
return feed, nil
}
func parseResponse(response []byte) (model.FeedRecord, error) {
var feedRecord model.FeedRecord
err := json.Unmarshal(response, &feedRecord)
if err != nil {
return model.FeedRecord{}, err
}
return feedRecord, nil
}
func GetModuleWithEvents(module model.FeedModule) (model.Module, error) {
var modules model.Module
// /api/module?uuid=
response, err := RequestApi("/api/module?uuid=" + module.UUID)
if err != nil {
return model.Module{}, err
}
// parse the response body json to Events struct
modules, err = parseModuleResponse(response.Body())
if err != nil {
slog.Error("Failed to read response body", "error", err)
return model.Module{}, err
}
return modules, nil
}
func parseModuleResponse(body []byte) (model.Module, error) {
var module model.Module
err := json.Unmarshal(body, &module)
if err != nil {
return model.Module{}, err
}
return module, nil
}