72 lines
1.7 KiB
Go
72 lines
1.7 KiB
Go
package graphql
|
|
|
|
import (
|
|
"context"
|
|
|
|
"github.com/traggo/server/dashboard"
|
|
"github.com/traggo/server/setting"
|
|
|
|
"github.com/jinzhu/copier"
|
|
"github.com/jinzhu/gorm"
|
|
"github.com/traggo/server/device"
|
|
"github.com/traggo/server/generated/gqlmodel"
|
|
"github.com/traggo/server/generated/gqlschema"
|
|
"github.com/traggo/server/model"
|
|
"github.com/traggo/server/statistics"
|
|
"github.com/traggo/server/tag"
|
|
"github.com/traggo/server/timespan"
|
|
"github.com/traggo/server/user"
|
|
)
|
|
|
|
// NewResolver combines all resolvers to a resolver root.
|
|
func NewResolver(db *gorm.DB, passStrength int, version model.Version) gqlschema.ResolverRoot {
|
|
return &resolver{
|
|
ResolverForUser: user.ResolverForUser{
|
|
DB: db,
|
|
PassStrength: passStrength,
|
|
},
|
|
ResolverForTag: tag.ResolverForTag{
|
|
DB: db,
|
|
},
|
|
ResolverForDevice: device.ResolverForDevice{
|
|
DB: db,
|
|
},
|
|
ResolverForTimeSpan: timespan.ResolverForTimeSpan{
|
|
DB: db,
|
|
},
|
|
ResolverForStatistics: statistics.ResolverForStatistics{
|
|
DB: db,
|
|
},
|
|
ResolverForSettings: setting.ResolverForSettings{
|
|
DB: db,
|
|
},
|
|
ResolverForDashboard: dashboard.NewResolverForDashboard(db),
|
|
version: version,
|
|
}
|
|
}
|
|
|
|
type resolver struct {
|
|
user.ResolverForUser
|
|
tag.ResolverForTag
|
|
device.ResolverForDevice
|
|
timespan.ResolverForTimeSpan
|
|
statistics.ResolverForStatistics
|
|
version model.Version
|
|
setting.ResolverForSettings
|
|
dashboard.ResolverForDashboard
|
|
}
|
|
|
|
func (r *resolver) RootMutation() gqlschema.RootMutationResolver {
|
|
return r
|
|
}
|
|
|
|
func (r *resolver) RootQuery() gqlschema.RootQueryResolver {
|
|
return r
|
|
}
|
|
|
|
func (r *resolver) Version(ctx context.Context) (*gqlmodel.Version, error) {
|
|
gql := &gqlmodel.Version{}
|
|
copier.Copy(gql, r.version)
|
|
return gql, nil
|
|
}
|