Files
monibuca/plugin/monitor/api.go
2024-08-18 22:18:39 +08:00

32 lines
831 B
Go

package plugin_monitor
import (
"context"
"google.golang.org/protobuf/types/known/timestamppb"
"m7s.live/m7s/v5/plugin/monitor/pb"
monitor "m7s.live/m7s/v5/plugin/monitor/pkg"
"slices"
)
func (cfg *MonitorPlugin) SearchTask(ctx context.Context, req *pb.SearchTaskRequest) (res *pb.SearchTaskResponse, err error) {
res = &pb.SearchTaskResponse{}
var tasks []*monitor.Task
tx := cfg.DB.Find(&tasks)
if err = tx.Error; err == nil {
res.Data = slices.Collect(func(yield func(*pb.Task) bool) {
for _, t := range tasks {
yield(&pb.Task{
Id: t.ID,
StartTime: timestamppb.New(t.StartTime),
EndTime: timestamppb.New(t.CreatedAt),
Owner: t.OwnerType,
Type: uint32(t.TaskType),
Description: t.Description,
Reason: t.Reason,
})
}
})
}
return
}