Utilisation d'un serveur Go classique pour le backend au lieu de super-graph #12
|
@ -6,48 +6,12 @@ package graph
|
||||||
import (
|
import (
|
||||||
"context"
|
"context"
|
||||||
|
|
||||||
"forge.cadoles.com/Cadoles/daddy/internal/query"
|
|
||||||
|
|
||||||
"forge.cadoles.com/Cadoles/daddy/internal/session"
|
|
||||||
"github.com/pkg/errors"
|
|
||||||
"gitlab.com/wpetit/goweb/cqrs"
|
|
||||||
"gitlab.com/wpetit/goweb/middleware/container"
|
|
||||||
|
|
||||||
"forge.cadoles.com/Cadoles/daddy/internal/graph/generated"
|
"forge.cadoles.com/Cadoles/daddy/internal/graph/generated"
|
||||||
"forge.cadoles.com/Cadoles/daddy/internal/graph/model"
|
"forge.cadoles.com/Cadoles/daddy/internal/graph/model"
|
||||||
)
|
)
|
||||||
|
|
||||||
func (r *queryResolver) UserProfile(ctx context.Context) (*model.User, error) {
|
func (r *queryResolver) UserProfile(ctx context.Context) (*model.User, error) {
|
||||||
userEmail, err := session.UserEmail(ctx)
|
return handleUserProfile(ctx)
|
||||||
if err != nil {
|
|
||||||
return nil, errors.WithStack(err)
|
|
||||||
}
|
|
||||||
|
|
||||||
ctn, err := container.From(ctx)
|
|
||||||
if err != nil {
|
|
||||||
return nil, errors.WithStack(err)
|
|
||||||
}
|
|
||||||
|
|
||||||
dispatcher, err := cqrs.From(ctn)
|
|
||||||
if err != nil {
|
|
||||||
return nil, errors.WithStack(err)
|
|
||||||
}
|
|
||||||
|
|
||||||
qry := &query.FindUserQueryRequest{
|
|
||||||
Email: userEmail,
|
|
||||||
}
|
|
||||||
|
|
||||||
result, err := dispatcher.Query(ctx, qry)
|
|
||||||
if err != nil {
|
|
||||||
return nil, errors.WithStack(err)
|
|
||||||
}
|
|
||||||
|
|
||||||
findUserData, ok := result.Data().(*query.FindUserData)
|
|
||||||
if !ok {
|
|
||||||
return nil, errors.WithStack(cqrs.ErrUnexpectedData)
|
|
||||||
}
|
|
||||||
|
|
||||||
return findUserData.User, nil
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Query returns generated.QueryResolver implementation.
|
// Query returns generated.QueryResolver implementation.
|
||||||
|
|
|
@ -0,0 +1,45 @@
|
||||||
|
package graph
|
||||||
|
|
||||||
|
import (
|
||||||
|
"context"
|
||||||
|
|
||||||
|
"forge.cadoles.com/Cadoles/daddy/internal/graph/model"
|
||||||
|
"forge.cadoles.com/Cadoles/daddy/internal/query"
|
||||||
|
"forge.cadoles.com/Cadoles/daddy/internal/session"
|
||||||
|
"github.com/pkg/errors"
|
||||||
|
"gitlab.com/wpetit/goweb/cqrs"
|
||||||
|
"gitlab.com/wpetit/goweb/middleware/container"
|
||||||
|
)
|
||||||
|
|
||||||
|
func handleUserProfile(ctx context.Context) (*model.User, error) {
|
||||||
|
userEmail, err := session.UserEmail(ctx)
|
||||||
|
if err != nil {
|
||||||
|
return nil, errors.WithStack(err)
|
||||||
|
}
|
||||||
|
|
||||||
|
ctn, err := container.From(ctx)
|
||||||
|
if err != nil {
|
||||||
|
return nil, errors.WithStack(err)
|
||||||
|
}
|
||||||
|
|
||||||
|
dispatcher, err := cqrs.From(ctn)
|
||||||
|
if err != nil {
|
||||||
|
return nil, errors.WithStack(err)
|
||||||
|
}
|
||||||
|
|
||||||
|
qry := &query.FindUserQueryRequest{
|
||||||
|
Email: userEmail,
|
||||||
|
}
|
||||||
|
|
||||||
|
result, err := dispatcher.Query(ctx, qry)
|
||||||
|
if err != nil {
|
||||||
|
return nil, errors.WithStack(err)
|
||||||
|
}
|
||||||
|
|
||||||
|
findUserData, ok := result.Data().(*query.FindUserData)
|
||||||
|
if !ok {
|
||||||
|
return nil, errors.WithStack(cqrs.ErrUnexpectedData)
|
||||||
|
}
|
||||||
|
|
||||||
|
return findUserData.User, nil
|
||||||
|
}
|
10
modd.conf
10
modd.conf
|
@ -1,3 +1,8 @@
|
||||||
|
internal/graph/schema.graphqls
|
||||||
|
internal/gqlgen.yml {
|
||||||
|
prep: make generate
|
||||||
|
}
|
||||||
|
|
||||||
**/*.go
|
**/*.go
|
||||||
!**/*_test.go
|
!**/*_test.go
|
||||||
data/config.yml
|
data/config.yml
|
||||||
|
@ -16,9 +21,4 @@ modd.conf {
|
||||||
|
|
||||||
{
|
{
|
||||||
daemon: cd client && NODE_ENV=development npm run server -- --display=minimal
|
daemon: cd client && NODE_ENV=development npm run server -- --display=minimal
|
||||||
}
|
|
||||||
|
|
||||||
internal/graph/schema.graphqls
|
|
||||||
internal/gqlgen.yml {
|
|
||||||
prep: make generate
|
|
||||||
}
|
}
|
Loading…
Reference in New Issue