mirror of
https://github.com/garethgeorge/backrest.git
synced 2025-12-14 17:45:36 +00:00
Initial commit
This commit is contained in:
55
internal/api/server.go
Normal file
55
internal/api/server.go
Normal file
@@ -0,0 +1,55 @@
|
||||
package api
|
||||
|
||||
import (
|
||||
"context"
|
||||
"fmt"
|
||||
"time"
|
||||
|
||||
v1 "github.com/garethgeorge/resticui/gen/go/v1"
|
||||
"github.com/garethgeorge/resticui/internal/config"
|
||||
"go.uber.org/zap"
|
||||
"google.golang.org/protobuf/types/known/emptypb"
|
||||
)
|
||||
|
||||
type server struct {
|
||||
*v1.UnimplementedResticUIServer
|
||||
}
|
||||
|
||||
var _ v1.ResticUIServer = &server{}
|
||||
|
||||
func (s *server) GetConfig(ctx context.Context, empty *emptypb.Empty) (*v1.Config, error) {
|
||||
return config.Default.Get()
|
||||
}
|
||||
|
||||
func (s *server) SetConfig(ctx context.Context, c *v1.Config) (*v1.Config, error) {
|
||||
err := config.Default.Update(c)
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("failed to update config: %w", err)
|
||||
}
|
||||
return config.Default.Get()
|
||||
}
|
||||
|
||||
func (s *server) GetEvents(_ *emptypb.Empty, stream v1.ResticUI_GetEventsServer) error {
|
||||
for {
|
||||
zap.S().Info("Sending event")
|
||||
stream.Send(&v1.Event{
|
||||
Timestamp: 0,
|
||||
Event: &v1.Event_BackupStatusChange{
|
||||
BackupStatusChange: &v1.BackupStatusEvent{
|
||||
Status: v1.Status_IN_PROGRESS,
|
||||
Percent: 0,
|
||||
Plan: "myplan",
|
||||
},
|
||||
},
|
||||
})
|
||||
|
||||
timer := time.NewTimer(time.Second * 1)
|
||||
|
||||
select {
|
||||
case <-stream.Context().Done():
|
||||
zap.S().Info("Get events hangup")
|
||||
return nil
|
||||
case <-timer.C:
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user