feat:#36 added protobuf communication for modules

This commit is contained in:
Elmar Kresse
2024-06-17 00:59:33 +02:00
parent 8548a537ec
commit fad85f2884
18 changed files with 1286 additions and 59 deletions

View File

@@ -5,15 +5,16 @@ import (
"github.com/jordic/goics"
"htwkalender/ical/model"
"htwkalender/ical/service/connector"
htwkalenderGrpc "htwkalender/ical/service/connector/grpc"
"log/slog"
"time"
)
const expirationTime = 5 * time.Minute
func Feed(token string) (string, error) {
func Feed(app model.AppType, token string) (string, error) {
// get feed by token
feed, err := connector.GetFeedByToken(token)
feed, err := connector.GetFeedByToken(app.DataManagerURL, token)
if err != nil {
return "", err
}
@@ -21,7 +22,7 @@ func Feed(token string) (string, error) {
var events model.Events
for _, module := range feed.Modules {
moduleWithEvents, err := connector.GetModuleWithEvents(module)
moduleWithEvents, err := htwkalenderGrpc.GetModuleWithEvents(module, app.GrpcClient)
if err != nil {
return "", err
}
@@ -29,7 +30,7 @@ func Feed(token string) (string, error) {
events = append(events, moduleWithEvents.Events...)
}
// Sorte events by start date
// Sort events by start date
events.Sort()
modules := make(map[string]model.FeedCollection)
@@ -44,9 +45,9 @@ func Feed(token string) (string, error) {
return icalFeed.Content, nil
}
func FeedRecord(token string) (model.FeedRecord, error) {
func FeedRecord(app model.AppType, token string) (model.FeedRecord, error) {
feedRecord, err := connector.GetFeedByToken(token)
feedRecord, err := connector.GetFeedByToken(app.DataManagerURL, token)
if err != nil {
return model.FeedRecord{}, err
}
@@ -55,18 +56,18 @@ func FeedRecord(token string) (model.FeedRecord, error) {
}
func DeleteFeedRecord(token string) error {
err := connector.DeleteFeedRecord(token)
func DeleteFeedRecord(app model.AppType, token string) error {
err := connector.DeleteFeedRecord(app, token)
if err != nil {
return err
}
return nil
}
func CreateFeed(modules []model.FeedCollection) (string, error) {
func CreateFeed(app model.AppType, modules []model.FeedCollection) (string, error) {
// Save feed
token, err := connector.SaveFeedRecord(modules)
token, err := connector.SaveFeedRecord(app, modules)
if err != nil {
slog.Error("Failed to save feed", "error", err)
return "", err