package services import ( "context" "time" "gitea.henriburau.de/haw-lan/cod4watcher/models" ) type CaptureService struct { p models.Persistence } var mockCaptures = []models.Capture{ {ID: 1, Host: "80.57.28.137", Port: "28960", Active: true, Name: "Gungame HAW-LAN 11", Start: time.Now().Add(-1 * time.Hour)}, {ID: 1, Host: "80.57.28.137", Port: "28960", Active: true, Name: "Gungame HAW-LAN 12", Start: time.Now().Add(-5 * time.Minute)}, } func NewCaptureService(persistence models.Persistence) *CaptureService { return &CaptureService{ p: persistence, } } func (cs *CaptureService) CreateCapture(ctx context.Context, capture *models.Capture) error { return cs.p.CreateCapture(ctx, capture) } func (cs *CaptureService) GetActiveCapures(ctx context.Context) ([]models.Capture, error) { captures, err := cs.p.GetCaptures(ctx) if err != nil { return nil, err } var result []models.Capture for _, capture := range captures { if capture.Active { result = append(result, capture) } } return result, nil } func (cs *CaptureService) GetCaptureById(id int) (*models.Capture, error) { capture := mockCaptures[0] server, err := models.NewCOD4ServerStatus(capture.Host, capture.Port, time.Second) if err != nil { return nil, err } status, err := server.GetServerStatus() if err != nil { return nil, err } capture.MapScores = []models.MapScore{ { ID: 0, StartTime: status.MapStartTime, Map: status.MapName, ScoreList: status.Score, }, } return &capture, nil }