package graphql // This file will be automatically regenerated based on the schema, any resolver implementations // will be copied through when generating and any unknown code will be moved to the end. // Code generated by github.com/99designs/gqlgen version v0.17.55 import ( "context" "time" graph "git.kmsign.ru/royalcat/tstor/src/delivery/graphql" "git.kmsign.ru/royalcat/tstor/src/delivery/graphql/model" ) // Torrents is the resolver for the torrents field. func (r *torrentDaemonQueryResolver) Torrents(ctx context.Context, obj *model.TorrentDaemonQuery, filter *model.TorrentsFilter) ([]*model.Torrent, error) { // torrents, err := r.ATorrentDaemon.ListTorrents(ctx) // if err != nil { // return nil, err // } // filterFuncs := []func(torrent *model.Torrent) bool{} // if filter != nil { // if filter.BytesCompleted != nil { // filterFuncs = append(filterFuncs, func(torrent *model.Torrent) bool { // return filter.BytesCompleted.Include(torrent.BytesCompleted) // }) // } // if filter.BytesMissing != nil { // filterFuncs = append(filterFuncs, func(torrent *model.Torrent) bool { // return filter.BytesMissing.Include(torrent.BytesMissing) // }) // } // if filter.PeersCount != nil { // filterFuncs = append(filterFuncs, func(torrent *model.Torrent) bool { // return filter.PeersCount.Include( // int64(len(torrent.T.Torrent().PeerConns())), // ) // }) // } // if filter.Infohash != nil { // filterFuncs = append(filterFuncs, func(torrent *model.Torrent) bool { // return filter.Infohash.Include( // torrent.Infohash, // ) // }) // } // if filter.Priority != nil { // filterFuncs = append(filterFuncs, func(torrent *model.Torrent) bool { // return filter.Priority.Include( // torrent.Priority, // ) // }) // } // } // filterFunc := func(torrent *model.Torrent) bool { // for _, f := range filterFuncs { // if !f(torrent) { // return false // } // } // return true // } // tr := []*model.Torrent{} // for _, t := range torrents { // d, err := model.MapTorrent(ctx, t) // if err != nil { // return nil, err // } // if !filterFunc(d) { // continue // } // tr = append(tr, d) // } // slices.SortStableFunc(torrents, func(t1, t2 *torrent.Controller) int { // return strings.Compare(t1.Name(), t2.Name()) // }) // return tr, nil panic("not implemented") } // ClientStats is the resolver for the clientStats field. func (r *torrentDaemonQueryResolver) ClientStats(ctx context.Context, obj *model.TorrentDaemonQuery) (*model.TorrentClientStats, error) { // stats := r.ATorrentDaemon.Stats() // return &model.TorrentClientStats{ // BytesWritten: stats.BytesWritten.Int64(), // BytesRead: stats.BytesRead.Int64(), // BytesWrittenData: stats.BytesWrittenData.Int64(), // BytesReadData: stats.BytesReadData.Int64(), // BytesReadUsefulData: stats.BytesReadUsefulData.Int64(), // BytesReadUsefulIntendedData: stats.BytesReadUsefulIntendedData.Int64(), // ChunksWritten: stats.ChunksWritten.Int64(), // ChunksRead: stats.ChunksRead.Int64(), // ChunksReadUseful: stats.ChunksReadUseful.Int64(), // ChunksReadWasted: stats.ChunksReadWasted.Int64(), // MetadataChunksRead: stats.MetadataChunksRead.Int64(), // PiecesDirtiedGood: stats.PiecesDirtiedGood.Int64(), // PiecesDirtiedBad: stats.PiecesDirtiedBad.Int64(), // }, nil panic("not implemented") } // StatsHistory is the resolver for the statsHistory field. func (r *torrentDaemonQueryResolver) StatsHistory(ctx context.Context, obj *model.TorrentDaemonQuery, since time.Time, infohash *string) ([]*model.TorrentStats, error) { // var stats []torrent.TorrentStats // if infohash == nil { // stats, err := r.ATorrentDaemon.StatsHistory(ctx, since) // if err != nil { // return nil, err // } // return model.Apply(stats, model.MapTorrentStats), nil // } else if *infohash == "total" { // var err error // stats, err = r.ATorrentDaemon.TotalStatsHistory(ctx, since) // if err != nil { // return nil, err // } // } else { // ih := tinfohash.FromHexString(*infohash) // var err error // stats, err = r.ATorrentDaemon.TorrentStatsHistory(ctx, since, ih) // if err != nil { // return nil, err // } // } // return model.Apply(stats, model.MapTorrentStats), nil panic("not implemented") } // TorrentDaemonQuery returns graph.TorrentDaemonQueryResolver implementation. func (r *Resolver) TorrentDaemonQuery() graph.TorrentDaemonQueryResolver { return &torrentDaemonQueryResolver{r} } type torrentDaemonQueryResolver struct{ *Resolver }