From f11a986ab51780d2d42abb614dfc2492f2553244 Mon Sep 17 00:00:00 2001 From: Kichiyaki Date: Sat, 6 Mar 2021 12:49:42 +0100 Subject: [PATCH] add qualification resolvers implementation --- .../resolvers/qualification.resolvers.go | 41 +++++++++++++++---- 1 file changed, 34 insertions(+), 7 deletions(-) diff --git a/internal/graphql/resolvers/qualification.resolvers.go b/internal/graphql/resolvers/qualification.resolvers.go index b497515..ea53d19 100644 --- a/internal/graphql/resolvers/qualification.resolvers.go +++ b/internal/graphql/resolvers/qualification.resolvers.go @@ -5,28 +5,55 @@ package resolvers import ( "context" - "fmt" "github.com/zdam-egzamin-zawodowy/backend/internal/graphql/generated" "github.com/zdam-egzamin-zawodowy/backend/internal/models" + "github.com/zdam-egzamin-zawodowy/backend/internal/qualification" + "github.com/zdam-egzamin-zawodowy/backend/pkg/utils" ) func (r *mutationResolver) CreateQualification(ctx context.Context, input models.QualificationInput) (*models.Qualification, error) { - panic(fmt.Errorf("not implemented")) + return r.QualificationUsecase.Store(ctx, &input) } func (r *mutationResolver) UpdateQualification(ctx context.Context, id int, input models.QualificationInput) (*models.Qualification, error) { - panic(fmt.Errorf("not implemented")) + return r.QualificationUsecase.UpdateOneByID(ctx, id, &input) } func (r *mutationResolver) DeleteQualifications(ctx context.Context, ids []int) ([]*models.Qualification, error) { - panic(fmt.Errorf("not implemented")) + return r.QualificationUsecase.Delete(ctx, &models.QualificationFilter{ + ID: ids, + }) } -func (r *queryResolver) Qualifications(ctx context.Context, filter *models.QualificationFilter, limit *int, offset *int, sort []string) (*generated.QualificationList, error) { - panic(fmt.Errorf("not implemented")) +func (r *queryResolver) Qualifications( + ctx context.Context, + filter *models.QualificationFilter, + limit *int, + offset *int, + sort []string, +) (*generated.QualificationList, error) { + var err error + list := &generated.QualificationList{} + list.Items, list.Total, err = r.QualificationUsecase.Fetch( + ctx, + &qualification.FetchConfig{ + Count: shouldCount(ctx), + Filter: filter, + Limit: utils.SafeIntPointer(limit, 100), + Offset: utils.SafeIntPointer(offset, 0), + Sort: sort, + }, + ) + return list, err } func (r *queryResolver) Qualification(ctx context.Context, id *int, slug *string) (*models.Qualification, error) { - panic(fmt.Errorf("not implemented")) + if id != nil { + return r.QualificationUsecase.GetByID(ctx, *id) + } else if slug != nil { + return r.QualificationUsecase.GetBySlug(ctx, *slug) + } + + return nil, nil }