90 lines
2.4 KiB
Go
90 lines
2.4 KiB
Go
package resolvers
|
|
|
|
// This file will be automatically regenerated based on the schema, any resolver implementations
|
|
// will be copied through when generating and any unknown code will be moved to the end.
|
|
|
|
import (
|
|
"context"
|
|
"github.com/Kichiyaki/goutil/safeptr"
|
|
|
|
"gitea.dwysokinski.me/zdam-egzamin-zawodowy/backend/internal/chi/middleware"
|
|
"gitea.dwysokinski.me/zdam-egzamin-zawodowy/backend/internal/graphql/generated"
|
|
"gitea.dwysokinski.me/zdam-egzamin-zawodowy/backend/internal/model"
|
|
"gitea.dwysokinski.me/zdam-egzamin-zawodowy/backend/internal/user"
|
|
)
|
|
|
|
func (r *mutationResolver) CreateUser(ctx context.Context, input model.UserInput) (*model.User, error) {
|
|
return r.UserUsecase.Store(ctx, &input)
|
|
}
|
|
|
|
func (r *mutationResolver) UpdateUser(ctx context.Context, id int, input model.UserInput) (*model.User, error) {
|
|
return r.UserUsecase.UpdateOneByID(ctx, id, &input)
|
|
}
|
|
|
|
func (r *mutationResolver) UpdateManyUsers(ctx context.Context, ids []int, input model.UserInput) ([]*model.User, error) {
|
|
return r.UserUsecase.UpdateMany(
|
|
ctx,
|
|
&model.UserFilter{
|
|
ID: ids,
|
|
},
|
|
&input,
|
|
)
|
|
}
|
|
|
|
func (r *mutationResolver) DeleteUsers(ctx context.Context, ids []int) ([]*model.User, error) {
|
|
return r.UserUsecase.Delete(ctx, &model.UserFilter{
|
|
ID: ids,
|
|
})
|
|
}
|
|
|
|
func (r *mutationResolver) SignIn(
|
|
ctx context.Context,
|
|
email string,
|
|
password string,
|
|
staySignedIn *bool,
|
|
) (*generated.UserWithToken, error) {
|
|
var err error
|
|
userWithToken := &generated.UserWithToken{}
|
|
userWithToken.User, userWithToken.Token, err = r.AuthUsecase.SignIn(
|
|
ctx,
|
|
email,
|
|
password,
|
|
safeptr.SafeBoolPointer(staySignedIn, false),
|
|
)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
return userWithToken, nil
|
|
}
|
|
|
|
func (r *queryResolver) Users(
|
|
ctx context.Context,
|
|
filter *model.UserFilter,
|
|
limit *int,
|
|
offset *int,
|
|
sort []string,
|
|
) (*generated.UserList, error) {
|
|
var err error
|
|
userList := &generated.UserList{}
|
|
userList.Items, userList.Total, err = r.UserUsecase.Fetch(
|
|
ctx,
|
|
&user.FetchConfig{
|
|
Count: shouldCount(ctx),
|
|
Filter: filter,
|
|
Limit: safeptr.SafeIntPointer(limit, user.FetchMaxLimit),
|
|
Offset: safeptr.SafeIntPointer(offset, 0),
|
|
Sort: sort,
|
|
},
|
|
)
|
|
return userList, err
|
|
}
|
|
|
|
func (r *queryResolver) User(ctx context.Context, id int) (*model.User, error) {
|
|
return r.UserUsecase.GetByID(ctx, id)
|
|
}
|
|
|
|
func (r *queryResolver) Me(ctx context.Context) (*model.User, error) {
|
|
u, _ := middleware.UserFromContext(ctx)
|
|
return u, nil
|
|
}
|