2020-01-30 14:28:14 +01:00
|
|
|
package api
|
|
|
|
|
|
|
|
import (
|
|
|
|
"context"
|
2020-01-31 15:22:58 +01:00
|
|
|
"database/sql"
|
2020-01-31 23:30:34 +01:00
|
|
|
|
|
|
|
"github.com/viktorstrate/photoview/api/graphql/models"
|
2020-01-31 18:51:24 +01:00
|
|
|
)
|
|
|
|
|
|
|
|
//go:generate go run github.com/99designs/gqlgen
|
2020-01-30 14:28:14 +01:00
|
|
|
|
2020-01-31 15:22:58 +01:00
|
|
|
type Resolver struct {
|
|
|
|
Database *sql.DB
|
|
|
|
}
|
2020-01-30 14:28:14 +01:00
|
|
|
|
|
|
|
func (r *Resolver) Mutation() MutationResolver {
|
|
|
|
return &mutationResolver{r}
|
|
|
|
}
|
2020-01-31 23:30:34 +01:00
|
|
|
|
2020-01-30 14:28:14 +01:00
|
|
|
func (r *Resolver) Query() QueryResolver {
|
|
|
|
return &queryResolver{r}
|
|
|
|
}
|
|
|
|
|
|
|
|
type mutationResolver struct{ *Resolver }
|
|
|
|
|
|
|
|
type queryResolver struct{ *Resolver }
|
|
|
|
|
2020-01-31 23:30:34 +01:00
|
|
|
func (r *queryResolver) Users(ctx context.Context) ([]*models.User, error) {
|
|
|
|
|
|
|
|
rows, err := r.Database.Query("SELECT * FROM users")
|
|
|
|
if err != nil {
|
|
|
|
return nil, err
|
|
|
|
}
|
|
|
|
defer rows.Close()
|
|
|
|
|
|
|
|
users, err := models.NewUsersFromRows(rows)
|
|
|
|
if err != nil {
|
|
|
|
return nil, err
|
|
|
|
}
|
2020-01-30 14:28:14 +01:00
|
|
|
|
|
|
|
return users, nil
|
|
|
|
}
|