Créer/modifier/rejoindre/quitter un groupe de travail

This commit is contained in:
2020-07-22 22:25:03 +02:00
parent bc9aa1721a
commit 4a340529da
13 changed files with 403 additions and 34 deletions

View File

@ -17,7 +17,11 @@ type Workgroup {
members: [User]!
}
input WorkgroupsFilter {
ids: [ID]
}
type Query {
userProfile: User
workgroups: [Workgroup]!
workgroups(filter: WorkgroupsFilter): [Workgroup]!
}

View File

@ -15,8 +15,8 @@ func (r *queryResolver) UserProfile(ctx context.Context) (*model1.User, error) {
return handleUserProfile(ctx)
}
func (r *queryResolver) Workgroups(ctx context.Context) ([]*model1.Workgroup, error) {
return handleWorkgroups(ctx)
func (r *queryResolver) Workgroups(ctx context.Context, filter *model1.WorkgroupsFilter) ([]*model1.Workgroup, error) {
return handleWorkgroups(ctx, filter)
}
func (r *userResolver) ID(ctx context.Context, obj *model1.User) (string, error) {
@ -39,13 +39,3 @@ func (r *Resolver) Workgroup() generated.WorkgroupResolver { return &workgroupRe
type queryResolver struct{ *Resolver }
type userResolver struct{ *Resolver }
type workgroupResolver struct{ *Resolver }
// !!! WARNING !!!
// The code below was going to be deleted when updating resolvers. It has been copied here so you have
// one last chance to move it out of harms way if you want. There are two reasons this happens:
// - When renaming or deleting a resolver the old code will be put in here. You can safely delete
// it when you're done.
// - You have helper methods in this file. Move them out to keep these resolver files clean.
func (r *workgroupResolver) Users(ctx context.Context, obj *model1.Workgroup) ([]*model1.User, error) {
return obj.Members, nil
}

View File

@ -8,7 +8,7 @@ import (
"github.com/pkg/errors"
)
func handleWorkgroups(ctx context.Context) ([]*model.Workgroup, error) {
func handleWorkgroups(ctx context.Context, filter *model.WorkgroupsFilter) ([]*model.Workgroup, error) {
db, err := getDB(ctx)
if err != nil {
return nil, errors.WithStack(err)
@ -16,7 +16,15 @@ func handleWorkgroups(ctx context.Context) ([]*model.Workgroup, error) {
repo := model.NewWorkgroupRepository(db)
workgroups, err := repo.FindWorkgroups(ctx)
criteria := make([]interface{}, 0)
if filter != nil {
if len(filter.Ids) > 0 {
criteria = append(criteria, "id in (?)", filter.Ids)
}
}
workgroups, err := repo.FindWorkgroups(ctx, criteria...)
if err != nil {
return nil, errors.WithStack(err)
}